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

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

最終更新日:Dec 12, 2024

Alibaba Cloud CLIは、端末またはコマンドラインインターフェイスでAlibaba Cloud API操作を呼び出して、Alibaba Cloudリソースを作成、設定、および管理できるコマンドラインツールです。 このトピックでは、Alibaba Cloud CLIを使用してElastic Compute Service (ECS) APIを呼び出してECSインスタンスを作成および管理する方法と例について説明します。

説明

Alibaba Cloud CLIの詳細については、Alibaba Cloud CLIとは

準備

  1. Resource Access Management (RAM) ユーザーのAccessKeyペアを作成します。 Alibaba Cloudアカウントには、リソースに対するすべての権限があります。 Alibaba CloudアカウントのAccessKeyペアが漏洩した場合、リソースは大きなリスクにさらされます。 RAM ユーザーの AccessKey ペアを使用することを推奨します。 AccessKeyペアの作成方法については、「AccessKeyペアの作成」をご参照ください。

  2. 使用するRAMユーザーに、ECSおよびVirtual Private Cloud (VPC) リソースに必要な権限を付与します。 このトピックで提供されるサンプルコードは、ECSインスタンス、VPC、vSwitchなどのリソースを作成します。 サンプルコードの実行に必要な権限を付与するには、次の表に示すポリシーをRAMユーザーにアタッチすることを推奨します。

    クラウドサービス

    ポリシー

    VPC

    AliyunVPCFullAccess

    ECS

    AliyunECSFullAccess

  3. Alibaba Cloud CLIをインストールおよび設定します。 Alibaba Cloud CLIを使用する前に、Alibaba Cloud CLIをインストールする必要があります。 Alibaba Cloud CLIは、Windows、Linux、およびmacOSにインストールできます。 コンピューターで実行されるオペレーティングシステムに適したインストールパッケージをダウンロードします。

    1. Alibaba Cloud CLI のインストール。 さまざまなオペレーティングシステムにAlibaba Cloud CLIをインストールする方法については、以下のトピックを参照してください。

    2. Alibaba Cloud CLI の設定

      Alibaba Cloudリソースを使用するために必要な、資格情報やリージョンなどのパラメーターを設定します。 資格情報の設定方法については、「プロファイルの設定」トピックの [資格情報の種類] セクションの [AK] タブに移動します。

    一時的なデバッグ操作のみを実行する必要がある場合は、Alibaba Cloud CLIをインストールする必要はありません。 Alibaba Cloudが提供するCloud Shellを使用して、デバッグ操作を実行できます。 詳細については、「」をご参照ください。Cloud Shellとは image

ECS インスタンスの作成

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

  1. VPC を作成します。

    VPCは、クラウド内の専用プライベートネットワークです。 VPCをパブリッククラウドで論理的に分離されたネットワークとして設定および管理できます。

    API 操作

    パラメーター

    説明と例

    CreateVpc

    RegionId

    VPCを作成するリージョンのID。 例: ap-northeast-1

    CidrBlock

    VPC の CIDR ブロックです。 例: 192.168.0.0/16

  2. VSwitch を作成します。

    vSwitchは、物理スイッチの機能をサポートするVPC内のネットワークスイッチングデバイスです。 仮想マシン (VM) 間、およびVMと物理ネットワーク間の通信を可能にします。

    API 操作

    パラメーター

    説明と例

    RegionId

    vSwitchを作成するリージョンのID。 例: ap-northeast-1

    CreateVSwitch

    ZoneId

    vSwitchを作成するゾーンのID。 例: ap-northeast-1a

    VpcId

    vSwitchを作成するVPCのID。 例: vpc-bp1aag0sb9s4i92i3 ****

    CidrBlock

    VSwitch の CIDR ブロックです。 例: 192.168.0.0/24

  3. セキュリティグループを作成します。

    セキュリティグループは、ECSインスタンスのインバウンドトラフィックとアウトバウンドトラフィックを制御する仮想ファイアウォールとして機能します。

    API 操作

    パラメーター

    説明と例

    CreateSecurityGroup

    RegionId

    セキュリティグループを作成するリージョンのID。 例: ap-northeast-1

    VpcId

    セキュリティグループを作成するVPCのID。 例: vpc-bp1aag0sb9s4i92i3 ****

  4. セキュリティグループにインバウンドルールを作成します。

    API 操作

    パラメーター

    説明と例

    AuthorizeSecurityGroup

    RegionId

    セキュリティグループのリージョン ID です。 例: ap-northeast-1

    SecurityGroupId

    セキュリティグループの ID です。 例: sg-bp1esyhwfbqeyudt ****

    IpProtocol

    プロトコル。 例: tcp

    SourceCidrIp

    ソース CIDR ブロックです。 例: 0.0.0.0/0

    PortRange

    ポート範囲。 例:

    • Linuxインスタンス: 22/22

    • Windowsインスタンス: 3389/3389

  5. ECSインスタンスを作成します。

    ECSは、高性能で安全で低コストのコンピューティング容量を提供し、Webサイトホスティング、アプリケーション開発、データ処理などのさまざまなシナリオに適しています。 ECSを使用すると、アプリケーションを迅速にデプロイして実行し、ビジネスの変化に応じてリソースを柔軟に調整できます。

    API 操作

    パラメーター

    説明と例

    RunInstances

    RegionId

    ECSインスタンスを作成するリージョンのID。 例: ap-northeast-1

    ImageId

    ECSインスタンスを作成するイメージのID。 IDがaliyun_3_x64_20G_alibase_20240819.vhdのAlibaba Cloud Linuxイメージを選択することを推奨します。

    InstanceType

    ECSインスタンスのインスタンスタイプ。 例: ecs.e-c1m1.large

    SecurityGroupId

    ECSインスタンスを作成するセキュリティグループのID。 例: sg-bp1esyhwfbqeyudt ****

    VSwitchId

    ECSインスタンスを接続するvSwitchのID。 例: vsw-bp1nzprm8h7mmnl8t ****

    InstanceName

    ECSインスタンスの名前。 例: ecs_cli_demo

    InstanceChargeType

    ECSインスタンスの課金方法。 従量課金インスタンスを作成するには、このパラメーターをPostPaidに設定します。

    説明

    アカウントの残高が十分であることをご確認ください。

    パスワード

    ログインパスワード。 例: ******

    InternetMaxBandwidthOut

    最大アウトバウンドパブリック帯域幅です。 このパラメーターの値が0より大きい場合、パブリックIPアドレスがインスタンスに自動的に割り当てられます。

    SystemDisk.Category

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

    SystemDisk.Size

    システムディスクのサイズ。 例: 40 GiB。

