麦星 - arcturus technologies- 

テクノロジー関連情報と日常的な何かを発信しています

【初心者向け】Alibaba Cloud CLIハンズオン レポート

ども、@うしです。

5月22日(水)に開催された「【初心者向け】Alibaba Cloud CLIハンズオン」に参加させて頂きました。

すんごく楽しかったので、
雰囲気だけでも、お伝え出来る様に内容をレポートさせて頂きます。

f:id:tangniu:20190523213441j:plain

という訳でイキナリですが、全体写真です。

結論から書いてしまいますが、AliEaters のコミュニティーは、
会を重ねるごとに面白くなっていってる感があります。

  • 知ってる人居ないし。。とか
  • もう、10回以上開催されてて、最初の方から参加してないから、何か行きづらい。とか

一切、関係ないです。

何回目からの参加でも楽しく、そして勉強になります!

AliEaters は、Alibaba Cloud を上手に使うための知見を共有する場なので、
面白そう!や興味がある。と思った方は、是非、参加しましょ。

ハンズオン

まず、ネットワーク部門のMVPの@n_watanabeさんから、
Alibaba Cloud CLIの説明」があり

その後、完倉(ししくら)さんのファシリテートで、
実際に、VPC + ECS作成ハンズオンを行いました。

 
 
〇 ハンズオンの様子(皆さんビールを飲みながらコマンドを叩いてますw ) f:id:tangniu:20190523224235j:plain

f:id:tangniu:20190523225339j:plain   
 
個人的には、@n_watanabeさんの「Alibaba Cloud CLIの説明」の中で登場する、
Open API Explore」が刺さりました。(知らなかった。。汗)

Open API Explore は、ブラウザからコマンドの実行が可能なOnline Linux Shell になります。

 

んで、以下は、実際の作業手順になります。

作業手順

  1. VPCの作成
  2. VSwitchの作成
  3. EIPの作成
  4. SecurityGroupの作成
  5. SecurityGroupの受信ルール追加
  6. Instance(ECS)の作成
  7. InstanceとEIPの紐付け
  8. インスタンスの起動
  9. 画面確認
  10. 後片付け

※上記手順は、VPC + ECS作成ハンズオンから抜粋させて頂きました。
※ここで重要なのは、コマンド一つ一つを覚えるより、
 構成図や、 各オブジェクトのレイヤーが重要で
 このレイヤーを理解すると、上記の手順についても理解が早い。と思います。

個人的に思った事

〇 不明な箇所をその場で気軽に質問して、その場で解決。ってハンズオンのメリットだよなー
CLIは、色々な用途(CI/CDや、DevOps 等)に使えそう。
〇 次回は、事前テスト要因として参加させて頂きたいー。と思った。
〇 呑みながらって素敵
〇 2回目はいつかなー?

  

ちなみに、
個人的にハンズオンって、その場で実際にやってみて、
理解した気になって、家帰ってやらない。と言う傾向にあるので、
ハンズオンの内容を、早速、Windows Cmd.exe でやってみました。

良かったら「Alibaba Cloud (アリババクラウド)CLI Hands on for Windows」も覗いて見て下さいなー

Alibaba Cloud (アリババクラウド])CLI Hands on for Windows

ども、@うしです。

5月22日(水)に開催された「【初心者向け】Alibaba Cloud CLIハンズオン」に参加させて頂きました。

個人的にハンズオンって、その場で実際にやってみて、
出来た気になって、家帰ってやらない。と言う傾向にあるので、
早速、ハンズオンのテキストWindows Cmd.exe でやってみました。

  

for Windows と言うタイトルですが…

発行するコマンド自体は一緒で、環境変数の設定などが無い形式のコマンドになります。
また、項番や手順もハンズオンのテキスト に準拠しております。

はじめに

  • aliyun-cli の初期設定が完了しており、Alibaba Cloud と疎通確認が取れていることを前提とします。
  • まだ、初期設定が済んでいない方は、こちらをご参照下さい。
  • コンソール画面と見比べながら作業すると、実際に作成されてたリソースが見れるので理解が深まります。

1. VPCの作成

1-1. 環境変数の設定(使用する情報)

1-2. VPCの作成. VPCの作成

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc CreateVpc  --VpcName ${VPC_NAME}  --Description "${VPC_DESC}"  --CidrBlock ${VPC_CIDR}
    

    〇 例

     C:\Users\cliuser> aliyun vpc CreateVpc --VpcName VPC --Description "Aliyun VPC" --CidrBlock 172.16.0.0/16
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "93BEDF16-FB17-436B-94D5-806A134C06E0",
             "ResourceGroupId": "rg-acfnyune27ponry",
             "RouteTableId": "vtb-6wexpi1eemqizhfvj0t09",
             "VpcId": "vpc-6wej98os503c52j82bxsn",                   ← 作成したVPC ID
             "VRouterId": "vrt-6we89zum4rs5h9r0geuhk"
     }
    

    ※この時点で、コンソールからVPCを確認すると、正常に作成されています。

    ※ちなみに、エラーの場合、以下の様に「ERROR」と表示されます。

     ERROR: SDK.ServerError
     ErrorCode: InvalidParameter
     Recommend:
     RequestId: 5EDAD6A7-814D-4185-B272-6706C2244F01
     Message: Specified value of "エラーの内容" is not valid
    

