全部产品
Search
文档中心

云服务器 ECS:通过CLI使用ECS实例

更新时间:Jul 03, 2024

如果您平时习惯使用CLI方式运维阿里云资源,可以通过Cloud Shell以CLI方式创建和管理ECS实例。本文介绍CLI创建和管理ECS实例的方法及其常用示例。

CLI使用方式

  1. 访问Cloud Shell客户端。

    在阿里云控制台访问

    登录ECS管理控制台,单击右上角的Cloud Shell图标,进入Cloud Shell控制台。

    Cloud Shell

    在本地终端访问

    1. 安装CLI

    2. 授予CLI获取访问您的阿里云账户的权限。

      本文以AccessKey认证为例。更多认证方式,请参见配置凭证

      说明
      aliyun configure
      aliyun Access Key ID [None]: xxxxx  # AccessKey ID
      aliyun Access Key Secret [None]: xxxxx  # AccessKey Secret
      Default Region Id [None]: cn-hangzhou  # 地域ID
      Default Output Format [json]: json (Only supports JSON) # 目前仅支持JSON
      Default Language [zh|en]: en # 选择英语

      配置完成后,若配置凭证有效,显示如下信息:

      Configure Done!!!
      ..............888888888888888888888 ........=8888888888888888888D=..............
      ...........88888888888888888888888 ..........D8888888888888888888888I...........
      .........,8888888888888ZI: ...........................=Z88D8888888888D..........
      .........+88888888 ..........................................88888888D..........
      .........+88888888 .......Welcome to use Alibaba Cloud.......O8888888D..........
      .........+88888888 ............. ************* ..............O8888888D..........
      .........+88888888 .... Command Line Interface(Reloaded) ....O8888888D..........
      .........+88888888...........................................88888888D..........
      ..........D888888888888DO+. ..........................?ND888888888888D..........
      ...........O8888888888888888888888...........D8888888888888888888888=...........
      ............ .:D8888888888888888888.........78888888888888888888O ..............
  2. 在阿里云CLI中,按照下列格式要求调用API完成某个任务。

    重要
    • 不同数据类型字段需要遵循的格式要求,详细说明,请参见参数格式说明

    • 调用接口前建议您仔细阅读相关API的使用说明。

    aliyun <product> <ApiName> 
    --parameter1 value1 \
    --parameter2 value2 \
    ...

CLI请求示例

重要
  • 以下请求仅为示例,具体请求命令请根据实际需求修改。

  • ECS的API详细信息,请参见API参考

创建ECS实例