次のサンプルコードは、ECSインスタンスの作成方法の完全な例を示しています。

重要

Alibaba Cloud CLIを使用してサンプルコードを実行します。 コードを繰り返し実行すると、VPC、vSwitch、セキュリティグループなどのリソースが繰り返し作成されます。 これは、リソースの浪費を引き起こし得る。 コードを注意深く確認し、ビジネスロジックに基づいてコードを最適化するようにしてください。

#!/bin/bash

# Configure the AccessKey ID and AccessKey secret used by Alibaba Cloud CLI.
# Note: Make sure that the AccessKey ID and AccessKey secret are securely configured by configuring environment variables or by using a configuration file.

# 1. Configure variables.
INSTANCE_NAME="ecs_cli_demo"

#2. Install the jq tool.
echo "Installing the jq dependency tool..."
yum install jq
sleep 3

#3. Create a VPC, a vSwitch, and a security group.
echo "Creating a VPC..."
VpcId=$(aliyun vpc CreateVpc --RegionId ap-northeast-1 --CidrBlock 192.168.0.0/16 | jq -r .VpcId)
aliyun vpc DescribeVpcAttribute --RegionId ap-northeast-1 --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=ap-northeast-1a | jq -r .VSwitchId)

echo "Creating a security group..."
SecurityGroupId=$(aliyun ecs CreateSecurityGroup --RegionId ap-northeast-1 --VpcId ${VpcId} | jq -r .SecurityGroupId)
aliyun ecs AuthorizeSecurityGroup --RegionId ap-northeast-1 --SecurityGroupId ${SecurityGroupId} --IpProtocol tcp --SourceCidrIp 0.0.0.0/0 --PortRange 22/22 > /dev/null 2>&1

read -s -P "Input Your Password:" PASSWORD
echo
echo "PASSWORD OK."

