惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
Blog — PlanetScale
Blog — PlanetScale
C
Check Point Blog
Recent Announcements
Recent Announcements
U
Unit 42
B
Blog RSS Feed
V
Visual Studio Blog
G
Google Developers Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
M
MIT News - Artificial intelligence
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
博客园 - 叶小钗
The Cloudflare Blog
I
InfoQ
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The GitHub Blog
The GitHub Blog
P
Proofpoint News Feed
Y
Y Combinator Blog

Razeen`s Blog

Let's Encrypt 推出 Gen Y 根证书架构:揭示 Web PKI 的五大未来趋势 通过 Wi-Fi 自动备份你的 iPhone 到 Nas 管理培训感悟:从技术视角看管理之路 UPS 一拖多:保护你的 NAS 和 Linux 服务器 从影音中心到 AI 助手:我的50款 Homelab 服务清单 从SSL证书有效期将缩短到47天聊开去 部署一个自己的 Running Page 谈谈特斯拉 Model Y 用车一年的感受和费用分析 弃用 Disqus 评论,使用自建 Waline 使用 Prometheus 和 Grafana 搭建你的证书监控面板 服务器迁移记:一次磁盘换板引发的Linux分区与挂载的学习 改善信息来源, 利用 RSS 高效获取资讯 (RSShub + Reeder5 + WeWe RSS) 多种 Docker 镜像拉取解决方案与实践 App分享 | AppCleaner - Mac上的卸载神器 Azure OpenAI API 申请和使用 如何开通 OneKey 虚拟信用卡,并充值消费 如何拥有一个可长期在国内使用的国外手机号码 分享开通 ChatGPT Plus 过程 如何开通 Depay 虚拟信用卡,并充值消费 如何开通欧易Web3钱包, 交易入账 如何5分钟内1块钱注册 ChatGPT 如何注册美区的 Apple ID (2023年/无需科学上网) NAS折腾记(11): NASTool3.0体验和降级 NAS折腾记(10): Docker版本的NASTool配置 NAS折腾记(9): NASTool与微信交互,微信发送消息远程下载电影【多图】 NAS折腾记(8):群晖安装 NASTool 实现影音半自动化【多图】 内网穿透(2):Tailscale 组网实现内网穿透,操作简单,无成本 内网穿透(1):总结了11中内网穿透的方式,总有一种适合你 NAS折腾记(7):从零开始设置(黑)群晖系统 NAS折腾记(6):黑群晖系统安装好后怎么洗白?
AWS 命令行界面(aws-cli)从安装到快速上手
2017-11-17 · via Razeen`s Blog

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" 

主要的操作大概也就这些,更多请看官方文档,如有错误,请指出哦。