すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:CLI を使用した ECS インスタンスの作成と使用

最終更新日:Aug 26, 2026

Alibaba Cloud コマンドラインインターフェイス (CLI) は、OpenAPI を呼び出すことで、ターミナルから Alibaba Cloud リソースを管理するためのツールです。このトピックでは、Alibaba Cloud CLI を使用して Elastic Compute Service (ECS) インスタンスを作成および管理する例を示します。

説明

Alibaba Cloud CLI の詳細については、「Alibaba Cloud CLI とは」をご参照ください。

事前準備

  1. Alibaba Cloud アカウントはすべてのリソースに対する完全な権限を持っているため、アカウントの AccessKey が漏洩すると高いセキュリティリスクが生じます。必要最低限の権限のみが付与された RAM ユーザーの AccessKey を使用することを推奨します。詳細については、「AccessKey の作成」をご参照ください。

  2. ECS および VPC リソースを管理するために必要な権限を RAM ユーザーに付与してください。このトピックのサンプルコードでは、インスタンス、VPC、vSwitch などのリソースを作成します。以下の権限を付与することを推奨します。

    クラウドサービス

    権限

    VPC

    システムポリシーのアタッチ: AliyunVPCFullAccess

    ECS

    システムポリシーのアタッチ: AliyunECSFullAccess

  3. CLI のインストールと設定。 Alibaba Cloud CLI は、Windows、Linux、macOS で利用できます。お使いのオペレーティングシステムに適したインストール方法を選択してください。

    1. CLI のインストール。

    2. CLI の設定。

      Alibaba Cloud リソースを呼び出すために必要な認証情報とサービスリクエストリージョンを設定してください。詳細については、「認証情報の設定」をご参照ください。

    一時的に何かをデバッグする必要があるだけで、Alibaba Cloud CLI をインストールしたくない場合は、Cloud Shell を使用できます。詳細については、「Cloud Shell とは」をご参照ください。Cloud Shell を起動するには、Alibaba Cloud コンソールにログインし、上部メニューにある [チケット] の右側にある Cloud Shell アイコン (ターミナルアイコン) をクリックしてください。

ECS インスタンスの作成

ECS インスタンスの作成には、vSwitch ID、セキュリティグループ ID、イメージ ID などのパラメーターが必要です。既存のリソース ID を使用するか、次の手順で API を呼び出して新しいリソース ID を作成できます。

  1. VPC の作成。

    VPC は、クラウドリソース用の論理的に分離されたプライベートネットワークです。

    API

    パラメーター

    CreateVpc

    RegionId

    リージョン: cn-hangzhou

    CidrBlock

    VPC CIDR ブロック: 192.168.0.0/16

  2. vSwitch の作成。

    vSwitch は VPC 内の基本的なネットワークデバイスであり、さまざまなクラウドリソースを接続します。

    API

    パラメーター

    RegionId

    リージョン: cn-hangzhou

    CreateVSwitch

    ZoneId

    ゾーン: cn-hangzhou-i

    VpcId

    VPC ID: vpc-bp1aag0sb9s4i92i3****

    CidrBlock

    vSwitch CIDR ブロック: 192.168.0.0/24

  3. セキュリティグループの作成。

    セキュリティグループは、ECS インスタンスへの送受信トラフィックを制御する仮想ファイアウォールです。

    API

    パラメーター

    CreateSecurityGroup

    RegionId

    リージョン: cn-hangzhou

    VpcId

    VPC ID: vpc-bp1aag0sb9s4i92i3****

  4. セキュリティグループへのインバウンドルールの追加。

    API

    パラメーター

    AuthorizeSecurityGroup

    RegionId

    リージョン: cn-hangzhou

    SecurityGroupId

    セキュリティグループ ID: sg-bp1esyhwfbqeyudt****

    IpProtocol

    プロトコル: tcp

    SourceCidrIp

    ソース CIDR ブロック: 0.0.0.0/0

    PortRange

    ポート範囲:

    • Linux インスタンスの場合: 22/22

    • Windows インスタンスの場合: 3389/3389

  5. ECS インスタンスの作成。

    API

    パラメーター

    RunInstances

    RegionId

    リージョン: cn-hangzhou

    ImageId

    イメージ: Alibaba Cloud Linux イメージ aliyun_3_x64_20G_alibase_20240819.vhd を使用

    InstanceType

    インスタンスタイプ: ecs.e-c1m1.large

    SecurityGroupId

    セキュリティグループ ID: sg-bp1esyhwfbqeyudt****

    VSwitchId

    vSwitch ID: vsw-bp1nzprm8h7mmnl8t****

    InstanceName

    インスタンス名: ecs_cli_demo

    InstanceChargeType

    PostPaid に設定すると、従量課金インスタンスが作成されます。

    説明

    アカウントに十分な残高があることを確認してください。

    Password

    ログオンパスワード: ******

    InternetMaxBandwidthOut

    この値が 0 より大きい場合、パブリック IP アドレスがインスタンスに自動的に割り当てられます。

    SystemDisk.Category

    システムディスクカテゴリ: cloud_essd

    SystemDisk.Size

    システムディスクサイズ: 40 GB