以在杭州地域创建一个基于Alibaba Cloud Linux镜像的包年包月的ECS实例为例,指导您如何通过CLI创建ECS实例。

  1. 准备工作。

    在创建ECS实例前,请确保您已经创建了专有网络VPC、交换机、安全组,并获取其ID。

    说明

    如果您已有上述资源且符合需求,可跳过该步骤。

    1. 调用CreateVpc创建VPC。

      示例:创建VPC

      假设在华东1(杭州)创建专有网络VPC,VPC网段为192.168.0.0/16。

      • 命令

        aliyun vpc CreateVpc \
        --RegionId cn-hangzhou \
        --CidrBlock 192.168.0.0/16 
      • 返回结果

        {
                "RequestId": "EC94C73B-8103-4B86-B353-E65C7C9E****",
                "ResourceGroupId": "rg-acfmzw2jz2z****",
                "RouteTableId": "vtb-bp1jxpr9ji5wcn4yv****",
                "VRouterId": "vrt-bp1dyxemup2q4ouga****",
                "VpcId": "vpc-bp1d9v4763ym2hlzt****"
        }
    2. 调用CreateVSwitch在VPC中创建交换机。

      示例:创建交换机

      假设交换机网段为192.168.0.0/24,VPC ID为vpc-bp1d9v4763ym2hlzt****

      • 命令

        aliyun vpc CreateVSwitch \
        --CidrBlock 192.168.0.0/24 \
        --VpcId vpc-bp1d9v4763ym2hlzt**** \
        --ZoneId=cn-hangzhou-i
      • 返回结果

        {
                "RequestId": "AF1787C4-0D81-44F0-A324-D5C54EA0****",
                "VSwitchId": "vsw-bp11hf5r945gewysp****"
        }
    3. 调用CreateSecurityGroup创建安全组。

      示例:创建安全组

      • 命令

        aliyun ecs CreateSecurityGroup \
        --RegionId cn-hangzhou \
        --VpcId vpc-bp1d9v4763ym2hlzt****
      • 返回结果

        {
                "RequestId": "B1C25C34-9B84-49E3-9E50-FB7D7970****",
                "SecurityGroupId": "sg-bp18z2q1jg4gq95t****"
        }
    4. 调用AuthorizeSecurityGroup添加安全组规则。

      示例:添加安全组规则

      假设在安全组(ID为sg-bp18z2q1jg4gq95t****)的入方向放行22端口,协议为TCP。

      • 命令

        aliyun ecs AuthorizeSecurityGroup \
        --RegionId cn-hangzhou \
        --SecurityGroupId sg-bp18z2q1jg4gq95t**** \
        --IpProtocol tcp \
        --SourceCidrIp 0.0.0.0/0 \
        --PortRange 22/22
      • 返回

        {
         "RequestId": "FA8B1E61-C9C9-4D91-9628-64B8E2F4****"
        }
  2. 调用RunInstances创建一个包年包月的ECS实例。

    • 场景示例

      参数

      示例取值

      RegionId

      地域:cn-hangzhou

      ImageId

      镜像:推荐使用Alibaba Cloud Linux镜像aliyun_3_x64_20G_alibase_20240528.vhd

      InstanceType

      实例规格:

      • 个人应用:推荐选择2 vCPU 2 GiB的实例规格ecs.e-c1m1.large

      • 中小企业应用:推荐选择2 vCPU 4 GiB的实例规格ecs.c7.large

      SecurityGroupId

      安全组ID:根据CreateSecurityGroup返回结果。

      示例:sg-bp18z2q1jg4gq95t****

      VSwitchId

      交换机ID:根据CreateVSwitch返回结果。

      示例:vsw-bp11hf5r945gewysp****

      InstanceName

      实例名称。

      示例:ecs_cli_demo

      InstanceChargeType

      付费方式:实例按照包年包月的付费方式PrePaid

      说明

      您需要确保账号余额能够完成支付。

      PeriodUnit

      付费周期单位:Month

      Period

      付费时长:1

      InternetMaxBandwidthOut

      公网IP带宽:1

      Password

      实例登录密码:<yourPassword>

      说明

      您需要自定义复杂密码以保护ECS实例的安全。

      SystemDisk.Category

      系统盘类型:cloud_essd

      SystemDisk.Size

      系统盘大小:40

    • 命令

      aliyun ecs RunInstances \
      --RegionId cn-hangzhou \
      --ImageId aliyun_3_x64_20G_alibase_20240528.vhd \
      --InstanceType ecs.c7.large \
      --SecurityGroupId sg-bp18z2q1jg4gq95t**** \
      --VSwitchId vsw-bp11hf5r945gewys**** \
      --InstanceName ecs_cli_demo \
      --InstanceChargeType PrePaid \
      --PeriodUnit Month \
      --Period 1 \
      --InternetMaxBandwidthOut 1 \
      --Password <yourPassword>  \
      --SystemDisk.Category cloud_essd \
      --SystemDisk.Size 40GiB
    • 返回

      { 
              "InstanceIdSets": {
                      "InstanceIdSet": [
                              "i-bp1de173dp87k5uv****"
                      ]
              },
              "OrderId": 23577729747****,
              "RequestId": "B0855F1A-279F-5153-BAA9-C245E073****",
              "TradePrice": ****
      }