1-3. VPCの確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc DescribeVpcs   --VpcName ${VPC_NAME}
    

    〇 例

     C:\Users\cliuser>aliyun vpc DescribeVpcs  --VpcName VPC
    

    〇 以下の様に返却されるハズ

     {
             "PageNumber": 1,
             "Vpcs": {
                     "Vpc": [
                             {
                                     "VpcName": "VPC",
                                     "Description": "Aliyun VPC",
                                     "IsDefault": false,
                                     "NatGatewayIds": {
                                             "NatGatewayIds": []
                                     },
                                     "ResourceGroupId": "rg-acfnyune27ponry",
                                     "UserCidrs": {
                                             "UserCidr": []
                                     },
                                     "NetworkAclNum": 0,
                                     "RouterTableIds": {
                                             "RouterTableIds": [
                                                     "vtb-6wexpi1eemqizhfvj0t09"
                                             ]
                                     },
                                     "VpcId": "vpc-6wej98os503c52j82bxsn",       ← 上のVPCIDと同じもの
                                     "VRouterId": "vrt-6we89zum4rs5h9r0geuhk",
                                     "CreationTime": "2019-05-21T17:30:23Z",
                                     "Status": "Available",
                                     "CidrBlock": "172.16.0.0/16",
                                     "VSwitchIds": {
                                             "VSwitchId": []
                                     },
                                     "RegionId": "ap-northeast-1",
                                     "Ipv6CidrBlock": ""
                             }
                     ]
             },
             "TotalCount": 1,
             "PageSize": 10,
             "RequestId": "580E7225-4099-415F-9810-7F24E94826C1"
     }
    

2. VSwitchの作成

2-1. 環境変数の設定(使用する情報)

  • VPC_ID = "先程作成したVPC ID"
  • ZONE_ID="ap-northeast-1a"
  • VSWITCH_NAME="VSw"
  • VSWITCH_DESC="Aliyun VSwitch"
  • VSWITCH_CIDR="172.16.1.0/24"

2-2. 作成したVPCに、VSwitchを作成します。

  • 以下のコマンドを実行

    〇 フォーマット

         aliyun vpc CreateVSwitch   --VpcId ${VPC_ID}   --ZoneId ${ZONE_ID}   --VSwitchName ${VSWITCH_NAME}   --Description "${VPC_DESC}"   --CidrBlock ${VSWITCH_CIDR}
    

    〇 例

         C:\Users\cliuser>aliyun vpc CreateVSwitch   --VpcId vpc-6wej98os503c52j82bxsn   --ZoneId ap-northeast-1a   --VSwitchName VSw   --Description "Aliyun VSwitch"   --CidrBlock 172.16.1.0/24
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "B8B588C0-A5CD-4FFE-9B23-6B84C72E4268",
             "VSwitchId": "vsw-6we8vvax78we9e3kdyyu7"
     }
    

2-3. 作成したVSwitchの確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc DescribeVSwitches  --VSwitchName ${VSWITCH_NAME}
    

    〇 例

     C:\Users\cliuser>aliyun vpc DescribeVSwitches  --VSwitchName VSw
    

    〇 以下の様に返却されるハズ

         {
                 "PageNumber": 1,
                 "VSwitches": {
                         "VSwitch": [
                                 {
                                         "RouteTable": {
                                                 "RouteTableId": "vtb-6wexpi1eemqizhfvj0t09",
                                                 "RouteTableType": "System"
                                         },
                                         "Description": "Aliyun VSwitch",
                                         "IsDefault": false,
                                         "AvailableIpAddressCount": 252,
                                         "ResourceGroupId": "rg-acfnyune27ponry",
                                         "ZoneId": "ap-northeast-1a",
                                         "VSwitchId": "vsw-6we8vvax78we9e3kdyyu7",           ←VSwitch ID(後で使います)
                                         "NetworkAclId": "",
                                         "VpcId": "vpc-6wej98os503c52j82bxsn",
                                         "CreationTime": "2019-05-21T18:21:11Z",
                                         "Status": "Available",
                                         "CidrBlock": "172.16.1.0/24",
                                         "VSwitchName": "VSw",
                                         "Ipv6CidrBlock": ""
                                 }
                         ]
                 },
                 "TotalCount": 1,
                 "PageSize": 10,
                 "RequestId": "DECC058B-BD02-48F5-AA8B-2865029B72D3"
         }
    

3.EIP(Elastic IP)の作成

後で、作成したIPアドレスを使用し、外部からアクセスします。

3-1. 環境変数の設定(使用する情報)

  • EIP_BANDWIDTH="1"
  • EIP_INTERNET_CHARGE_TYPE="PayByTraffic"
  • EIP_INSTANCE_CHARGE_TYPE="PostPaid"

3-2. EIPを作成します。

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc AllocateEipAddress   --Bandwidth ${EIP_BANDWIDTH}   --InternetChargeType ${EIP_INTERNET_CHARGE_TYPE}   --InstanceChargeType ${EIP_INSTANCE_CHARGE_TYPE}
    

    〇 例

     C:\Users\cliuser>aliyun vpc AllocateEipAddress   --Bandwidth 1   --InternetChargeType "PayByTraffic"   --InstanceChargeType PostPaid
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "1AD9500F-8A0E-40AA-8ED1-508BFCA05CDB",
             "ResourceGroupId": "rg-acfnyune27ponry",
             "EipAddress": "47.74.36.91",
             "AllocationId": "eip-6wevab5wa7b9yclwt4aeu"
     }
    

