【初心者向け】Alibaba Cloud CLIハンズオン レポート
ども、@うしです。
5月22日(水)に開催された「【初心者向け】Alibaba Cloud CLIハンズオン」に参加させて頂きました。
すんごく楽しかったので、
雰囲気だけでも、お伝え出来る様に内容をレポートさせて頂きます。
という訳でイキナリですが、全体写真です。
結論から書いてしまいますが、AliEaters のコミュニティーは、
会を重ねるごとに面白くなっていってる感があります。
- 知ってる人居ないし。。とか
- もう、10回以上開催されてて、最初の方から参加してないから、何か行きづらい。とか
一切、関係ないです。
何回目からの参加でも楽しく、そして勉強になります!
AliEaters は、Alibaba Cloud を上手に使うための知見を共有する場なので、
面白そう!や興味がある。と思った方は、是非、参加しましょ。
ハンズオン
まず、ネットワーク部門のMVPの@n_watanabeさんから、
「Alibaba Cloud CLIの説明」があり
その後、完倉(ししくら)さんのファシリテートで、
実際に、VPC + ECS作成ハンズオンを行いました。
〇 ハンズオンの様子(皆さんビールを飲みながらコマンドを叩いてますw )
個人的には、@n_watanabeさんの「Alibaba Cloud CLIの説明」の中で登場する、
「Open API Explore」が刺さりました。(知らなかった。。汗)
Open API Explore は、ブラウザからコマンドの実行が可能なOnline Linux Shell になります。
んで、以下は、実際の作業手順になります。
作業手順
- VPCの作成
- VSwitchの作成
- EIPの作成
- SecurityGroupの作成
- SecurityGroupの受信ルール追加
- Instance(ECS)の作成
- InstanceとEIPの紐付け
- インスタンスの起動
- 画面確認
- 後片付け
※上記手順は、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. 環境変数の設定(使用する情報)
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ハンズオン」に参加させて頂きます。
ハンズオン資料に沿って、各自でコマンドラインからVPC、ECSの作成をする内容なのですが、
その事前準備として、
コマンドライン(CLI)から、Alibaba Cloud へ接続できる環境を準備したので
その手順を共有させて頂きます。
〇 環境
- OS: Windows10(64bit)
〇 必要なソフト
〇 手順
-
https://github.com/aliyun/aliyun-cli へアクセスし、Windows (64 bit) リンクからDL
- DLファイルをデスクトップに移動します。
DLしたZIPを解凍
デスクトップにある「aliyun-cli」フォルダをCドライブ直下に移動します。
コマンドを実行してみます。
以下のコマンドをコマンドラインから実行して動作するか確認してみます。
C:\>aliyun
実際に Alibaba Cloud の環境へCLIでアクセス
- Alibaba Cloud の環境へアクセスするには…
- アクセスするユーザー(RAMサブアカウント)
- Alibaba Cloud へアクセスする為の AccessKey の発行
- どのような権限を持たせるか RAMロール設定
が必要。どいう事で、
Alibaba Cloud の管理コンソールにログインし、
Resource Access Management (RAM) から今回、新たにAPI用のRAMサブアカウントを発行します。
RAMから新規ユーザ作成
次に、RAMのユーザ一の権限設定します。
- RAMユーザ一覧から、作成したユーザの「許可」リンクを押下し、権限設定します。
- 今回は、お試しなので「AdministratorAccess」を与えて見た。
- OKボタン押下で、権限設定は完了です。
CLI実行前の設定
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
以上で、事前準備は完了になります。