常用AWS命令行汇总(awscli)

来源:互联网 发布:java ee是什么 编辑:程序博客网 时间:2024/05/24 04:58

创建一个Key,查看内容并生成pem文件。

aws ec2 create-key-pair --key-name MyCypayTestCalifornia --query 'KeyMaterial' \ --output text > MyTestCalifornia.pem
创建一个VPC安全组
aws ec2 create-security-group --group-name MyCATest --description MyCATest \--vpc-id vpc-efxxxx8a
列举当前安全组名称和ID
aws ec2 describe-security-groups  --query SecurityGroups[*].[GroupName,GroupId,VpcId]
添加安全组规则
aws ec2 authorize-security-group-ingress --group-id sg-d1xxxxb4 --protocol tcp \--port 22 --cidr 202.x.x.120/29  --protocol tcp --port 8080-8082 --cidr 10.10.0.0/16 \--protocol tcp --port 80 --cidr 0.0.0.0/0
查看当前安全组规则
aws ec2 describe-security-groups --group-ids  sg-d1xxxxb4
创建实例
aws ec2 run-instances --image-id ami-7axxxx3f --count 1 --instance-type t1.micro \--key-name MyTestCalifornia --security-group-ids sg-dxxxxbb4 \--placement AvailabilityZone=us-west-1c --subnet-id subnet-5exxxx3b \--block-device-mappings "[{\"DeviceName\": \"/dev/sdf\",\"Ebs\":{\"VolumeSize\":100}}]"\--user-data  "/sbin/mkfs.ext4 /dev/xvdf && /bin/mount /dev/xvdf /home"
##注释--image-id 指定AMI ID--key-name 可选,登录服务器用--placement AvailabilityZone=us-west-1c  选择AZ,此项可选,有默认值--block-device-mappings "[{\"DeviceName\": \"/dev/sdf\",\"Ebs\":{\"VolumeSize\":100}}]"再额外加100G的EBS磁盘,记得在powershell或者在CMD下双引号需要转义如果size大于快照大小,需要开机后用resize2fs命令在线动态扩展文件系统size小于快照中的大小则不生效,按照快照中的磁盘大小创建--user-data  "/sbin/mkfs.ext4 /dev/xvdf && /bin/mount /dev/xvdf /home"  指定开机初始化脚本,可用file://xxxx.sh 来指定网络或者本地文件

给实例打标签

aws ec2 create-tags --resources i-3xxxxb6d --tags Key=Name,Value=APITest \ Key=PROJECT,Value=cypay

创建个EIP

aws ec2 allocate-address --domain vpc{   "PublicIp": "54.x.x.12",   "Domain": "vpc",   "AllocationId": "eipalloc-axxxxxcd"}

将VPC中的EIP与VPC中的实例关联

aws ec2 associate-address --instance-id i-3xxxxx6d --allocation-id eipalloc-afxxxx8cd

此时可以ssh链接自己的实例

ssh -i MyTestCalifornia.pem  ec2-user@54.x.x.12

列举出所有用户和他的AccessKey ID

aws iam list-users --query 'Users[*].[UserName,CreateDate,UserId]' --output table

列举出当前实例的相关信息

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, \ Placement.AvailabilityZone, State.Name,  InstanceType, PublicIpAddress, \PrivateIpAddress, Tags[0].Value, Tags[1].Value]' --output text
0 0