3-3. 作成したEIPの確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc DescribeEipAddresses
    

    〇 例

     C:\Users\cliuser>aliyun vpc DescribeEipAddresses
    

    〇 以下の様に返却されるハズ

     {
             "PageNumber": 1,
             "EipAddresses": {
                     "EipAddress": [
                             {
                                     "BandwidthPackageBandwidth": "",
                                     "HasReservationData": false,
                                     "HDMonitorStatus": "OFF",
                                     "InstanceId": "",
                                     "ISP": "BGP",
                                     "InternetChargeType": "PayByTraffic",
                                     "BandwidthPackageType": "",
                                     "PrivateIpAddress": "",
                                     "SecondLimited": false,
                                     "Bandwidth": "1",
                                     "ChargeType": "PostPaid",
                                     "ResourceGroupId": "rg-acfnyune27ponry",
                                     "AllocationTime": "2019-05-21T18:46:37Z",
                                     "Descritpion": "",
                                     "IpAddress": "47.74.36.91",                         ←IPアドレスが発行されている。
                                     "AllocationId": "eip-6wevab5wa7b9yclwt4aeu",        ←アロケーションID
                                     "Mode": "NAT",
                                     "InstanceType": "",
                                     "Name": "",
                                     "Status": "Available",
                                     "InstanceRegionId": "",
                                     "BandwidthPackageId": "",
                                     "RegionId": "ap-northeast-1",
                                     "OperationLocks": {
                                             "LockReason": []
                                     },
                                     "AvailableRegions": {
                                             "AvailableRegion": [
                                                     "ap-northeast-1"
                                             ]
                                     },
                                     "ExpiredTime": ""
                             }
                     ]
             },
             "TotalCount": 1,
             "PageSize": 10,
             "RequestId": "843F89C0-B9E4-449F-8047-7F2C5A53DE99"
     }
    

4. SecurityGroupの作成

4-1. 環境変数の設定(使用する情報)

  • VPC_ID="先程作成したVPC ID"
  • ECS_SG_NAME="SG"
  • ECS_SG_DESC="Aliyun SG"

4-2.SecurityGroupの作成

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs CreateSecurityGroup   --VpcId ${VPC_ID}   --SecurityGroupName ${ECS_SG_NAME}   --Description "${ECS_SG_DESC}"
    

    〇 例

     C:\Users\cliuser>aliyun ecs CreateSecurityGroup   --VpcId vpc-6wej98os503c52j82bxsn   --SecurityGroupName SG   --Description "Aliyun SG"
    

    〇 以下の様に返却されるハズ

     {
             "SecurityGroupId": "sg-6wedd0ur1e5lj7ux7nsi",
             "RequestId": "06558882-DECF-4D1D-AC36-5FB5D3307D0C"
     }
    

4-3.SecurityGroupの確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs DescribeSecurityGroups   --SecurityGroupName ${ECS_SG_NAME}
    

    〇 例

     C:\Users\cliuser>aliyun ecs DescribeSecurityGroups   --SecurityGroupName SG
    

    〇 以下の様に返却されるハズ

     {
             "PageNumber": 1,
             "TotalCount": 1,
             "PageSize": 10,
             "RegionId": "ap-northeast-1",
             "RequestId": "DE33638E-2F1F-4EAA-820F-A49D67E98EE6",
             "SecurityGroups": {
                     "SecurityGroup": [
                             {
                                     "CreationTime": "2019-05-21T18:54:48Z",
                                     "Tags": {
                                             "Tag": []
                                     },
                                     "SecurityGroupId": "sg-6wedd0ur1e5lj7ux7nsi",           ←セキュリティグループID
                                     "SecurityGroupName": "SG",
                                     "Description": "Aliyun SG",
                                     "ResourceGroupId": "",
                                     "SecurityGroupType": "normal",
                                     "VpcId": "vpc-6wej98os503c52j82bxsn"
                             }
                     ]
             }
     }
    

5. SecurityGroupのルールの追加

5-1. 環境変数の設定(使用する情報)

  • SG_ID="先程作成したセキュリティグループID"
  • SG_DESC="Aliyun SG"
  • IP_PROTOCOL="tcp"
  • PORT_RANGE="80/80"
  • NIC_TYPE="intranet"
  • POLICY="accept"
  • DEST_CIDR_IP="0.0.0.0/0"

5-2.SecurityGroupの受信ルール追加

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs AuthorizeSecurityGroup   --SecurityGroupId ${SG_ID}   --Description "${SG_DESC}"   --IpProtocol ${IP_PROTOCOL}   --PortRange ${PORT_RANGE}   --NicType ${NIC_TYPE}   --Policy ${POLICY}   --SourceCidrIp ${DEST_CIDR_IP}
    

    〇 例 C:\Users\cliuser>aliyun ecs AuthorizeSecurityGroup --SecurityGroupId sg-6wedd0ur1e5lj7ux7nsi --Description "Aliyun SG" --IpProtocol tcp --PortRange 80/80 --NicType intranet --Policy accept --SourceCidrIp 0.0.0.0/0

    〇 以下の様に返却されるハズ

     {
             "RequestId": "91104614-C1F1-4D9E-989D-4175443F2331"
     }
    

