AWS 命令行界面 (CLI) 是用于管理 AWS 服务的统一工具。只通过一个工具进行下载和配置,您可以使用命令行控制多个 AWS 服务并利用脚本来自动执行这些服务。 —- aws官方是这么描叙aws-cli的。在实际使用的时候通过脚本完成全自动化部署,一键管理许多云服务,aws-cli确实是你管理aws服务的一个提高生产力的好工具。
安装aws-cli
| $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" $ unzip awscli-bundle.zip $ ./awscli-bundle/install -b ~/bin/aws $ sudo ln -s ~/.local/lib/aws/bin/aws /usr/local/bin/aws $ aws --version
|
配置aws-cli
1. 创建访问密钥
话不多说,看图操作。



最后的访问密钥ID和私有访问密钥复制一下,准备工作👌。
2. 设置本地配置
1 2 3 4 5
| $ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: us-west-2 Default output format [None]: json
|
如果你不知道你的地区名字 你可以点这里查找。
上手使用
这里有几个日常管理常用的命令使用方法,更多的请看这里。
实例管理
创建实例
1.在创建实例前你的选择一个镜像,也是就一个模板,可以是自己的或社区的。
1 2 3 4 5 6
| aws ec2 describe-images --executable-users all
aws ec2 describe-images --owners amazon
aws ec2 describe-images --owners 123456789012
|
可以通过--filters
筛选出你感兴趣的 AMI 类型。如只显示 EBS 支持的 AMI
1
| --filters "Name=root-device-type,Values=ebs"
|
2.创建实例
1 2 3 4 5 6 7
| aws ec2 run-instances \ --image-id ami-ec499a81 \ --count 1 \ --instance-type t2.microE \ --key-name mykey \ --security-group-ids sg-2236db46
|
更多实例型号看这里
添加标签
1
| aws ec2 create-tags --resources "i-031380f079902c9bd" --tags 'Key=Name,Value=MyAuto'
|
aws ec2 create-tags
命令能给所有的资源添加标签,所以这里你指定你的--resources
为你的实例 ID,并且指定你需要添加的标签名以及内容。
获取实例状态信息
1
| aws ec2 describe-instance-status --instance-id "i-031380f079902c9bd"
|
这个返回的是实例的所有状态信息,如果你只需要部分可以利用--query
参数
1 2 3
| aws ec2 describe-instance-status --instance-id "i-031380f079902c9bd" --query "InstanceStatuses[0].InstanceState.Name" >> "running"
|
获取实例详细信息
1
| aws ec2 describe-instances --instance-ids "i-031380f079902c9bd"
|
当然,如果你只看IP
1 2
| aws ec2 describe-instances --instance-ids "i-031380f079902c9bd" --query "Reservations[0].Instances[0].PublicIpAddress" >> "55.222.111.22"
|
到这里你就可以在控制台看到该实例了。

删除实例
1
| aws ec2 terminate-instances --instance-ids "i-031380f079902c9bd"
|
AMI管理
创建AMI
1 2 3 4 5
| aws ec2 create-image \ --description "TEST_AMI" \ --instance-id "i-031380f079902c9bd" \ --name "testami20171030"
|
在创建该镜像时会自动创建一个快照,当然如果你要指定快照信息可以使用--block-device-mappings
参数。
为AMI添加标签
1
| aws ec2 create-tags --resources "ami-d4975eb9" --tags 'Key=Name,Value=MyAutoAMI'
|
查看AMI信息
1
| aws ec2 describe-images --image-ids "ami-d4975eb9"
|
这个可以返回镜像的所有信息,如果你只看其中某一项,你可以利用--query
参数.
1 2 3
| aws ec2 describe-images --image-ids "ami-d4975eb9" --query "Images[0].State" >> pendding
|
上面一顿操作结束,你就可以在你的AMI控制台看到。

删除AMI
1
| aws ec2 deregister-image --image-id "ami-d4975eb9"
|
如果你和我一样在创建AMI没有指定快照,那么它会自动为你创建快照。
1 2 3 4 5
| aws ec2 describe-images --image-ids "ami-d4975eb9" --query "Images[0].BlockDeviceMappings[0].Ebs.SnapshotId" >> "snap-f269e2fa"
aws ec2 delete-snapshot --snapshot-id "snap-f269e2fa"
|
自动缩放组管理
创建缩放组启动配置
1 2 3 4 5 6 7
| aws autoscaling create-launch-configuration \ --launch-configuration-name "oldlanchconf" \ --image-id "ami-d4975eb9" \ --instance-type "t2.microE" \ --security-groups "sg-2236db46" \ --key-name "mykey" \ --associate-public-ip-address
|
创建自动缩放组
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name "mygroup" \ --launch-configuration-name "oldlanchconf" \ --min-size 1 \ --max-size 3 \ --vpc-zone-identifier "subnet-41767929c"
aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name "mygroup" \ --launch-configuration-name "oldlanchconf" \ --load-balancer-names "my-load-balancer" \ --health-check-type "ELB" \ --health-check-grace-period 120
|
修改已有缩放组启动配置
1
| aws autoscaling update-auto-scaling-group --auto-scaling-group-name "oldlanchconf" --launch-configuration-name "newlaunchconf"
|
将实例加入缩放组
1
| aws autoscaling attach-instances --instance-ids "i-031380f079902c9bd" --auto-scaling-group-name "mygroup"
|
主要的操作大概也就这些,更多请看官方文档,如有错误,请指出哦。