# 4. Run the command used to create an ECS instance.
echo "Creating an ECS instance..."
INSTANCE_ID_RAW=$(aliyun ecs RunInstances \
--RegionId ap-northeast-1 \
--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. Obtain the InstanceId parameter for subsequently returned information.
INSTANCE_ID=$(echo "$INSTANCE_ID_RAW" | jq -r '.InstanceIdSets.InstanceIdSet[]')

# 6. Wait for 20 seconds for the ECS instance to be created.
echo "Waiting for the ECS instance to be created..."
sleep 20

# 7. Query the status of the ECS instance.
echo "Querying the status of the ECS instance..."
INSTANCE_ID_QUOTED=$(printf '"%s"' "$INSTANCE_ID")
aliyun ecs DescribeInstances \
--RegionId ap-northeast-1 \
--InstanceIds "[${INSTANCE_ID_QUOTED}]" \
--output cols=InstanceId,InstanceName,InstanceType,ImageId,Status rows=Instances.Instance[]

シェルスクリプトを作成して実行します。 コマンドの出力を次の図に示します。

image

ECS インスタンスへの接続

SSHを使用してECSインスタンスにログインし、ECSインスタンスにサービスをデプロイしてアプリケーションを構築できます。

  1. ECSインスタンスのパブリックIPアドレスを取得します。

    DescribeInstances操作を呼び出し、<Instance ID> を指定して、インスタンスのパブリックIPアドレスを照会します。

    • リクエストの例

      aliyun ecs DescribeInstances \
      --RegionId ap-northeast-1 \
      -- InstanceIds '["<Instance ID>"]' 
    • レスポンスの例

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

      公网IP

  2. ECS インスタンスに接続します。

    ssh <Username>@<Public IP address>

    image

リソースのリリース

作成したリソースが不要になった場合は、次のAPIを呼び出してリソースをリリースできます。

説明

ビジネス要件に基づいてリソースをリリースするAPI操作を選択します。 次の例では、前のセクションで作成されたすべてのリソースがリリースされます。

  1. ECSインスタンスをリリースします。

    API 操作

    パラメーター

    説明と例

    DeleteInstances

    RegionId

    リージョン ID です。 例: ap-northeast-1

    InstanceId

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

  2. セキュリティグループを削除します。

    API 操作

    パラメーター

    説明と例

    DeleteSecurityGroup

    RegionId

    セキュリティグループのリージョン ID です。 例: ap-northeast-1

    SecurityGroupId

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

  3. vSwitchを削除します。

    API 操作

    パラメーター

    説明と例

    DeleteVSwitch

    RegionId

    リージョン ID です。 例: ap-northeast-1

    VSwitchId

    vSwitch ID。 例: vsw-bp1nzprm8h7mmnl8t ****

  4. VPC を削除します。

    API 操作

    パラメーター

    説明と例

    DeleteVpc

    RegionId

    リージョン ID です。 例: ap-northeast-1

    VpcId

    VPC ID 例: vpc-bp1aag0sb9s4i92i3 ****

サンプルコード:

#!/bin/bash

# Configure the parameters of the resources that you want to release or delete.
INSTANCE_ID='ecs_cli_demo'  # Specify the ID of the ECS instance that you want to release.
SECURITY_GROUP_ID='sg-bp1esyhwfbqeyudt****' # Specify the ID of the security group that you want to delete.
VSWITCH_ID='vsw-bp1nzprm8h7mmnl8t****'  # Specify the ID of the vSwitch that you want to delete.
VPC_ID='vpc-bp1aag0sb9s4i92i3****'      # Specify the ID of the VPC that you want to delete.
REGION='ap-northeast-1'                    # Specify the region ID.

echo "Releasing or deleting resources..."

# Release the ECS instance.
aliyun ecs DeleteInstance \
  --region ${REGION} \
  --InstanceId ${INSTANCE_ID}

# Delete the security group.
aliyun ecs DeleteSecurityGroup \
  --region ${REGION} \
  --RegionId ${REGION} \
  --SecurityGroupId ${SECURITY_GROUP_ID}

# Delete the vSwitch.
aliyun vpc DeleteVSwitch \
  --region ${REGION} \
  --RegionId ${REGION} \
  --VSwitchId ${VSWITCH_ID}

# Delete the VPC.
aliyun vpc DeleteVpc \
  --region ${REGION} \
  --RegionId ${REGION} \
  --VpcId ${VPC_ID}

echo "Release completed"

関連ドキュメント

次のコマンドを実行して、サポートされているコマンドを照会できます。

aliyun ecs --help

次の構文を使用してコマンドを実行し、ECS API操作を呼び出すことができます。 リクエストパラメーターの詳細については、各API操作のドキュメントを参照してください。

aliyun ecs <API operation name> --<Parameter 1 Value 1> --<Parameter 2 Value 2> ...

CLIコマンドの生成

Alibaba Cloudは、開発者がさまざまなAlibaba CloudサービスのAPI操作を迅速かつ効率的に理解して使用するためのOpenAPI Explorerを提供しています。 OpenAPI Explorerは、インテリジェント検索、ドキュメント、オンラインデバッグ、SDKダウンロード、サンプルコード、エラー診断、呼び出し統計など、API操作に関連する複数の機能を統合しています。 OpenAPI Explorerを使用して、API操作のCLIコマンドを生成できます。 詳細については、「」をご参照ください。APIとは何ですか?

  1. 最初に

    OpenAPIポータル

  2. CLIコマンドを生成するAPI操作を選択し、パラメーターを指定します。

  3. 右側のウィンドウの [CLIの例] タブをクリックして、指定したパラメーターで生成されたCLIコマンドを表示します。

    2024-08-12_10-30-57.png