5-3.SecurityGroupのルール確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs DescribeSecurityGroupAttribute  --SecurityGroupId ${SG_ID}
    

    〇 例

     C:\Users\cliuser>aliyun ecs DescribeSecurityGroupAttribute  --SecurityGroupId sg-6wedd0ur1e5lj7ux7nsi
    

    〇 以下の様に返却されるハズ

     {
             "SecurityGroupId": "sg-6wedd0ur1e5lj7ux7nsi",           ←セキュリティグループID
             "InnerAccessPolicy": "Accept",
             "SecurityGroupName": "SG",
             "Description": "Aliyun SG",
             "RegionId": "ap-northeast-1",
             "RequestId": "70AEBBE0-4862-4974-B351-76982E440D10",
             "Permissions": {
                     "Permission": [
                             {
                                     "SourceCidrIp": "0.0.0.0/0",
                                     "Description": "Aliyun SG",
                                     "DestCidrIp": "",
                                     "NicType": "intranet",
                                     "DestGroupName": "",
                                     "PortRange": "80/80",
                                     "DestGroupId": "",
                                     "Ipv6DestCidrIp": "",
                                     "Direction": "ingress",
                                     "Priority": 1,
                                     "IpProtocol": "TCP",
                                     "SourcePortRange": "",
                                     "SourceGroupOwnerAccount": "",
                                     "Policy": "Accept",
                                     "CreateTime": "2019-05-21T19:04:29Z",
                                     "SourceGroupId": "",
                                     "DestGroupOwnerAccount": "",
                                     "Ipv6SourceCidrIp": "",
                                     "SourceGroupName": ""
                             }
                     ]
             },
             "VpcId": "vpc-6wej98os503c52j82bxsn"
     }
    

6. Instance(ECS)の作成

6-1. 環境変数の設定(使用する情報)

  • INSTANCE_NAME="INSTANCE" ←インスタンス
  • ECS_DESC="Alicloud CLI INSTANCE"
  • ZONE_ID="ap-northeast-1a"
  • VSWITCH_ID="{作成したVSWITCH ID}"
  • SG_ID={作成したセキュリティグループID}
  • IMAGE_ID="alinux_17_01_64_20G_cloudinit_20171222.vhd"
  • INSTANCE_TYPE="ecs.n4.small"
  • INTERNET_CHARGE_TYPE="PayByTraffic"
  • INSTANCE_CHARGE_TYPE="PostPaid"
  • SYSTEM_DISK_CATEGORY="cloud_efficiency"
  • SYSTEM_DISK_SIZE=40
  • SYSTEM_DISK_NAME="SYS_DISK"
  • SYSTEM_DISK_DESC="AliCloud CLI System Disk"
  • USER_DATA="IyEvYmluL3NoDQp5dW0gaW5zdGFsbCAteSBodHRwZA0Kc3lzdGVtY3RsIHN0YXJ0IGh0dHBkDQpzeXN0ZW1jdGwgZW5hYmxlIGh0dHBk"

6-2. Instanceの作成

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs CreateInstance \
       --InstanceName ${INSTANCE_NAME} \
       --Description "${ECS_DESC}" \
       --ZoneId ${ZONE_ID} \
       --VSwitchId ${VSWITCH_ID} \
       --SecurityGroupId ${SG_ID} \
       --ImageId ${IMAGE_ID} \
       --InstanceType ${INSTANCE_TYPE} \
       --InternetChargeType ${INTERNET_CHARGE_TYPE} \
       --SystemDisk.Category ${SYSTEM_DISK_CATEGORY} \
       --SystemDisk.Size ${SYSTEM_DISK_SIZE} \
       --SystemDisk.DiskName ${SYSTEM_DISK_NAME} \
       --SystemDisk.Description "${SYSTEM_DISK_DESC}" \
       --UserData ${USER_DATA}
    

    〇 例

     C:\Users\cliuser>aliyun ecs CreateInstance --InstanceName INSTANCE  --Description "Alicloud CLI INSTANCE"  --ZoneId ap-northeast-1a  --VSwitchId vsw-6we8vvax78we9e3kdyyu7  --SecurityGroupId sg-6wedd0ur1e5lj7ux7nsi --ImageId alinux_17_01_64_20G_cloudinit_20171222.vhd  --InstanceType ecs.n4.small --InternetChargeType PayByTraffic  --SystemDisk.Category cloud_efficiency --SystemDisk.Size 40 --SystemDisk.DiskName SYS_DISK --SystemDisk.Description "AliCloud CLI System Disk" --UserData IyEvYmluL3NoDQp5dW0gaW5zdGFsbCAteSBodHRwZA0Kc3lzdGVtY3RsIHN0YXJ0IGh0dHBkDQpzeXN0ZW1jdGwgZW5hYmxlIGh0dHBk
    

    〇 以下の様に返却されるハズ

     {
             "InstanceId": "i-6webz60jjkcmjv9x36v0",                     ←インスタンスID
             "RequestId": "21FD3B0A-FDA5-4506-9206-A4352358759F"
     }
    

