EC2基础 #

一、什么是EC2 #

1.1 EC2简介 #

Amazon EC2(Elastic Compute Cloud)是AWS提供的弹性云计算服务,提供可调整大小的计算能力。用户可以在云中启动虚拟服务器(称为实例),快速扩展或收缩计算资源。

1.2 EC2核心特性 #

text
EC2核心特性:
├── 弹性
│   └── 几分钟内启动或终止实例
│   └── 自动扩展应对负载变化
│
├── 完全控制
│   └── 完全控制实例
│   └── root访问权限
│
├── 灵活配置
│   └── 多种实例类型
│   └── 多种操作系统
│
├── 集成服务
│   └── 与其他AWS服务深度集成
│
├── 安全可靠
│   └── VPC网络隔离
│   └── 安全组访问控制
│
└── 成本优化
    └── 多种购买选项
    └── 按需付费

1.3 EC2使用场景 #

场景 说明
Web应用托管 托管网站和Web应用
应用服务器 运行企业应用
计算密集型任务 科学计算、数据分析
游戏服务器 多人游戏服务器
开发测试 开发和测试环境
批处理 大规模数据处理

二、EC2核心概念 #

2.1 实例 #

实例是AWS云中的虚拟服务器:

text
实例概念:
├── 定义
│   └── 虚拟计算环境
│
├── 组成
│   ├── CPU
│   ├── 内存
│   ├── 存储
│   └── 网络
│
└── 生命周期
    ├── pending(启动中)
    ├── running(运行中)
    ├── stopping(停止中)
    ├── stopped(已停止)
    └── terminated(已终止)

2.2 AMI(Amazon Machine Image) #

AMI是实例的模板:

text
AMI组成:
├── 根卷模板
│   └── 操作系统
│   └── 应用服务器
│   └── 应用程序
│
├── 启动权限
│   └── 控制哪些账户可以使用
│
└── 块设备映射
    └── 附加的存储卷

AMI来源 #

来源 说明
AWS提供的AMI 官方维护的镜像
AWS Marketplace AMI 第三方提供的镜像
社区AMI 社区共享的镜像
自定义AMI 从实例创建的镜像

常用AMI #

text
常用AMI类型:
├── Amazon Linux 2023
│   └── AWS优化,免费
│
├── Ubuntu
│   └── 流行的Linux发行版
│
├── Windows Server
│   └── 微软Windows服务器
│
├── Red Hat Enterprise Linux
│   └── 企业级Linux
│
└── 自定义AMI
    └── 包含特定配置

2.3 实例类型 #

AWS提供多种实例类型以满足不同需求:

text
实例类型分类:
├── 通用型(General Purpose)
│   └── 平衡的计算、内存、网络资源
│   └── 代表:t3、m5、m6i
│
├── 计算优化型(Compute Optimized)
│   └── 高性能处理器
│   └── 代表:c5、c6i
│
├── 内存优化型(Memory Optimized)
│   └── 大内存容量
│   └── 代表:r5、r6i、x1e
│
├── 存储优化型(Storage Optimized)
│   └── 高顺序读写性能
│   └── 代表:i3、d3
│
├── 加速计算型(Accelerated Computing)
│   └── GPU/FPGA加速
│   └── 代表:p4、g5、inf1
│
└── HPC优化型
    └── 高性能计算
    └── 代表:hpc6a

2.4 实例类型命名规则 #

text
实例类型命名格式:
实例族.代号.大小

示例:m5.xlarge
├── m - 实例族(通用型)
├── 5 - 代号(第5代)
└── xlarge - 大小

大小命名:
├── nano    - 0.25 vCPU
├── micro   - 0.5 vCPU
├── small   - 1 vCPU
├── medium  - 2 vCPU
├── large   - 2 vCPU
├── xlarge  - 4 vCPU
├── 2xlarge - 8 vCPU
├── 4xlarge - 16 vCPU
├── 8xlarge - 32 vCPU
├── 12xlarge - 48 vCPU
├── 16xlarge - 64 vCPU
└── 24xlarge - 96 vCPU

三、实例类型详解 #

3.1 通用型实例 #

适合平衡的计算、内存和网络资源需求:

实例类型 vCPU 内存 适用场景
t3.nano 2 0.5GB 轻量级应用
t3.micro 2 1GB 测试开发
t3.small 2 2GB 小型应用
t3.medium 2 4GB 中型应用
m5.large 2 8GB 企业应用
m5.xlarge 4 16GB 数据库服务器
m5.2xlarge 8 32GB 应用服务器

T3/T4g实例特点 #

text
T系列实例特点:
├── 突发性能实例
│   └── 基准CPU性能
│   └── 可突增CPU
│
├── CPU积分
│   └── 积累积分用于突发
│   └── 积分用完回到基准
│
├── 无限模式
│   └── 可超出积分限制
│   └── 额外付费
│
└── 适用场景
    ├── 开发测试环境
    ├── 低延迟交互应用
    └── 微服务

3.2 计算优化型实例 #

适合计算密集型工作负载:

实例类型 vCPU 内存 适用场景
c5.large 2 4GB Web服务器
c5.xlarge 4 8GB 高性能计算
c5.2xlarge 8 16GB 科学建模
c6i.large 2 4GB 游戏服务器

3.3 内存优化型实例 #

适合内存密集型工作负载:

实例类型 vCPU 内存 适用场景
r5.large 2 16GB 内存数据库
r5.xlarge 4 32GB 大数据处理
r5.2xlarge 8 64GB 实时分析
x1e.xlarge 4 122GB SAP HANA

3.4 存储优化型实例 #

适合高存储需求工作负载:

