【AWS-CP学习笔记】EC2

EC2:按需取用的计算力

Amazon Elastic Compute Cloud(EC2)服务器变成了像自来水一样随开随用的资源:

  1. 分钟级部署:点几下鼠标,几分钟后就能用上
  2. 精确计费:只对运行中的实例付费,停止就停止计费
  3. 灵活变配:从小型博客站点到大型数据处理,随时调整配置

AWS已经帮我们搞定了最头疼的部分——数据中心建设、硬件采购、网络布线、电力供应这些脏活累活。我们只需要关心自己的业务代码。

虚拟化

EC2的核心是虚拟化技术。可以想象一台强大的物理服务器被切成多个"虚拟服务器",每个都像独立机器一样运行

关键点在于:

  • 多租户但安全隔离:虽然共享底层硬件,但各EC2实例互不可见
  • 资源动态分配:CPU、内存、存储都能按需调整
  • 全控制权限:从操作系统到应用软件,完全自主配置

网络与安全控制

EC2的网络配置同样灵活:

  • 可以设置成完全公开的Web服务器
  • 也能做成仅内网访问的数据库服务器
  • 精细控制进出流量规则

这些特性使得EC2既能托管面向公众的网站,也能构建高度安全的内部系统架构。

安全最佳实践

  1. 最小权限原则:严格限制安全组规则
  2. IAM角色应用:避免在实例中存储长期凭证
  3. 系统加固
    • 定期更新SSM Agent
    • 启用EBS加密
    • 使用AWS Systems Manager进行补丁管理
  4. 网络隔离:私有子网部署数据库等敏感服务

EC2实例类型全景图

AWS提供了五大类实例类型,每种都针对特定场景进行了优化:

1. 通用型实例(如M5、T3系列)

特点:计算、内存和网络的平衡组合
适用场景

  • 中小型数据库
  • 企业应用后台服务
  • 开发测试环境
  • 轻量级Web应用
    为什么选择:当你无法准确预测资源需求时,这是最安全的起点

2. 计算优化型实例(如C5、C6g系列)

特点:高CPU性能,低内存比
适用场景

  • 科学计算模拟
  • 游戏服务器
  • 高频交易系统
  • 视频转码
    典型案例:某量化交易系统使用c5.9xlarge实例处理实时市场数据,延迟降低40%

3. 内存优化型实例(如R5、X1e系列)

特点:超大内存容量,TB级内存支持
适用场景

  • SAP HANA等内存数据库
  • 实时大数据处理
  • 缓存服务
    性能指标:x1e.8xlarge实例提供1TB内存,适合基因组分析等内存密集型任务

4. 加速计算型实例(如P3、G4系列)

特点:配备GPU/FPGA等专用加速器
适用场景

  • 深度学习训练
  • 3D渲染
  • 地震分析
    硬件配置:p3dn.24xlarge实例配备8块NVIDIA V100 GPU,提供1.8TB/s的显存带宽

5. 存储优化型实例(如I3、D2系列)

特点:超高本地存储IOPS
适用场景

  • NoSQL数据库(如Cassandra)
  • 数据仓库
  • 日志处理
    性能表现:i3en.metal实例可提供高达100万随机IOPS

如何选择合适的实例类型?

决策树参考:

  1. 需要GPU/FPGA? → 选加速计算型
  2. 数据量远大于内存? → 选存储优化型
  3. 需要处理海量数据集? → 选内存优化型
  4. CPU持续高负载? → 选计算优化型
  5. 以上都不是? → 从通用型开始

成本优化技巧:

  • 测试阶段:使用t3系列突发性能实例
  • 生产环境:根据监控数据逐步调整
  • 长期稳定负载:考虑预留实例节省成本
  • 批量作业:使用Spot实例获取折扣

真实场景案例分析

案例1:电商大促

  • 前端Web层:m5.large(通用型)
  • 订单处理:c5.xlarge(计算优化型)
  • 推荐引擎:r5.2xlarge(内存优化型)
  • 用户行为分析:i3.xlarge(存储优化型)

案例2:AI平台

  • 模型训练:p3.8xlarge(加速计算型)
  • 特征存储:r5.4xlarge(内存优化型)
  • 数据管道:m5.2xlarge(通用型)

EC2 Auto Scaling 核心机制

1. 自动扩展组(Auto Scaling Group)

  • 最小容量:安全底线(如始终保留2台实例)
  • 期望容量:日常运行规模(如4台)
  • 最大容量:扩展上限(如20台)
# 典型ASG配置示例
asg_config = {
    "min_size": 2,    # 即使半夜也要有2台值班
    "desired_capacity": 4,  # 平时保持4台运行
    "max_size": 20    # 双十一最多扩展到20台
}

2. 扩展策略类型

策略类型工作原理适用场景
动态扩展根据CPU/请求数等指标实时调整突发流量(如秒杀活动)
预测扩展基于机器学习预测提前扩容周期性波动(如工作日)

3. 健康检查机制

  • 每5分钟检查实例状态
  • 异常实例自动替换(就像生病的咖啡师立即有人顶班)
  • 支持跨AZ部署实现高可用

实战配置指南

步骤1:创建启动模板

aws ec2 create-launch-template \
  --launch-template-name CoffeeShopTemplate \
  --version-description v1 \
  --launch-template-data '{
    "ImageId": "ami-0c55b159cbfafe1f0",
    "InstanceType": "t3.medium",
    "KeyName": "coffee-shop-key"
  }'

步骤2:配置自动扩展组

aws autoscaling create-auto-scaling-group \
  --auto-scaling-group-name CoffeeShopASG \
  --launch-template LaunchTemplateName=CoffeeShopTemplate \
  --min-size 2 \
  --max-size 10 \
  --desired-capacity 4 \
  --vpc-zone-identifier "subnet-123456,subnet-789012"

步骤3:设置扩展策略

aws autoscaling put-scaling-policy \
  --policy-name ScaleOutPolicy \
  --auto-scaling-group-name CoffeeShopASG \
  --scaling-adjustment 2 \
  --adjustment-type ChangeInCapacity \
  --cooldown 300

ELB负载均衡核心工作机制

1. 流量分发原理

客户端
ELB
实例A
实例B
实例C

ELB采用多种算法决定路由:

  • 轮询:依次分配给各实例
  • 最少连接:选择当前连接数最少的实例
  • IP哈希:相同客户端总是分配到相同实例

2. 与Auto Scaling的完美配合

  1. Auto Scaling组新增实例
  2. 自动向ELB注册
  3. ELB开始将流量导向新实例
  4. 缩容前先排干实例流量

3. 健康检查机制

  • 定期发送"心跳"请求(如HTTP/health)
  • 标记不健康实例并停止向其发送流量
  • 与Auto Scaling协同自动替换故障实例

ELB类型选型指南

类型适用协议典型场景独特优势
ALBHTTP/HTTPS微服务、容器化应用基于路径/主机的路由规则
NLBTCP/UDP游戏服务器、金融交易超低延迟(毫秒级)
CLBHTTP/HTTPS传统Web应用(逐步淘汰)简单易用
GWLBIP包第三方安全设备集成透明流量镜像

写在最后

选择EC2实例类型不是一次性的决定,而是一个持续优化的过程。

  1. 使用AWS Compute Optimizer获取建议
  2. 建立完善的监控体系
  3. 定期进行成本审查
  4. 保持对新型实例的关注
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值