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. 设置本地配置
$ aws configure
AWS Access Key ID [None]: # 刚刚获得的访问密钥ID
AWS Secret Access Key [None]: # 刚刚获得的私有访问密钥
Default region name [None]: us-west-2 # 你的服务地区
Default output format [None]: json # 你需要返回的数据格式
如果你不知道你的地区名字 你可以点这里查找。
上手使用
这里有几个日常管理常用的命令使用方法,更多的请看这里。
实例管理
创建实例
1.在创建实例前你的选择一个镜像,也是就一个模板,可以是自己的或社区的。
# 查看所有AMI,包括你的所有公用AMI
aws ec2 describe-images --executable-users all
# 查看亚马逊的
aws ec2 describe-images --owners amazon
# 查看指定账户公用的
aws ec2 describe-images --owners 123456789012
可以通过--filters
筛选出你感兴趣的 AMI 类型。如只显示 EBS 支持的 AMI
--filters "Name=root-device-type,Values=ebs"
2.创建实例
# 我选的是 Amazon Linux AMI 2017.09.1 (HVM), SSD Volume Type - ami-ec499a81
aws ec2 run-instances \
--image-id ami-ec499a81 \ # 从哪个镜像起
--count 1 \ # 起多少台
--instance-type t2.microE \ # 什么型号的实例
--key-name mykey \ # 用那组秘钥对
--security-group-ids sg-2236db46 # 实例安全组
更多实例型号看这里
添加标签
aws ec2 create-tags --resources "i-031380f079902c9bd" --tags 'Key=Name,Value=MyAuto'
aws ec2 create-tags
命令能给所有的资源添加标签,所以这里你指定你的--resources
为你的实例 ID,并且指定你需要添加的标签名以及内容。
获取实例状态信息
aws ec2 describe-instance-status --instance-id "i-031380f079902c9bd"
这个返回的是实例的所有状态信息,如果你只需要部分可以利用
--query
参数
# 查看实例是不是在运行
aws ec2 describe-instance-status --instance-id "i-031380f079902c9bd" --query "InstanceStatuses[0].InstanceState.Name"
>> "running"
获取实例详细信息
aws ec2 describe-instances --instance-ids "i-031380f079902c9bd"
当然,如果你只看IP
aws ec2 describe-instances --instance-ids "i-031380f079902c9bd" --query "Reservations[0].Instances[0].PublicIpAddress"
>> "55.222.111.22"
到这里你就可以在控制台看到该实例了。
删除实例
aws ec2 terminate-instances --instance-ids "i-031380f079902c9bd"
AMI管理
创建AMI
# 从实例 i-031380f079902c9bd 创建镜像
aws ec2 create-image \
--description "TEST_AMI" \ # AMI描叙
--instance-id "i-031380f079902c9bd" \ # 实例ID
--name "testami20171030" # 创建的AMI名字
在创建该镜像时会自动创建一个快照,当然如果你要指定快照信息可以使用
--block-device-mappings
参数。
为AMI添加标签
aws ec2 create-tags --resources "ami-d4975eb9" --tags 'Key=Name,Value=MyAutoAMI'
查看AMI信息
aws ec2 describe-images --image-ids "ami-d4975eb9"
这个可以返回镜像的所有信息,如果你只看其中某一项,你可以利用
--query
参数.
# 只查看状态
aws ec2 describe-images --image-ids "ami-d4975eb9" --query "Images[0].State"
>> pendding
上面一顿操作结束,你就可以在你的AMI控制台看到。
删除AMI
aws ec2 deregister-image --image-id "ami-d4975eb9"
如果你和我一样在创建AMI没有指定快照,那么它会自动为你创建快照。
# 查询该镜像快照ID
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"
自动缩放组管理
创建缩放组启动配置
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 # 为该实例分配一个公有IP
创建自动缩放组
# 在指定的子网内创建一个缩放组
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" # "缩放组子网id"
# 创建一个配置负载均衡的缩放组
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" \ # 健康状态检查类型 使用ELB提供的健康检查
--health-check-grace-period 120 # 实例自动伸缩前120秒的任何健康检查失败将被忽略
修改已有缩放组启动配置
aws autoscaling update-auto-scaling-group --auto-scaling-group-name "oldlanchconf" --launch-configuration-name "newlaunchconf"
将实例加入缩放组
aws autoscaling attach-instances --instance-ids "i-031380f079902c9bd" --auto-scaling-group-name "mygroup"
主要的操作大概也就这些,更多请看官方文档,如有错误,请指出哦。