实例类型 vCPU 内存 存储 适用场景
i3.large 2 15.25GB 475GB NVMe NoSQL数据库
i3.xlarge 4 30.5GB 950GB NVMe 数据仓库
d3.xlarge 4 32GB 2x2TB HDD Hadoop集群

3.5 加速计算型实例 #

适合GPU加速工作负载:

实例类型 GPU vCPU 内存 适用场景
g4dn.xlarge 1 T4 4 16GB 机器学习推理
p4d.24xlarge 8 A100 96 1152GB 深度学习训练
inf1.xlarge 1 Inferentia 4 8GB 机器学习推理

四、实例购买选项 #

4.1 按需实例 #

text
按需实例特点:
├── 按秒/小时计费
├── 无预付费用
├── 无长期承诺
├── 最高灵活性
└── 适用场景
    ├── 不规则工作负载
    ├── 测试开发
    └── 首次部署应用

4.2 预留实例 #

text
预留实例特点:
├── 承诺使用期限(1年或3年)
├── 享受大幅折扣(最高72%)
├── 预付或部分预付
└── 类型
    ├── 标准预留实例
    │   └── 特定实例类型
    ├── 可转换预留实例
    │   └── 可更换实例类型
    └── 计划性预留实例
        └── 按计划使用

4.3 Savings Plans #

text
Savings Plans特点:
├── 承诺使用金额($)
├── 灵活性更高
├── 折扣最高72%
└── 类型
    ├── Compute Savings Plans
    │   └── 适用于EC2、Fargate、Lambda
    └── EC2 Instance Savings Plans
        └── 仅适用于EC2

4.4 Spot实例 #

text
Spot实例特点:
├── 使用AWS闲置容量
├── 折扣最高90%
├── 可能被中断
├── 2分钟中断通知
└── 适用场景
    ├── 批处理任务
    ├── 大数据分析
    ├── CI/CD流水线
    └── 容错性高的工作负载

4.5 购买选项对比 #

选项 折扣 灵活性 中断风险 适用场景
按需 最高 测试、不确定需求
预留 稳定长期负载
Savings Plans 灵活的长期需求
Spot 最高 容错性高的任务

五、EC2定价 #

5.1 计费组成 #

text
EC2计费项目:
├── 实例运行时间
│   └── 按秒/小时计费
│
├── EBS存储
│   └── 按GB/月计费
│
├── 数据传输
│   ├── 出站数据传输
│   └── 跨区域传输
│
├── Elastic IP
│   └── 未关联时收费
│
└── 其他
    ├── AMI存储
    └── 快照存储

5.2 定价示例(us-east-1) #

实例类型 按需价格/小时 预留1年/小时 Spot价格/小时
t3.micro $0.0104 $0.007 $0.003
t3.small $0.0208 $0.014 $0.006
m5.large $0.096 $0.063 $0.028
c5.large $0.085 $0.056 $0.025

六、EC2安全 #

6.1 安全组 #

安全组是实例级别的虚拟防火墙:

text
安全组特点:
├── 状态检测
│   └── 自动允许返回流量
│
├── 规则配置
│   ├── 入站规则
│   └── 出站规则
│
├── 默认行为
│   ├── 入站:拒绝所有
│   └── 出站:允许所有
│
└── 多安全组
    └── 一个实例可关联多个安全组

6.2 密钥对 #

密钥对用于SSH登录:

text
密钥对管理:
├── 创建密钥对
│   └── 控制台或CLI创建
│
├── 密钥类型
│   ├── RSA(默认)
│   └── ED25519
│
├── 存储私钥
│   └── 下载后妥善保管
│   └── AWS不保存私钥
│
└── 使用密钥
    └── SSH登录时指定

6.3 IAM角色 #

为EC2实例分配权限:

text
IAM角色使用:
├── 创建IAM角色
│   └── 定义权限策略
│
├── 附加到实例
│   └── 实例配置文件
│
└── 实例内访问
    └── 自动获取临时凭证

七、EC2最佳实践 #

7.1 实例选择建议 #

text
实例选择原则:
├── 评估工作负载
│   ├── CPU需求
│   ├── 内存需求
│   ├── 存储需求
│   └── 网络需求
│
├── 选择合适类型
│   └── 不要过度配置
│
├── 考虑购买选项
│   └── 稳定负载用预留
│   └── 灵活负载用Savings Plans
│
└── 监控和调整
    └── 根据实际使用调整

7.2 安全最佳实践 #

text
安全建议:
├── 最小权限原则
│   └── 安全组只开放必要端口
│
├── 使用IAM角色
│   └── 不在实例上存储凭证
│
├── 定期更新系统
│   └── 安装安全补丁
│
├── 加密数据
│   └── EBS加密
│
└── 监控日志
    └── 启用CloudTrail和VPC Flow Logs

7.3 成本优化建议 #

text
成本优化:
├── 选择合适的购买选项
├── 及时释放不用的实例
├── 使用自动扩展
├── 合理配置存储
├── 监控资源利用率
└── 使用Spot实例处理容错任务

八、小结 #

本章介绍了EC2的基础知识:

内容 要点
EC2概念 弹性云计算服务,虚拟服务器
AMI 实例模板,包含操作系统和配置
实例类型 通用型、计算优化型、内存优化型等
购买选项 按需、预留、Savings Plans、Spot
安全 安全组、密钥对、IAM角色

下一步学习 #

了解EC2基础后,接下来可以:

  1. EC2实例管理 - 学习实例创建和管理
  2. EC2存储 - 了解EC2存储选项
  3. VPC基础 - 学习网络配置
最后更新:2026-03-28