以下は、完全なサンプルスクリプトです。

重要

このサンプルスクリプトを複数回実行すると、リソースが重複して作成され、不要なコストが発生する可能性があります。実行する前に、特定のニーズに合わせてスクリプトを確認し、調整してください。

#!/bin/bash
# 本番環境では、環境変数または設定ファイルを使用して、AccessKey ID と AccessKey シークレットを安全に設定してください。
# 1. 変数の設定
INSTANCE_NAME="ecs_cli_demo"
# 2. 依存ツール jq のインストール
echo "Installing the jq dependency tool..."
yum install -y jq
sleep 3
# 3. VPC、vSwitch、およびセキュリティグループの作成
echo "Creating a VPC..."
VpcId=$(aliyun vpc CreateVpc --RegionId cn-hangzhou --CidrBlock 192.168.0.0/16 | jq -r .VpcId)
aliyun vpc DescribeVpcAttribute --RegionId cn-hangzhou --VpcId ${VpcId} --waiter expr='Status' to=Available > /dev/null 2>&1
echo "Creating a vSwitch..."
VSwitchId=$(aliyun vpc CreateVSwitch --CidrBlock 192.168.0.0/24 --VpcId ${VpcId} --ZoneId=cn-hangzhou-i | jq -r .VSwitchId)
echo "Creating a security group..."
SecurityGroupId=$(aliyun ecs CreateSecurityGroup --RegionId cn-hangzhou --VpcId ${VpcId} | jq -r .SecurityGroupId)
aliyun ecs AuthorizeSecurityGroup --RegionId cn-hangzhou --SecurityGroupId ${SecurityGroupId} --IpProtocol tcp --SourceCidrIp 0.0.0.0/0 --PortRange 22/22 > /dev/null 2>&1
read -s -p "Enter your password:" PASSWORD
echo
echo "PASSWORD OK."
# 4. ECS インスタンスを作成するコマンドの実行
echo "Creating the ECS instance..."
INSTANCE_ID_RAW=$(aliyun ecs RunInstances \
--RegionId cn-hangzhou \
--ImageId aliyun_3_x64_20G_alibase_20240819.vhd \
--InstanceType ecs.e-c1m1.large \
--SecurityGroupId ${SecurityGroupId} \
--VSwitchId ${VSwitchId} \
--InstanceName $INSTANCE_NAME \
--InstanceChargeType PostPaid \
--InternetMaxBandwidthOut 1 \
--Password $PASSWORD  \
--SystemDisk.Category cloud_essd \
--SystemDisk.Size 40)
# 5. 後で利用するためにインスタンス ID を抽出
INSTANCE_ID=$(echo "$INSTANCE_ID_RAW" | jq -r '.InstanceIdSets.InstanceIdSet[]')
# 6. ECS インスタンスが作成されるまで 20 秒待機
echo "Waiting for the ECS instance to be created..."
sleep 20
# 7. ECS インスタンスのステータスのクエリ
echo "Querying the ECS instance status..."
INSTANCE_ID_QUOTED=$(printf '"%s"' "$INSTANCE_ID")
aliyun ecs DescribeInstances \
--RegionId cn-hangzhou \
--InstanceIds "[${INSTANCE_ID_QUOTED}]" \
--output cols=InstanceId,InstanceName,InstanceType,ImageId,Status rows=Instances.Instance[]

シェルスクリプトを作成して実行してください。期待される出力は次のとおりです。

[root@i-xxxxx Z ~]# bash ecs-cli.sh
Installing the jq dependency tool...
Last metadata expiration check: 0:24:56 ago on Tue 22 Oct 2024 09:24:50 AM CST.
Package jq-1.6-15.al8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Creating a VPC...
Creating a vSwitch...
Creating a security group...
Enter your password:
PASSWORD OK.
Creating the ECS instance...
Waiting for the ECS instance to be created...
Querying the ECS instance status...
InstanceId          | InstanceName | InstanceType     | ImageId                               | Status
----------          | ------------ | ------------     | -------                               | -------
i-bpxxxxxxxxxxxz4   | ecs_cli_demo | ecs.e-c1m1.large | aliyun_3_x64_20G_alibase_20240819.vhd | Running

インスタンスへの接続

