使用AWS CLI通过API Key和API Secret体验免费12个月的EC2
|
字数总计:
3931
|
阅读时长:
2分钟
|
阅读量:
5
这篇文章距离最后更新已过1 天,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
- 需要准备
- 申请到API Key和API Secret。
- 电脑集成AWS CLI开发环境,Mac可以使用HomeBrew一键安装。
brew install awscli
AWS Region Name 包括 (但不限于):
us-east-1 (北弗吉尼亚): 这是 AWS 的第一个 Region,通常被称为 "us-east-1"。
us-east-2 (俄亥俄)
us-west-1 (北加州)
us-west-2 (俄勒冈)
ap-south-1 (孟买)
ap-northeast-1 (东京)
ap-northeast-2 (首尔)
ap-southeast-1 (新加坡)
ap-southeast-2 (悉尼)
eu-central-1 (法兰克福)
eu-west-1 (爱尔兰)
eu-west-2 (伦敦)
eu-west-3 (巴黎)
eu-north-1 (斯德哥尔摩)
sa-east-1 (圣保罗)
ca-central-1 (加拿大中部)
根据实例AMI不同,默认用户名可能是:
Amazon Linux: ec2-user
Ubuntu: ubuntu
CentOS: centos
RHEL: ec2-user或root
- 开始操作
root@iMac:~# aws configure
AWS Access Key ID [None]: AK****************** #API Key
AWS Secret Access Key [None]: Rk************************************** #API Secret
Default region name [None]: ap-southeast-2 #我选的悉尼区
Default output format [None]: json #以JSON输出内容
root@iMac:~# aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pem
--key-name MyKeyPair: 指定密钥对的名称。名称必须在你的账户内唯一。
--query 'KeyMaterial' --output text: 提取私钥内容并以文本格式输出。
> MyKeyPair.pem: 将私钥保存到名为 MyKeyPair.pem 的文件中。 这是至关重要的步骤,因为 AWS 不会为你存储私钥。丢失私钥将无法访问使用该密钥对启动的实例。
- 此时在命令行执行
ls -a
就可以查看到当前路径下的密钥文件MyKeyPair.pem
- 查询当前区域可用的符合
Free Tier
的实例类型:
root@iMac:~# aws ec2 describe-instance-types \
--filters "Name=free-tier-eligible,Values=true" \
--query "InstanceTypes[].InstanceType"
[
"t2.micro"
]
root@iMac:~# aws ec2 describe-images --filters "Name=name,Values=*Ubuntu*" --owners amazon --output table #这将列出名称包含 "Ubuntu" 的 Amazon AMI。 你可以使用通配符 * 来匹配部分名称。
|| ImageId | ami-00fdfd2f612bf964f #我选第一个结果
root@iMac:~# aws ec2 create-security-group --group-name FreeTier-Sydney --description "Free Tier Security Group"
root@iMac:~# aws ec2 describe-security-groups
"GroupId": "sg-0d5ab08be8cc8ee2e",
root@iMac:~# aws ec2 run-instances \
--image-id ami-00fdfd2f612bf964f \ # Ubuntu AMI (根据区域替换为最新AMI)
--instance-type t2.micro \ # Free Tier符合条件的实例类型
--key-name MyKeyPair \ # 替换为你的密钥对名称
--security-group-ids sg-0d5ab08be8cc8ee2e \ # 替换为你的安全组ID
--count 1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=FreeTier-Instance}]'
root@iMac:~# aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' --output text
i-00848d6f4b5b3183f
- 获取公网IP(可能需要等待一会才能获取到公网IP):
root@iMac:~# aws ec2 describe-instances --instance-ids i-00848d6f4b5b3183f --query 'Reservations[].Instances[].PublicIpAddress' --output text
54.255.138.44
root@iMac:~# aws ec2 authorize-security-group-ingress \
--group-id sg-0d5ab08be8cc8ee2e \
--protocol tcp \
--port 22 \
--cidr 0.0.0.0/0 # 生产环境建议限制为您的IP
root@iMac:~# ssh -i MyKeyPair.pem ubuntu@54.255.138.44
- 防止反薅
root@iMac:~# aws ec2 describe-instances \
--instance-ids i-00848d6f4b5b3183f \
--query 'Reservations[0].Instances[0].InstanceType'
"m1.small" #擦,我慌了,不是"t2.micro"
# 先马上停止实例
root@iMac:~# aws ec2 stop-instances --instance-ids i-00848d6f4b5b3183f
#修改类型为 t2.micro
root@iMac:~# aws ec2 modify-instance-attribute \
--instance-id i-00848d6f4b5b3183f \
--instance-type "t2.micro"
#再次验证实例类型
root@iMac:~# aws ec2 describe-instances \
--instance-ids i-00848d6f4b5b3183f \
--query 'Reservations[0].Instances[0].InstanceType'
"t2.micro"
- 可以愉快的玩耍了