6-3. Instanceの確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs DescribeInstances   --InstanceName ${INSTANCE_NAME}
    

    〇 例

     C:\Users\cliuser>aliyun ecs DescribeInstances   --InstanceName INSTANCE
    

    〇 以下の様に返却されるハズ

     {
             "PageNumber": 1,
             "TotalCount": 2,
             "PageSize": 10,
             "RequestId": "D7B879E7-3C70-48C6-8A6C-098167445A01",
             "Instances": {
                     "Instance": [
                             {
                                     "ImageId": "alinux_17_01_64_20G_cloudinit_20171222.vhd",
                                     "VlanId": "",
                                     "EipAddress": {
                                             "IpAddress": "",
                                             "AllocationId": "",
                                             "InternetChargeType": ""
                                     },
                                     "ZoneId": "ap-northeast-1a",
                                     "IoOptimized": true,
                                     "SerialNumber": "e877cafe-ae8d-406c-92f2-3f1cf11bb807",
                                     "Cpu": 1,
                                     "Memory": 2048,
                                     "DeviceAvailable": true,
                                     "SecurityGroupIds": {
                                             "SecurityGroupId": [
                                                     "sg-6wedd0ur1e5lj7ux7nsi"
                                             ]
                                     },
                                     "SaleCycle": "",
                                     "AutoReleaseTime": "",
                                     "ResourceGroupId": "",
                                     "OSType": "linux",
                                     "OSName": "Aliyun Linux  17.1 64位",
                                     "InstanceNetworkType": "vpc",
                                     "HostName": "iZ6webz60jjkcmjv9x36v0Z",
                                     "CreationTime": "2019-05-21T19:17Z",
                                     "EcsCapacityReservationAttr": {
                                             "CapacityReservationPreference": "",
                                             "CapacityReservationId": ""
                                     },
                                     "RegionId": "ap-northeast-1",
                                     "DeletionProtection": false,
                                     "OperationLocks": {
                                             "LockReason": []
                                     },
                                     "ExpiredTime": "2099-12-31T15:59Z",
                                     "InnerIpAddress": {
                                             "IpAddress": []
                                     },
                                     "InstanceTypeFamily": "ecs.n4",
                                     "InstanceId": "i-6webz60jjkcmjv9x36v0",
                                     "NetworkInterfaces": {
                                             "NetworkInterface": [
                                                     {
                                                             "MacAddress": "00:16:3e:00:0d:8c",
                                                             "PrimaryIpAddress": "172.16.1.206",
                                                             "NetworkInterfaceId": "eni-6we975kjt3nylwqoh9av"
                                                     }
                                             ]
                                     },
                                     "InternetMaxBandwidthIn": 0,
                                     "CreditSpecification": "",
                                     "InternetChargeType": "PayByTraffic",
                                     "SpotStrategy": "NoSpot",
                                     "StoppedMode": "KeepCharging",
                                     "InternetMaxBandwidthOut": 0,
                                     "VpcAttributes": {
                                             "NatIpAddress": "",
                                             "PrivateIpAddress": {
                                                     "IpAddress": [
                                                             "172.16.1.206"
                                                     ]
                                             },
                                             "VSwitchId": "vsw-6we8vvax78we9e3kdyyu7",
                                             "VpcId": "vpc-6wej98os503c52j82bxsn"
                                     },
                                     "SpotPriceLimit": 0.0,
                                     "StartTime": "2019-05-21T19:17Z",
                                     "InstanceName": "INSTANCE",
                                     "Description": "Alicloud CLI INSTANCE",
                                     "OSNameEn": "Aliyun Linux 17.1 64 bit",
                                     "PublicIpAddress": {
                                             "IpAddress": []
                                     },
                                     "InstanceType": "ecs.n4.small",
                                     "Status": "Stopped",
                                     "Recyclable": false,
                                     "ClusterId": "",
                                     "GPUSpec": "",
                                     "InstanceChargeType": "PostPaid",
                                     "GPUAmount": 0,
                                     "DedicatedHostAttribute": {
                                             "DedicatedHostId": "",
                                             "DedicatedHostName": ""
                                     },
                                     "DedicatedInstanceAttribute": {
                                             "Affinity": "",
                                             "Tenancy": ""
                                     },
                                     "DeploymentSetId": ""
                             }
                     ]
             }
     }
    

7. InstanceとEIPの紐付け

7-1. 環境変数の設定(使用する情報)

7-2. InstanceとEIPの紐付け

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc AssociateEipAddress   --AllocationId ${EIP_ID}   --InstanceId ${INSTANCE_ID}   --InstanceType ${INSTANCE_TYPE}
    

    〇 例

     C:\Users\cliuser>aliyun vpc AssociateEipAddress   --AllocationId eip-6wevab5wa7b9yclwt4aeu   --InstanceId i-6webz60jjkcmjv9x36v0   --InstanceType EcsInstance
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "58FA7933-E45C-4C09-BADE-389A6D167669"
     }
    

