1.安装AWS Cli
不同类型系统安装文档
http://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html
2.配置AWS Cli
2.1 获取用户的Access Key
访问密钥/凭证
创建访问密钥
- 打开 IAM 控制台
- 在导航中选择 Users
- 选择IAM 用户名称(不是复选框)
- 选择安全证书选项卡,然后选择创建访问密钥
- 要查看访问密钥,选择显示,内容如下:
Access Key ID: ********************
Secret Access Key: *************************************
- 要下载密钥文件,选择下载 .csv 文件,将密钥存储在安全位置
注意:创建密钥后要保存下来,如未保存只能删除重建,最多可以创建两个密钥,为了安全应定期更换AWS密钥。
2.2 配置Cli
配置CLI
$ aws configure
AWS Access Key ID [None]: *****************
AWS Secret Access Key [None]: *******************************
Default region name [None]: us-west-2
Default output format [None]: json
这些信息分别保存在~/.aws/credentials
,```~/.aws/config文件内:
credentials:
[default]
aws_access_key_id = *****************
aws_secret_access_key = *******************************
config:
[default]
output = json
region = us-west-2
若再次运行aws configure命令,不需改动的项直接回车即可。
3.CLI选项
CLI选项
--profile – profile名称, 默认为"default"
--region – AWS region
--output – 输出格式,支持json、text、table,默认为json
--endpoint-url – 指定endpoint, 可以是Proxy或Endpoint URL。一般不需指定,CLI基于region决定。
4.CLI示例
CLI调用时可以指定–region、–output、–profile作为参数,下例以表格的形式显示cn-north-1下的instance:
$ aws ec2 describe-instances --output table --region cn-north-1
5. cli 过滤查询
windows:
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query "Reservations[].Instances[].[Tags[?Key==`Name`] | [0].Value,InstanceId,State.Name,InstanceType,Placement.AvailabilityZone]" --output table > d:/tmp/ec2.txt
Linux:
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[Tags[?Key==`Name`] | [0].Value,InstanceId,State.Name,InstanceType,Placement.AvailabilityZone]' --output table > /tmp/ec2.txt
6. 从AMI创建EC2
aws ec2 run-instances --image-id ami-0cd80db077fc4be53 --count 2 --instance-type t3a.micro --key-name eshow --security-group-ids sg-0239710413186c914 --subnet-id subnet-de9d9795
{
"OwnerId": "123456789012",
"ReservationId": "r-5875ca20",
"Groups": [
{
"GroupName": "my-sg",
"GroupId": "sg-903004f8"
}
],
"Instances": [
{
"Monitoring": {
"State": "disabled"
},
"PublicDnsName": null,
"Platform": "windows",
"State": {
"Code": 0,
"Name": "pending"
},
"EbsOptimized": false,
"LaunchTime": "2013-07-19T02:42:39.000Z",
"PrivateIpAddress": "10.0.1.114",
"ProductCodes": [],
"VpcId": "vpc-1a2b3c4d",
"InstanceId": "i-5203422c",
"ImageId": "ami-173d747e",
"PrivateDnsName": ip-10-0-1-114.ec2.internal,
"KeyName": "MyKeyPair",
"SecurityGroups": [
{
"GroupName": "my-sg",
"GroupId": "sg-903004f8"
}
],
"ClientToken": null,
"SubnetId": "subnet-6e7f829e",
"InstanceType": "t2.micro",
"NetworkInterfaces": [
{
"Status": "in-use",
"SourceDestCheck": true,
"VpcId": "vpc-1a2b3c4d",
"Description": "Primary network interface",
"NetworkInterfaceId": "eni-a7edb1c9",
"PrivateIpAddresses": [
{
"PrivateDnsName": "ip-10-0-1-114.ec2.internal",
"Primary": true,
"PrivateIpAddress": "10.0.1.114"
}
],
"PrivateDnsName": "ip-10-0-1-114.ec2.internal",
"Attachment": {
"Status": "attached",
"DeviceIndex": 0,
"DeleteOnTermination": true,
"AttachmentId": "eni-attach-52193138",
"AttachTime": "2013-07-19T02:42:39.000Z"
},
"Groups": [
{
"GroupName": "my-sg",
"GroupId": "sg-903004f8"
}
],
"SubnetId": "subnet-6e7f829e",
"OwnerId": "123456789012",
"PrivateIpAddress": "10.0.1.114"
}
],
"SourceDestCheck": true,
"Placement": {
"Tenancy": "default",
"GroupName": null,
"AvailabilityZone": "us-west-2b"
},
"Hypervisor": "xen",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sda1",
"Ebs": {
"Status": "attached",
"DeleteOnTermination": true,
"VolumeId": "vol-877166c8",
"AttachTime": "2013-07-19T02:42:39.000Z"
}
}
],
"Architecture": "x86_64",
"StateReason": {
"Message": "pending",
"Code": "pending"
},
"RootDeviceName": "/dev/sda1",
"VirtualizationType": "hvm",
"RootDeviceType": "ebs",
"Tags": [
{
"Value": "MyInstance",
"Key": "Name"
}
],
"AmiLaunchIndex": 0
}
]
}
7.创建EC2并命名
aws ec2 run-instances --image-id ami-06ac4bb2a45e50c7d --count 1 --instance-type t3a.micro --key-name eshow --security-group-ids sg-0239710413186c914 --subnet-id subnet-de9d9795 --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=ip-for-phone-01}]'
参考:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html