SSH でインスタンスに接続した後、サービスとアプリケーションをデプロイできます。

  1. インスタンスのパブリック IP アドレスの取得。

    <InstanceID> を指定して DescribeInstances API を呼び出し、インスタンスのパブリック IP アドレスを取得してください。

    • リクエスト例

      aliyun ecs DescribeInstances \
      --RegionId cn-hangzhou \
      --InstanceIds '["<instance-id>"]'
    • レスポンス例

      PublicIpAddress パラメーターは、インスタンスのパブリック IP アドレスを示します。

      "PublicIpAddress": {
          "IpAddress": [
                          "115.29.xxx.xxx"
          ]
      }
  2. ECS インスタンスへの接続。

    ssh <username>@<public_ip_address>
    [root@i-xxx bfZ ~ ]# ssh root@1xx.xx.xx.xx
    The authenticity of host '1xx.xx.xx.xx (1xx.xx.xx.xx)' can't be established.
    ECDSA key fingerprint is SHA256:PVyhCaxxx4mecykrU.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '1xx.xx.xx.xx' (ECDSA) to the list of known hosts.
    root@1xx.xx.xx.xx's password:
    Welcome to Alibaba Cloud Elastic Compute Service !
    Last login: Thu Oct 10 13:31:58 2024 from xxx.67
    [root@iZ xxx ugZ ~]#

リソースのクリーンアップ

リソースが不要になったら、追加料金が発生しないようにリソースをリリースしてください。

説明

リソースをリリースするには、適切な OpenAPI を選択してください。この例では、前の手順で作成したすべてのリソースをリリースします。

  1. ECS インスタンスの削除。

    API

    パラメーター

    DeleteInstance

    RegionId

    リージョン: cn-hangzhou

    InstanceId

    インスタンス ID: i-bp17f3kzgtzzj91r****

  2. セキュリティグループの削除。

    API

    パラメーター

    DeleteSecurityGroup

    RegionId

    リージョン: cn-hangzhou

    SecurityGroupId

    セキュリティグループ ID: sg-bp1esyhwfbqeyudt****

  3. vSwitch の削除。

    API

    パラメーター

    DeleteVSwitch

    RegionId

    リージョン: cn-hangzhou

    VSwitchId

    vSwitch ID: vsw-bp1nzprm8h7mmnl8t****

  4. VPC の削除。

    API

    パラメーター

    DeleteVpc

    RegionId

    リージョン: cn-hangzhou

    VpcId

    VPC ID: vpc-bp1aag0sb9s4i92i3****

以下は、サンプルスクリプトです。

#!/bin/bash
# プレースホルダーの値を、リリースするリソースの実際の ID に置き換えてください。
INSTANCE_ID='i-bpxxxxxxxxxxxz4'
SECURITY_GROUP_ID='sg-bp1esyhwfbqeyudt****'
VSWITCH_ID='vsw-bp1nzprm8h7mmnl8t****'
VPC_ID='vpc-bp1aag0sb9s4i92i3****'
REGION='cn-hangzhou'
echo "Releasing resources..."
# インスタンスの削除
aliyun ecs DeleteInstance \
  --region ${REGION} \
  --InstanceId ${INSTANCE_ID}
# セキュリティグループを削除する前に、インスタンスが削除されるのを待ちます。
# 本番スクリプトでは、ここに待機ロジックを追加してください。
# セキュリティグループの削除
aliyun ecs DeleteSecurityGroup \
  --region ${REGION} \
  --SecurityGroupId ${SECURITY_GROUP_ID}
# vSwitch の削除
aliyun vpc DeleteVSwitch \
  --region ${REGION} \
  --VSwitchId ${VSWITCH_ID}
# VPC の削除
aliyun vpc DeleteVpc \
  --region ${REGION} \
  --VpcId ${VPC_ID}
echo "Cleanup complete."
            

関連ドキュメント

次のコマンドを実行すると、ECS でサポートされている CLI コマンドのリストを表示できます。

aliyun ecs --help

ECS API を呼び出すには、次の構文を使用します。詳細なパラメーターについては、各 API のドキュメントをご参照ください。

aliyun ecs <APIName> --<parameter1 value1> --<parameter2 value2> ...

CLI コマンドの生成

開発者がクラウドサービスの OpenAPI を迅速かつ効率的に学習して使用できるように、Alibaba Cloud は OpenAPI Web サイトを提供しています。これは、インテリジェントな OpenAPI 検索、ドキュメント、オンラインデバッグ、SDK 取得、コードサンプル、呼び出しエラー診断、呼び出し統計を統合した包括的な製品です。OpenAPI Web サイトを使用して、API の CLI コードを自動的に生成できます。詳細については、「OpenAPI とは」をご参照ください。

  1. ECS 用 OpenAPI Portal にログインしてください。

  2. 必要な API を選択し、パラメーターを入力してください。

  3. 右側の [CLI サンプル] タブをクリックして、指定したパラメーターでコマンドを生成してください。

    たとえば、StartInstance API を選択してパラメーターを入力すると、[CLI サンプル] タブに対応するコマンド aliyun ecs StartInstance --region cn-hangzhou --InstanceId 'i-bp1i79spj7zmoqg****' が生成されます。