7-3. 紐付けの確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc DescribeEipAddresses  --RegionId ${REGIO_ID}  --AssociatedInstanceId ${INSTANCE_ID}  --AssociatedInstanceType ${INSTANCE_TYPE} 
    

    〇 例

     C:\Users\cliuser>aliyun vpc DescribeEipAddresses  --RegionId ap-northeast-1  --AssociatedInstanceId i-6webz60jjkcmjv9x36v0   --AssociatedInstanceType EcsInstance
    

    〇 以下の様に返却されるハズ

     {
             "PageNumber": 1,
             "EipAddresses": {
                     "EipAddress": [
                             {
                                     "BandwidthPackageBandwidth": "",
                                     "HDMonitorStatus": "OFF",
                                     "HasReservationData": false,
                                     "InstanceId": "i-6webz60jjkcmjv9x36v0",     ←インスタンスID
                                     "ISP": "BGP",
                                     "InternetChargeType": "PayByTraffic",
                                     "BandwidthPackageType": "",
                                     "PrivateIpAddress": "",
                                     "SecondLimited": false,
                                     "Bandwidth": "1",
                                     "ChargeType": "PostPaid",
                                     "AllocationTime": "2019-05-21T18:46:37Z",
                                     "ResourceGroupId": "rg-acfnyune27ponry",
                                     "Descritpion": "",
                                     "IpAddress": "47.74.36.91",                     ←IPアドレス
                                     "AllocationId": "eip-6wevab5wa7b9yclwt4aeu",
                                     "Mode": "NAT",
                                     "InstanceType": "EcsInstance",
                                     "Name": "",
                                     "Status": "InUse",
                                     "InstanceRegionId": "ap-northeast-1",
                                     "BandwidthPackageId": "",
                                     "RegionId": "ap-northeast-1",
                                     "OperationLocks": {
                                             "LockReason": []
                                     },
                                     "AvailableRegions": {
                                             "AvailableRegion": [
                                                     "ap-northeast-1"
                                             ]
                                     },
                                     "ExpiredTime": ""
                             }
                     ]
             },
             "TotalCount": 1,
             "PageSize": 10,
             "RequestId": "984DB957-92FB-42A4-8AAF-44119C2DBB6F"
     }
    

8. インスタンスの起動

8-1. 環境変数の設定(使用する情報)

  • INSTANCE_ID=i-6webz60jjkcmjv9x36v0

8-2. Instanceの起動

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs StartInstance  --InstanceId ${INSTANCE_ID}
    

    〇 例

     C:\Users\cliuser>aliyun ecs StartInstance  --InstanceId i-6webz60jjkcmjv9x36v0
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "B53720E7-F7B6-41A3-8236-2D84BBF40D7A"
     }
    

8-3. 起動確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs DescribeInstanceStatus
    

    〇 例

     C:\Users\cliuser>aliyun ecs DescribeInstanceStatus
    

    〇 以下の様に返却されるハズ

     {
             "PageNumber": 1,
             "InstanceStatuses": {
                     "InstanceStatus": [
                             {
                                     "Status": "Running",                            ←インスタンスID:i-6webz60jjkcmjv9x36v0 が起動している
                                     "InstanceId": "i-6webz60jjkcmjv9x36v0"
                             },
                             {
                                     "Status": "Stopped",
                                     "InstanceId": "i-XXXXXXXXXXXXXXXX"
                             },
                             {
                                     "Status": "Stopped",
                                     "InstanceId": "i-YYYYYYYYYYYYYY"
                             },
                             {
                                     "Status": "Stopped",
                                     "InstanceId": "i-ZZZZZZZZZZZZZZZZZ"
                             }
                     ]
             },
             "TotalCount": 4,
             "PageSize": 10,
             "RequestId": "4DA51641-4E54-4403-A044-65EAA5517AEA"
     }
    

9. 画面確認

9-1. 環境変数の設定(使用する情報)

9-2. curlで確認

  • 以下のコマンドを実行

    〇 フォーマット

     curl http://${ACCESS_EIP}
    

    〇 例

     C:\Users\cliuser>curl http://47.74.36.91
    

    〇 以下の様に返却されるハズ

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html><head>
     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
                     <title>Apache HTTP Server Test Page powered by Alinux</title>
     <body>
     <p>Hello Apache</p>
     </body></html>
    

9-2:おまけ. ブラウザでも確認

ブラウザから以下のIPへアクセス

    47.74.36.91


画面へ

    Hello Apache

と表示されれば、正常に処理が出来ています。

10.後片付け

10-1. 環境変数の設定(使用する情報)

  • VPC_ID=作成したVPC ID
  • VSWITCH_ID=作成したVSWITCH ID
  • EIP_ID=作成したEIP ID
  • SG_ID=作成したセキュリティグループID
  • INSTANCE_ID=発行されたしたINSTANCE ID
  • VPC_CIDR_BLOCK="172.16.0.0/16"
  • INSTANCE_NAME=インスタンス

10-2:a. Instanceの停止

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs StopInstance  --InstanceId ${INSTANCE_ID}
    

    〇 例

     C:\Users\cliuser>aliyun ecs StopInstance  --InstanceId i-6webz60jjkcmjv9x36v0
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "38CB9221-5591-4A44-86CE-94A06EAA2C23"
     }
    

10-2:b. Instanceの確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs DescribeInstanceStatus
    

    〇 例

     C:\Users\cliuser>aliyun ecs DescribeInstanceStatus
    

    〇 以下の様に返却されるハズ

     {
             "PageNumber": 1,
             "InstanceStatuses": {
                     "InstanceStatus": [
                             {
                                     "Status": "Stopped",                            ←インスタンスID:i-6webz60jjkcmjv9x36v0 が停止している
                                     "InstanceId": "i-6webz60jjkcmjv9x36v0"
                             },
                             {
                                     "Status": "Stopped",
                                     "InstanceId": "i-XXXXXXXXXXXXXXXX"
                             }
                     ]
             },
             "TotalCount": 4,
             "PageSize": 10,
             "RequestId": "ACFE80F6-F6E5-4FE6-A1F0-F1D5847E0334"
     }
    

