AWS EC2 相关知识点。
Amazon EC2 (Elastic Computer Cloud)
一、Amazon EC2 基本概念

二、Amazon EC2 启动流程

AWS EBS (Elastic Block Store):挂载到 EC2 实例的持久性数据块级存储服务。
三、EC2 的优点

启动 EC2 实例
一、EC2 实例的创建和使用

EC2 用户数据和元数据
一、EC2 用户数据 (User Data)

- ⭐
EC2 用户数据会在实例第一次启动的时候运行可以用来做一些初始化的配置或软件安装。
- 用户数据内容限制在 16 KB 以内
二、EC2 元数据 (Metadata)


- 访问实例元数据的地址:http://169.254.169.254/latest/meta-data
在 EC2 上访问其他 AWS 服务的两种方式 - 通过访问密钥和 IAM 角色
一、访问密钥 (Access Keys)

- 相当于将
IAM用户的访问密钥存储在EC2实例上供使用 - ⚠ 并非最佳实践
二、EC2 实例 Profiles(为 EC2 附加 IAM 角色)

- ⭐
EC2承担IAM角色并获取其权限 - 使 AWS 推荐的最佳实践
实例的状态检查 (Status checks) 和自动恢复 (automatic recovery)
一、状态检查 (Status checks) 基本概念

- ⭐ 状态检查分为三种类型
- 系统状态检查 (System status checks)
- 实例状态检查 (Instance status checks)
- 附加的
EBS状态检查 (Attached EBS status checks)
二、系统状态检查

- ⭐ 会检测出需要 AWS 参与修复的深层实例问题
- 出现问题时:
- 等待 AWS 修复问题
- 手动停止、启动实例(并非重启)以使其自动迁移到没有问题的底层硬件上
三、实例状态检查

- ⭐ 会检测出需要用户参与修复的软件、网络配置等问题
- 出现问题时,需要用户自己解决问题:
- 重启实例
- 更改实例相关配置
四、附加的 EBS 状态检查
- 附加的
EBS状态检查可监控附加到实例的Amazon EBS卷是否可以访问并能够完成 I/O 操作。 - 出现问题时:
- 等待 AWS 解决问题
- 自行采取措施,例如更换受影响的卷或停止并重启实例。
- 可以使用
StatusCheckFailed_AttachedEBS指标进行监控,它表示受损的二进制值。例如:当检测到长时间影响时,可以故障转移到辅助实例或可用区。或者,可以使用 EBS CloudWatch 指标监控每个附加的卷的 I/O 性能,以检测和替换受损的卷。
五、自动恢复 (automatic recovery) 基本概念
- ⭐ 只支持在系统状态检查失败时自动恢复,并不支持实例状态检查
EC2 置放群组 (Placement groups)
一、EC2 置放群组基本概念


- 将
EC2靠近以获取更低的延迟和更高的吞吐量 - 将
EC2分散在不同的机柜以获得高可用 - 创建置放群组的三种策略:
- 集群 (Cluster)
- 分区 (Partition)
- 分布 (Spread)
二、集群 (Cluster) 置放群组


- ⚠ 一个集群置放群组不能跨多个
可用区 - 在集群置放群组中启动实例时,对实例的类型是有要求的
常使用的免费套餐中的 t2 类型就是不支持的。
- ⭐ 在后续往集群放置群组中添加实例、或是重启停止的实例时,可能会碰到容量不足的问题而导致启动失败,如果发生这类问题,需要停止该放置群组中的所有实例,然后尝试再次启动来更改整体使用的底层硬件设备。
三、分区 (Partition) 置放群组

- 一个分区不与另一分区共享机柜,以尽量隔绝底层设备故障带来的影响
四、分布 (Spread) 置放群组

公有 IP、私有 IP 和弹性 IP 地址 (Elastic IP addresses)
一、公有 IP、私有 IP 和弹性 IP 地址基本概念

- ⭐ 公有 IP 地址是动态的 IP(停止、启动实例后会改变)
- ⭐ 弹性 IP 地址是静态的 IP
- ⭐ 网络接口(带着弹性 IP)支持在同一可用区的不同实例间关联
- ⭐ 弹性 IP 支持跨不同可用区映射
二、同一可用区的灾难响应

- 将网络接口(带着弹性 IP)关联到新的实例
三、不同可用区的灾难响应

- 将弹性 IP 映射到其他可用区的网络接口上
EC2 实例上为何看不到公有 IP 地址?(NAT, Network Address Translation)
一、公网 IP 是映射到 EC2 实例的主私有 IP 上的

- NAT 映射发生在
EC2外部的互联网网关 - 请求发出经由互联网网关时,源地址会从私有 IP 地址替换为公有 IP 地址
- 请求回到
EC2的时候,经由互联网网关时,目的地址会从公有 IP 地址替换为私有 IP 地址
私有子网和堡垒机 (Bastion host)
一、私有子网和堡垒机基本概念

- 公有子网中启动的所有
EC2实例都会有一个公有 IP 地址 - ⭐ 公有子网的路由表中会多一条
0.0.0.0/0指向互联网网关的路由 - 由于公有子网和私有子网的路由表中都有 VPC 本地路由,因此两个子网中的实例之间可以相互访问
- 通过公有子网的
EC2实例访问私有子网中的EC2实例时,公有子网的设备就被称作堡垒机(跳板机)
NAT 网关和 NAT 实例
一、NAT 网关和 NAT 实例基本概念

- ⭐
NAT 网关和NAT 实例的作用是使私有子网的实例能够访问互联网,而非满足(从)互联网访问私有子网实例的需求(单向出站) - 如果想要实例和互联网能够双向访问的话,应该将实例部署在公有子网中
NAT 网关在单个可用区内就自动提供了高可用性
二、NAT 网关

NAT 网关是 AWS 提供的服务NAT 网关被部署在公有子网中- 私有子网路由表中配置指向
NAT 网关的 ID 的路由
三、NAT 实例

- ⚠️
NAT 实例不是 AWS 提供的服务,实际上就是做过特殊设置的EC2实例 - 需要使用特殊的
AMI - 必须配置禁用源和目标检查 (Disable source/destination checking for the network interface),使 NAT 实例允许进行网络地址转换 (NAT)
- 私有子网路由表中配置指向
NAT 实例的 ID 的路由
EC2 实例系列和启动类型
一、EC2 实例系列

二、EC2 实例启动类型(购买选项)

三、EC2 可用的指标

AWS Savings Plans
一、AWS Savings Plans 基本概念

EC2 不同的购买选项对应的业务场景

