默认使用root用户进行操作( sudo -i

在 Linux 上安装 AWS CLI 版本 2

Linux 64位下
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && unzip awscliv2.zip && ./aws/install
如果报错 -bash: unzip: command not found 解决方法 apt install unzip

 

使用 aws configure 添加配置

aws configure
AWS Access Key ID [None]: AKIAIABCDEFN7EXAMPLE
AWS Secret Access Key [None]: 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
Default region name [None]: us-west-2 参见区域终端节点
Default output format [None]: json

 

区域终端节点

美国东部 (俄亥俄) us-east-2
美国东部 (弗吉尼亚北部) us-east-1
美国西部 (加利福尼亚北部) us-west-1
美国西部 (俄勒冈) us-west-2
非洲(开普敦) af-south-1
亚太地区(香港) ap-east-1
亚太地区 (孟买) ap-south-1
亚太地区(大阪) ap-northeast-3
亚太地区 (首尔) ap-northeast-2
亚太地区 (新加坡) ap-southeast-1
亚太地区 (悉尼) ap-southeast-2
亚太地区 (东京) ap-northeast-1
加拿大(中部) ca-central-1
中国(北京) cn-north-1
中国 (宁夏) cn-northwest-1
欧洲(法兰克福) eu-central-1
欧洲(爱尔兰) eu-west-1
欧洲(伦敦) eu-west-2
欧洲(米兰) eu-south-1
欧洲(巴黎) eu-west-3
欧洲(斯德哥尔摩) eu-north-1
中东(巴林) me-south-1
南美洲(圣保罗) sa-east-1

 

 

创建密钥对

要创建密钥对,使用 create-key-pair 命令以及 –query 选项和 –output text 选项,以通过管道将私有密钥直接传输到文件。其中修改myec2sshkey可以自定义密钥对名称
aws ec2 create-key-pair --key-name myec2sshkey --query 'KeyMaterial' --output text > myec2sshkey.pem
以下示例显示 myec2sshkey 的指纹。
aws ec2 describe-key-pairs --key-name myec2sshkey
从 Linux 计算机连接到您的实例,建议您使用以下命令设置您的私有密钥文件的权限,以确保只有您可以读取该文件。
chmod 400 myec2sshkey.pem

 

创建安全组

查看安全组的信息,可以看到VPC值类似于vpc-2aaed043
aws ec2 describe-security-groups
您可以创建与 VPC 或 EC2-Classic 关联的安全组。以下示例说明如何为指定的 VPC 创建安全组名称为my-sg
aws ec2 create-security-group --group-name my-sg --description "My security group" --vpc-id vpc-2aaed043
输出:
“GroupId”: “sg-0f2c99d7213d67267” 记下这个安全组的id值后续配置端口放行需要用到

要查看指定名称或者ID的安全组的信息
aws ec2 describe-security-groups --group-names my-sg
aws ec2 describe-security-groups --group-id sg-0f2c99d7213d67267 注意需替换group-id

为指定id的安全组添加规则
分别是IPv4下的连接SSH端口22,tcp和udp的80到65534端口以及允许Ping
aws ec2 authorize-security-group-ingress --group-id sg-0f2c99d7213d67267 --protocol tcp --port 22 --cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress --group-id sg-0f2c99d7213d67267 --protocol tcp --port 80-65534 --cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress --group-id sg-0f2c99d7213d67267 --protocol udp --port 80-65534 --cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress --group-id sg-0f2c99d7213d67267 --protocol icmp --port -1 --cidr 0.0.0.0/0

 

查看部分地区的Amazon Linux 2系统AMI信息

可以DD Debian 不翻车,比如大阪的ami-056314235f4f5d523记下来后面创建EC2实例会用到
[美国东部 (俄亥俄) us-east-2] Amazon Linux 2
aws ec2 describe-images --region us-east-2 --image-ids ami-077e31c4939f6a2f3

[亚太地区(香港) ap-east-1] Amazon Linux 2
aws ec2 describe-images --region ap-east-1 --image-ids ami-0aca22cb23f122f27

[亚太地区(大阪) ap-northeast-3] Amazon Linux 2
aws ec2 describe-images --region ap-northeast-3 --image-ids ami-056314235f4f5d523

[亚太地区 (东京) ap-northeast-1] Amazon Linux 2
aws ec2 describe-images --region ap-northeast-1 --image-ids ami-0ca38c7440de1749a

 

创建大阪EC2实例

并设定成14G硬盘,可以通过修改VolumeSize的值改变硬盘大小
aws ec2 run-instances --image-id ami-056314235f4f5d523 --count 1 --instance-type t2.micro --key-name myec2sshkey --security-groups my-sg --block-device-mappings "[{\"DeviceName\":\"/dev/xvda\",\"Ebs\":{\"VolumeSize\":14,\"DeleteOnTermination\":true}}]"
注意,

–image-id 是系统镜像AMI
–count 是开机数量默认值是1
–instance-type 是实例型号比如t2.micro
–key-name 是之前创建的密钥对名称
–security-group 是之前创建的安全组名称比如my-sg
–block-device-mappings 是配置硬盘,VolumeSize后面的14表示硬盘大小为14G

 

查看实例列表

并输出不同命令匹配项的值

  • 查看实例ID是什么
    aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId"

“i-00a60995d80f9a35f”

  • 查看实例AMI是什么
    aws ec2 describe-instances --query "Reservations[].Instances[].ImageId"

ami-056314235f4f5d523

  • 查看实例型号是什么
    aws ec2 describe-instances --query "Reservations[].Instances[].InstanceType"

t2.micro

  • 查看实例运行状态
    aws ec2 describe-instances --query "Reservations[].Instances[].State"

“Code”: 16,
“Name”: “running”

  • 查看实例IP是多少
    aws ec2 describe-instances --query "Reservations[].Instances[].PublicIpAddress"

15.152.250.122

  • 以下两行均可以查看实例全部信息,具体显示内容过长请自行执行后查看
    aws ec2 describe-instances --query "Reservations[].Instances

aws ec2 describe-instances --output table --region us-east-2

以表格的形式输出实例全部信息

 

SSH 连接EC2

ssh -i ./myec2sshkey.pem [email protected]

需要修改替换成你的IP与私钥文件

 

使用萌咖脚本一键DD成Debian 10

root密码是Your.Pass.wd务必自行替换成比较复杂的密码

先是根据操作系统类型安装必要组件

#Debian/Ubuntu:
apt-get install -y xz-utils openssl gawk file
#RedHat/CentOS:
yum install -y xz openssl gawk file

萌咖脚本DD成Debian 10

bash <(wget --no-check-certificate -qO- 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh') -d 10 -v 64 -a -p Your.Pass.wd

 

管理实例

可以使用命令 terminate-instances 将其删除。 注意将i-04203750357922d9d替换成你的实例ID
aws ec2 terminate-instances --instance-ids i-04203750357922d9d

重启实例,可以使用命令 reboot-instances 将其重新启动。
aws ec2 reboot-instances --instance-ids i-04203750357922d9d

 

使用 AWS CLI 查找 AMI
待补充,目前在AWS网页版查找AMI最方便

查看EC2配额CPU限制

运行 list-service-quota 命令,查看特定服务和区域的可用配额代码。在以下示例中, –service-code ec2确定了具体服务类型是ec2。修改 –region 替换为您的区域,示例请求为 us-east-2 区域。
aws service-quotas list-service-quotas --service-code ec2 --region us-east-2 --query "Quotas[*].{ServiceName:ServiceName,QuotaName:QuotaName,QuotaCode:QuotaCode,Value:Value}" --output table

检查CPU限制配额(–quota-code对应值需要从上一步表格里面Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances找到)
aws service-quotas get-service-quota --service-code ec2 --quota-code L-1216C47A --region us-east-2 L-1216C47A可能需要自行替换