10-2:c. Instanceの削除

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs DeleteInstance  --InstanceId ${INSTANCE_ID}
    

    〇 例

     C:\Users\cliuser>aliyun ecs DeleteInstance  --InstanceId i-6webz60jjkcmjv9x36v0
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "287333E5-40BD-433E-B370-F742F51C4F35"
     }
    

10-2:d. Instanceが削除されているか確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs DescribeInstances  --InstanceName ${INSTANCE_NAME}
    

    〇 例

     aliyun ecs DescribeInstances  --InstanceName INSTANCE
    
    
     インスタンス名で検索し、指定したインスタンスが、無ければ、正しく削除されている。
    

10-3:a SecurityGroupの受信ルール削除

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs RevokeSecurityGroup  --SecurityGroupId ${SG_ID}  --PortRange ${PORT_RANGE}  --IpProtocol ${IP_PROTOCOL}  --SourceCidrIp "${DEST_CIDR_IP}"
    

    〇 例

     C:\Users\cliuser>aliyun ecs RevokeSecurityGroup  --SecurityGroupId sg-6wedd0ur1e5lj7ux7nsi  --PortRange 80/80  --IpProtocol tcp  --SourceCidrIp "0.0.0.0/0"
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "59456FA6-EBE9-4052-A043-96023ED6FFD4"
     }
    

10-3:b SecurityGroupのルール確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs DescribeSecurityGroupAttribute  --SecurityGroupId ${SG_ID} 
    

    〇 例

     C:\Users\cliuser>aliyun ecs DescribeSecurityGroupAttribute  --SecurityGroupId sg-6wedd0ur1e5lj7ux7ns
    

    〇 以下の様に返却されるハズ

     ERROR: SDK.ServerError
     ErrorCode: InvalidSecurityGroupId.NotFound              ←そんなセキュリティグループIDないよ。
     Recommend:
     RequestId: 675B8886-BC42-45CF-BC44-BA4E777D139E
     Message: The specified SecurityGroupId does not exist.
    

10-3:c SecurityGroupの削除

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun ecs DeleteSecurityGroup  --SecurityGroupId ${SG_ID}
    

    〇 例

     C:\Users\cliuser>aliyun ecs DeleteSecurityGroup  --SecurityGroupId sg-6wedd0ur1e5lj7ux7ns
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "E246915B-300D-4861-9A34-7D278E5B70A4"
     }
    

10-4:a. EIPのリリース

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc ReleaseEipAddress  --AllocationId ${EIP_ID}
    

    〇 例

     C:\Users\cliuser>aliyun vpc ReleaseEipAddress  --AllocationId eip-6wevab5wa7b9yclwt4aeu
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "9D07D88D-2F3A-4338-B83A-B7DA03ABBE2A"
     }
    

10-4:b. EIPの確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc DescribeEipAddresses  --AllocationId ${EIP_ID} 
    

    〇 例

     C:\Users\cliuser>aliyun vpc DescribeEipAddresses  --AllocationId eip-6wevab5wa7b9yclwt4aeu
    

    〇 以下の様に返却されるハズ

     {
             "PageNumber": 1,
             "EipAddresses": {
                     "EipAddress": []                            ←IPアドレスが無くなった。
             },
             "TotalCount": 0,                                    ←カウントも0
             "PageSize": 10,
             "RequestId": "1E5A5E48-C3F1-4E5F-BE69-49A6384E408A"
     }
    

10-5:a. VSwitchの削除

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc DeleteVSwitch  --VSwitchId ${VSWITCH_ID}
    

    〇 例

     C:\Users\cliuser>aliyun vpc DeleteVSwitch  --VSwitchId vsw-6we8vvax78we9e3kdyyu7
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "BD59526E-C4F2-4889-A732-D3533A3CB3DB"
     }
    

10-5:b. VSwitchの確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc DescribeVSwitches  --VSwitchName ${VSWITCH_NAME}
    

    〇 例

     C:\Users\cliuser>aliyun vpc DescribeVSwitches  --VSwitchName VSw
    

    〇 以下の様に返却されるハズ

     {
             "PageNumber": 1,
             "VSwitches": {
                     "VSwitch": []           ←空になっている事を確認
             },
             "TotalCount": 0,
             "PageSize": 10,
             "RequestId": "424ED6FE-514E-491D-8D0B-A78E4E764573"
     }
    

10-6:a. VPCの削除

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc DeleteVpc  --VpcId ${VPC_ID}
    

    〇 例

     C:\Users\cliuser>aliyun vpc DeleteVpc  --VpcId vpc-6wej98os503c52j82bxsn
    

    〇 以下の様に返却されるハズ

     {
             "RequestId": "A6279BB8-A9F6-4FFA-BB8A-A5FE98CAA321"
     }
    

10-6:b. VPCの確認

  • 以下のコマンドを実行

    〇 フォーマット

     aliyun vpc DescribeVpcs --VpcName ${VPC_NAME} 
    

    〇 例

     C:\Users\cliuser>aliyun vpc DescribeVpcs --VpcName VPC
    

    〇 以下の様に返却されるハズ

     {
             "PageNumber": 1,
             "Vpcs": {
                     "Vpc": []       ←空になっている事を確認
             },
             "TotalCount": 0,
             "PageSize": 10,
             "RequestId": "053BC71C-AC8E-480C-B0EC-BAF6D316DDA2"
     }
    

