AWS EC2



一、EC2基础

  1. 本质:云上的虚拟机(VM)服务。
  2. 核心组件
  3. 实例(Instance):虚拟计算环境。
  4. AMI(Amazon Machine Image):预配置模板(操作系统+软件)。
  5. 实例类型(Instance Type):定义CPU、内存、存储、网络配置。
  6. 密钥对(Key Pair):用于安全登录(公钥AWS存储,私钥用户保管)。
  7. 安全组(Security Group):虚拟防火墙(控制协议/端口/IP访问)。
  8. 弹性IP(Elastic IP):静态公网IPv4地址。
  9. VPC(Virtual Private Cloud):逻辑隔离的虚拟网络。

二、购买选项

类型 特点 适用场景
按需实例(On-Demand) 按秒/小时付费,无预付费;灵活性最高 短期、不可预测的工作负载(如测试、临时任务)
预留实例(Reserved) 预付费折扣(1-3年合约),分四类:
- 标准:固定实例类型
- 可转换:可改实例家族/OS
- 计划性:指定时间段使用
- 区域性:跨AZ使用
长期稳定工作负载(如数据库、企业应用)
Spot实例 竞价闲置资源,价格浮动(可能被中断) 容错型短期任务(如批处理、大数据分析)
专用主机(Dedicated Hosts) 独占物理服务器,可自带软件许可 合规要求严格或需许可证绑定的场景
专用实例(Dedicated Instance) 硬件隔离的虚拟机(不独占物理机) 需隔离但无需控制硬件的场景

三、存储选项

  • 根卷(Root Volume)
  • 支持EBS(持久化)或实例存储(临时性)。
  • EBS卷(Elastic Block Store)
  • 可附加的持久化块存储(独立于实例生命周期)。
  • 实例存储(Instance Store)
  • 临时高速存储(实例终止时数据丢失)。

四、成本优化:Savings Plans

类型 覆盖范围 折扣 灵活性
Compute Savings Plan EC2 + Fargate + Lambda 最高66% 跨实例类型/家族/区域/OS
EC2 Instance Savings Plan 指定区域的特定实例家族 最高72% 可改实例大小/OS(同家族内)
SageMaker Savings Plan SageMaker实例 最高64% 跨实例类型/区域/组件(如训练/推理)

五、实例休眠(Hibernate)

  • 原理:内存(RAM)状态保存至EBS根卷。
  • 适用场景:需保留运行状态的长期任务(如初始化慢的服务)。
  • 限制
  • 仅部分实例家族(C/M/R系列)。
  • RAM ≤ 150GB。
  • 根卷需为EBS(非实例存储)。
  • 最长休眠60天。

六、高级架构

  1. Nitro系统
  2. 提供高性能、安全隔离的虚拟化基础设施。
  3. 置放群组(Placement Groups): | 类型 | 设计目标 | 使用场景 | |---------------|------------------------|----------------------------------| | 集群(Cluster) | 低延迟/高网络吞吐 | HPC、大数据作业(同AZ内密集部署) | | 分区(Partition) | 逻辑隔离故障域 | 分布式系统(如Hadoop、Kafka) | | 分布(Spread) | 最大化硬件隔离 | 关键应用(单AZ限7实例) |

七、自动扩展(Auto Scaling Group, ASG)

  1. 扩展策略
  2. 目标追踪(Target Tracking):动态调整实例数以匹配目标指标(如CPU利用率)。
  3. 简单扩展(Simple):基于单一阈值触发扩展/缩减(有冷却时间)。
  4. 阶梯扩展(Step):多阈值多级扩展(如负载分阶段增长)。
  5. 预测扩展(Predictive):基于历史数据预测负载(适合周期性流量)。
  6. 跨可用区平衡
  7. ALB:默认开启跨AZ负载均衡(免费)。
  8. NLB:默认关闭(跨AZ流量收费)。
  9. 生命周期钩子(Lifecycle Hooks)
  10. 在实例启动(Pending)或终止(Terminating)时注入自定义操作(如初始化/清理任务)。