连接实例

  1. 获取实例的公网IP信息。

    假设调用DescribeInstances,通过实例ID(i-bp1ducce5hs1jm98****)获取实例的公网IP信息。

    • 命令

      aliyun ecs DescribeInstances \
      --RegionId cn-hangzhou \
      --InstanceIds '["i-bp1ducce5hs1jm98****"]'
    • 返回

      参数PublicIpAddresses为实例的公网IP信息。

      公网IP

  2. 连接ECS实例。

    ssh <用户名>@<公网IP>

    ssh登录

启动实例

调用StartInstance接口启动一台ECS实例。

  • 场景示例:实例ID为i-bp1aq39j2yul5y01****,启动实例时不进行故障处理,并且预检查后直接启动ECS实例。

  • 命令

  • aliyun ecs StartInstance \
    --InstanceId i-bp1aq39j2yul5y01**** \
    --InitLocalDisk false \
    --DryRun false
  • 返回

  • {
     "RequestId": "2DD09CBD-1F4D-4923-94C7-F3BD67137BBE"
    }

查询实例的详细信息

您可以调用DescribeInstances接口查询一台或多台ECS实例的详细信息。

示例1:根据实例ID查询ECS实例

假设查询实例ID为i-bp14a7xie8erwsvo****的实例信息。

  • 命令

    aliyun ecs DescribeInstances \
    --RegionId cn-hangzhou \
    --InstanceIds '["i-bp14a7xie8erwsvo****"]' \
    --output cols=InstanceId,InstanceName,Description,ImageId,Status rows=Instances.Instance[]
  • 返回

    InstanceId             | InstanceName | Description | ImageId                               | Status
    ----------             | ------------ | ----------- | -------                               | ------
    i-bp1de173dp87k5uv**** | ecs_cli_demo |             | aliyun_3_x64_20G_alibase_20240528.vhd | Running

示例2:根据标签查询ECS实例

假设查询绑定owner:zhangsan标签的ECS实例信息。

  • 命令

    aliyun ecs DescribeInstances \
    --RegionId cn-hangzhou \
    --Tag.1.Key owner \
    --Tag.1.Value zhangsan \
    --output cols=InstanceId,InstanceName,Description,ImageId,Status rows=Instances.Instance[]
  • 返回

    InstanceId             | InstanceName | Description | ImageId                               | Status
    ----------             | ------------ | ----------- | -------                               | ------
    i-bp1de173dp87k5uv**** | ecs_cli_demo |             | aliyun_3_x64_20G_alibase_20240528.vhd | Running

示例3:根据镜像ID查询ECS实例

查询镜像为m-bp12qhgxbmp5eh02****标签的ECS实例信息。

  • 命令

    aliyun ecs DescribeInstances \
    --RegionId cn-hangzhou \
    --ImageId m-bp12qhgxbmp5eh02**** \
    --output cols=InstanceId,InstanceName,Description,ImageId,Status rows=Instances.Instance[]
  • 返回

    InstanceId             | InstanceName | Description | ImageId                | Status
    ----------             | ------------ | ----------- | -------                | ------
    i-bp14a7xie8erwsvo**** | demo01       | desc01      | m-bp12qhgxbmp5eh02**** | Running
    i-bp1aq39j2yul5y01**** | demo02       | desc02      | m-bp12qhgxbmp5eh02**** | Stopped

示例4:查询指定VPC内的ECS实例