作業は以上になります。

Alibaba Cloud CLIハンズオン 事前準備

ども、@うしです。

5月22日に開催されるミートアップで、
【初心者向け】Alibaba Cloud CLIハンズオン」に参加させて頂きます。

alibabacloud.connpass.com

ハンズオン資料に沿って、各自でコマンドラインからVPC、ECSの作成をする内容なのですが、

その事前準備として、

コマンドラインCLI)から、Alibaba Cloud へ接続できる環境を準備したので
その手順を共有させて頂きます。

〇 環境
  • OS: Windows10(64bit)
〇 必要なソフト
〇 手順
  1. 「aliyun-cli-windows」をダウンロード

  2. DLしたZIPを解凍

    • フォルダ名を「aliyun-cli-windows-3.0.15-amd64」から「aliyun-cli」へ変更します。
    • ちなみに、フォルダの中には「aliyun.exe」が入っています。
    • リネーム後のフォルダの階層は、以下の様になります。
      • \デスクトップ
        • \aliyun-cli
          • aliyun.exe
  3. デスクトップにある「aliyun-cli」フォルダをCドライブ直下に移動します。

  4. 環境変数「PATH」に「C:\aliyun-cli」を追加します。

  5. コマンドを実行してみます。
    以下のコマンドをコマンドラインから実行して動作するか確認してみます。

C:\>aliyun

実際に Alibaba Cloud の環境へCLIでアクセス

  1. Alibaba Cloud の環境へアクセスするには…
    • アクセスするユーザー(RAMサブアカウント)
    • Alibaba Cloud へアクセスする為の AccessKey の発行
    • どのような権限を持たせるか RAMロール設定

が必要。どいう事で、

Alibaba Cloud の管理コンソールにログインし、
Resource Access Management (RAM) から今回、新たにAPI用のRAMサブアカウントを発行します。

  • RAMから新規ユーザ作成

    • ログイン名を「cliuser」と入力、AccessKey を自動生成にチェックし、OKボタン
      f:id:tangniu:20190523200330j:plain
    • 「AK情報を保存」ボタン押下でCSVがダウンロードされるので、テキストエディタで開いてください。
      f:id:tangniu:20190523200333j:plain
  • 次に、RAMのユーザ一の権限設定します。

    • RAMユーザ一覧から、作成したユーザの「許可」リンクを押下し、権限設定します。
    • 今回は、お試しなので「AdministratorAccess」を与えて見た。
    • OKボタン押下で、権限設定は完了です。 f:id:tangniu:20190523200337j:plain

CLI実行前の設定

  1. CLIを実行する前にAccessKeyや言語などの設定を行います。

    以下のコマンドによりプロファイルを作成します。

    DLした AccessKey を入力してください。

C:\> aliyun configure --profile {ユーザ名}   

Configuring profile '' in '' authenticate mode...
Aliyun Access Key ID [None]: {CSVのAccessKey}
Aliyun Access Key Secret [None]: {CSVのAccessKeySecret}
Default Region Id [None]: ap-northeast-1
Default output format [json]: json (Only support json)
Default Languate [zh|en]: en

正常終了すると、以下の様にレスポンスがあります。

C:\>aliyun configure --profile username
Configuring profile 'username' in '' authenticate mode...
Access Key Id [*************WmJ]:
Access Key Secret [***************************X1Y]:
Default Region Id [ap-northeast-1]:
Default Output Format [json]: json (Only support json))
Default Language [zh|en] en: en
Saving profile[arcturus] ...Done.
 available regions:
  cn-qingdao
  cn-beijing
  cn-zhangjiakou
  cn-huhehaote
  cn-hangzhou
  cn-shanghai
  cn-shenzhen
  cn-hongkong
  ap-northeast-1
  ap-southeast-1
  ap-southeast-2
  ap-southeast-3
  ap-southeast-5
  ap-south-1
  us-east-1
  us-west-1
  eu-west-1
  me-east-1
  eu-central-1

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 ..............

正常動作確認用にお試しコマンド実行

○お試しに、以下のコマンドを実行

C:\>aliyun configure list

●以下の様に返却があるはず。

Profile    | Credential         | Valid   | Region           | Language
---------  | ------------------ | ------- | ---------------- | --------
default    | AK:***             | Invalid |                  | en
           | AK:***WYW          | Valid   | ap-northeast-1   | en
arcturus * | AK:***WmJ          | Valid   | ap-northeast-1   | en
cliuser    | AK:***WYW          | Valid   | ap-northeast-1   | en

○お試しコマンド2を実行

C:\>aliyun vpc CreateVpc --help

●以下が返却されるハズ。

Alibaba Cloud Command Line Interface Version 3.0.15

Product: Vpc (Virtual Private Cloud)
Link:    https://help.aliyun.com/api/vpc/CreateVpc.html

Parameters:
  --RegionId        String  Required
  --CidrBlock       String  Optional
  --ClientToken     String  Optional
  --Description     String  Optional
  --EnableIpv6      Boolean Optional
  --Ipv6CidrBlock   String  Optional
  --ResourceGroupId String  Optional
  --UserCidr        String  Optional
  --VpcName         String  Optional

以上で、事前準備は完了になります。