Aliyuncli のよく使うコマンド一覧

# 概要

Alibaba Cloudを操作する[Aliyuncli](http://qiita.com/talzeus/items/28c773f77b40770a8c42)の詳細については前の記事に書きましたが、何かやりたくコマンド実行したいときに、もう一回記事を読むのは面倒なので、aliyuncliのcheatsheetをメモします。

コマンドライン必要な情報を`jq`で抽出します。

※ [コマンドふう](http://www.commandlinefu.com/commands/browse) のように、この記事ではおわりません。便利コマンドが見つけたら、ぜひPRをください！

# Aliyuncli
## ECS

```
# ECS特定のVPCネットワークを参照
$ aliyuncli ecs DescribeVpcs | jq '.Vpcs.Vpc[] | {"VpcId": .VpcId, "router": .VRouterId, "switch": .VSwitchIds.VSwitchId, "CIDR": .CidrBlock }'

# SecurityGroup 一覧取得
$ aliyuncli ecs DescribeSecurityGroups | jq '.SecurityGroups.SecurityGroup[] | {"group name": .SecurityGroupName, "group id": .SecurityGroupId }'

# Linuxイメージ一覧を取得
$ aliyuncli ecs DescribeImages --RegionId ap-northeast-1 --PageSize 100 | jq '.Images.Image[] | select(.OSType=="linux") | [.ImageName, .ImageId]'

# インスタンス種類を取得
$ aliyuncli ecs DescribeInstanceTypes --RegionId ap-northeast-1 --PageSize 100 | jq '.InstanceTypes.InstanceType[] | select(.CpuCoreCount == 1) | select(.MemorySize == 1) | [.InstanceTypeId, .CpuCoreCount, .MemorySize, .InstanceTypeFamily]'

# インスタンス購入
aliyuncli ecs CreateInstance --ImageId centos_7_2_64_40G_base_20170222.vhd --InstanceType ecs.xn4.small --SecurityGroupId sg-6wecuztjlpbvb9aqzhnt --VSwitchId vsw-6we1b1uu6jhk37znanv5x
# インスタンス状態を確認
$ aliyuncli ecs DescribeInstanceStatus | jq '.InstanceStatuses.InstanceStatus[] | select(.InstanceId == "i-6we6caulmy9eoervabrg")'
# OR
$ aliyuncli ecs DescribeInstanceAttribute --InstanceId i-6we6caulmy9eoervabrg
# インスタンス名変更
$ aliyuncli ecs ModifyInstanceAttribute --InstanceId i-6webczsnsibebopgqk3n --InstanceName ha-test-api

# インスタンス起動・停止
$ aliyuncli ecs StartInstance --InstanceId i-6we6caulmy9eoervabrg
$ aliyuncli ecs StopInstance --InstanceId i-6we6caulmy9eoervabrg

# EIP 取得・リリース
$ aliyuncli ecs AllocateEipAddress --RegionId ap-northeast-1 --InternetChargeType PayByTraffic --Bandwidth 10
$ aliyuncli ecs ReleaseEipAddress --AllocationId eip-6wekxjhsorf3vxm7d9zbn

# AllocationId でEIPを検索
$ aliyuncli ecs DescribeEipAddresses | jq '.EipAddresses.EipAddress[] | select(.AllocationId == "eip-6wedmapsh7d2pfxvigwnx")'

# EIPの帯域幅の調整 / EIP bind
$ aliyuncli ecs ModifyEipAddressAttribute --AllocationId eip-6wedmapsh7d2pfxvigwnx --Bandwidth 5
$ aliyuncli ecs AssociateEipAddress --AllocationId eip-6wedmapsh7d2pfxvigwnx --InstanceId i-6webczsnsibebopgqk3n

# イメージを作成
$ aliyuncli ecs CreateImage --InstanceId i-6webczsnsibebopgqk3n --ImageName ha-test-api-image
$ イメージ参照
$ aliyuncli ecs DescribeImages | jq '.Images.Image[] | select(.ImageId == "m-6we3yk3g77us0seaycd6")'
$ aliyuncli ecs DescribeImages | jq '.Images.Image[] | select(.ImageName | contains("cicd"))'
```


## RDS
```
# RDSインスタンス一覧を取得
$ aliyuncli rds DescribeDBInstances --PageSize 50

# 
# aliyuncli rds CreateDBInstance --Engine MySQL --EngineVersion 5.6 --DBInstanceClass rds.mysql.t1.small --DBInstanceStorage 5 --DBInstanceNetType Internet --RegionId ap-northeast-1 --InstanceNetworkType VPC --VPCId vpc-6wex6nsnwomo9x5jmwzfv --VSwitchId vsw-6we1b1uu6jhk37znanv5x --SecurityIPList 0.0.0.0/0 --PayType Postpaid
```

## SLB
```
# SLB作成
$ aliyuncli slb CreateLoadBalancer --LoadBalancerName cicd-demo-lb --InternetChargeType paybytraffic

# SLB属性の調査
$ aliyuncli slb DescribeLoadBalancerAttribute --LoadBalancerId lb-e9bb7ppqnr4oyxyw738i2

# BackendServersを追加
$ aliyuncli slb AddBackendServers --LoadBalancerId lb-e9bb7ppqnr4oyxyw738i2 --BackendServers "[{'ServerId': 'i-6web6xefml52lcl833eve', 'Weight': '100'}]"
```