假设VPC ID为vpc-bp1vwnn14rqpyiczj****、交换机ID为vsw-bp1ddbrxdlrcbim46****

  • 命令

    aliyun ecs DescribeInstances \
    --RegionId cn-hangzhou \
    --VpcId vpc-bp1vwnn14rqpyiczj**** \
    --VSwitchId vsw-bp1ddbrxdlrcbim46**** \
    --output cols=InstanceId,InstanceName,ImageId,Status rows=Instances.Instance[]
  • 返回

    InstanceId             | InstanceName | ImageId                               | Status
    ----------             | ------------ | -------                               | ------
    i-bp14a7xie8erwsvo**** | namedemo01   | m-bp12qhgxbmp5eh02****                | Running
    i-bp1c271nqm264lwj**** | namedemo02   | P2VSImageLnx125                       | Running
    i-bp18a6ub0vt1tvn1**** | namedemo03   | aliyun_3_x64_20G_alibase_20240528.vhd | Running
    i-bp1aq39j2yul5y01**** | namedemo04   | m-bp12qhgxbmp5eh02****                | Stopped

示例5:分页查询ECS实例

调用DescribeInstances分页查询杭州地域的ECS实例,每页展示5条信息。

  • 命令

    aliyun ecs DescribeInstances \
    --RegionId cn-hangzhou \
    --PageNumber 2 \
    --PageSize 5 \
    --output cols=InstanceId,InstanceName,ImageId,Status rows=Instances.Instance[]
  • 返回

    InstanceId             | InstanceName | ImageId                                 | Status
    ----------             | ------------ | -------                                 | ------
    i-bp1akazu9o0rm7q0**** | demoname01   | centos_8_0_x64_20G_alibase_20191225.vhd | Running
    i-bp134jm1g6kqyiqu**** | demoname02   | m-bp1bc3g3b032o0ja****                  | Running
    i-bp17qwke5y0v7hk2**** | demoname03   | centos_7_02_64_20G_alibase_20170818.vhd | Running
    i-bp18a6ub0vt1tvn1**** | demoname04   | centos_7_02_64_20G_alibase_20170818.vhd | Running
    i-bp1aq39j2yul5y01**** | demoname05   | m-bp12qhgxbmp5eh02****                  | Stopped

创建快照

调用CreateSnapshot接口创建快照。

  • 场景示例:为ESSD云盘d-bp14bjlwo3t3owin****创建一个快照(快照名称为demoname,描述为demo,保留时间:3天)。

  • 命令

    aliyun ecs CreateSnapshot \
    --DiskId d-bp14bjlwo3t3owin**** \
    --SnapshotName demoname \
    --Description demo \
    --RetentionDays 3
  • 返回

    {
     "RequestId": "DFB0B01F-420D-4932-911E-7328920C2012",
     "SnapshotId": "s-bp1eyr9nxxoo9icj****"
    }

通过实例创建自定义镜像

调用CreateImage接口,基于ECS实例创建一个自定义镜像。

  • 场景示例:实例ID为i-bp1aq39j2yul5y01****、操作系统为Alibaba Cloud Linux(即Platform为Aliyun),地域为华东1(杭州)(cn-hangzhou)。

  • 命令

    aliyun ecs CreateImage \
    --RegionId cn-hangzhou \
    --InstanceId i-bp1aq39j2yul5y01**** \
    --ImageName demoimage \
    --Description demoimage \
    --Platform Aliyun
  • 返回

    {
     "ImageId": "m-bp1503ydxxrppctb****",
     "RequestId": "011AE447-20CE-4043-81AC-7AF2BBC4****"
    }

停止实例

调用StopInstance停止一台运行中(Running)的ECS实例,正常关机(ForceStop为 false)且停机模式为普通停机模式(StoppedMode为KeepCharging,即停止后仍旧保留实例并继续收费),预检查后正常停止ECS实例。

  • 场景示例:实例ID为i-bp1aq39j2yul5y01****,地域为华东1(杭州)(cn-hangzhou)。

  • 命令

    aliyun ecs StopInstance \
    --InstanceId i-bp1aq39j2yul5y01**** \
    --ForceStop false \
    --StoppedMode KeepCharging \
    --DryRun false
  • 返回

    {
        "RequestId": "121B5745-4983-57B1-BC97-C3A3536E****"
    }