AWS代理商 AWS EC2 实例类型详解:如何选择适合业务的计算资源(选型步骤、配置建议与故障排查)
AWS EC2 实例类型详解:如何选择适合业务的计算资源
用户搜索这个主题,通常不是为了了解 EC2 分类,而是在创建云服务器时遇到了实际决策问题:业务到底该选 t3、m7i、c7g 还是 r7i;2 核 4G 是否够用;为什么同样是 4 核实例,有的跑网站很稳,有的数据库却频繁卡顿;为什么升级实例后响应还是慢。这篇文章直接围绕“如何选、怎么配、选错后怎么改”展开,重点解决创建和使用 AWS EC2 时最容易踩坑的环节。
从用户决策过程看,最容易卡住的不是购买,而是选型
实际操作中,用户最关心的问题一般集中在下面几类:
- 网站或 API 服务到底应该优先选 CPU 还是内存
- 小流量业务是否适合突发型实例,长期运行是否会出现性能波动
- 数据库是否可以直接放在 EC2 上,应该选多大内存和什么磁盘
- 跨境访问时,地域选择和实例类型哪个影响更大
- 已经上线的实例配置偏小或偏大,如何平滑调整而不影响业务
如果你目前正准备在控制台创建实例,建议先明确业务特征,再选实例族。不要先凭预算选 2 核 4G,再希望它适配所有业务。
开始前的准备:账号、权限、网络与镜像
需要具备的账号和权限
在 AWS 控制台创建 EC2 实例前,至少需要以下权限:
- EC2 实例创建、停止、启动、修改实例类型
- VPC、子网、安全组、弹性公网 IP 相关权限
- EBS 卷创建、快照创建与恢复权限
- AWS代理商 如果使用 Systems Manager,还需要 IAM Role 绑定权限
如果是企业账号,建议不要直接使用 root 账号,至少创建一个具备最小权限的 IAM 用户或角色。
前置资源检查表
| 检查项 | 建议 |
| 地域 | 面向国内用户常优先考虑新加坡、东京、首尔;面向欧美用户优先美东、美西、法兰克福 |
| 可用区 | 单机业务先看资源是否充足;高可用业务至少跨 2 个可用区 |
| 系统镜像 | Linux 优先 Ubuntu 22.04 / Amazon Linux 2023;Windows 根据应用依赖选择 2019 或 2022 |
| 公网访问 | 确认是否分配公网 IP,或者使用负载均衡/NAT |
| 登录方式 | Linux 准备 SSH Key Pair;Windows 需要获取 Administrator 初始密码并通过 RDP 登录 |
AWS代理商 先选业务,再选实例:EC2 实例类型的实操判断方法
最有效的选型方法不是背实例名称,而是先看业务瓶颈。
场景一:网站、后台管理系统、普通 Web 应用
如果你的业务是 Nginx + PHP、Java Web、Node.js、Python API 这类常规应用,优先从通用型开始。典型选择是 m 系列。如果访问量不大,开发测试环境也可以先用 t 系列。
| 业务特征 | 优先实例方向 | 不建议的情况 |
| 中小型官网、管理后台 | t3、t4g、m7i、m7g | 持续高 CPU 的业务不要长期用突发型 |
| Java API、微服务节点 | m 系列优先 | 堆内存较大时不要低估内存需求 |
| 高并发动态请求 | 先看 CPU,再看网络带宽 | 只升级磁盘通常无法解决响应慢 |
如果你的应用在大多数时间 CPU 使用率低于 20%,偶尔出现短时峰值,t 系列成本更低。但如果 CloudWatch 里 CPU Credit 经常耗尽,就应该切换到 m 或 c 系列。
场景二:计算密集型任务
编译、批量转码、日志分析、数据处理、爬虫调度、科学计算等业务,优先看计算优化型 c 系列。常见错误是把这类业务放到通用型实例上,结果 CPU 长期 80% 以上,平均响应时间抖动明显。
一个简单判断标准:如果应用内存长期只用了 40%-50%,但 CPU 经常打满,就应优先提升 vCPU 而不是盲目加内存。
场景三:数据库、自建缓存、搜索服务
如果你准备将 MySQL、PostgreSQL、Redis、Elasticsearch 部署在 EC2 上,优先考虑内存优化型 r 系列,磁盘用 gp3 或 io2。很多用户的问题不是实例太小,而是数据库实例选成了通用型、磁盘吞吐也没配够。
| 业务 | 推荐方向 | 重点关注 |
| MySQL / PostgreSQL | r 系列 + gp3/io2 | 内存、IOPS、连接数、脏页刷新 |
| Redis | r 系列优先 | 内存容量、网络延迟、持久化策略 |
| Elasticsearch/OpenSearch 自建 | r 或 i 系列视 IO 情况而定 | 内存占比、磁盘吞吐、JVM 参数 |
如果数据库业务已经是生产环境,优先考虑 RDS;但如果确实要自建在 EC2 上,那么实例类型和磁盘配置必须一起规划,不能只看 vCPU 和内存。
场景四:开发测试、临时环境、低成本实验
开发机、测试机、CI 临时节点、演示环境,通常可以从 t3.small、t3.medium、t4g.small 之类开始。这里最常见的问题是:把测试环境复制到生产环境,导致线上在流量增长后性能突然下降。测试环境选型可以保守,生产环境不要照搬。
在 AWS 控制台创建实例时,哪些参数最容易填错
步骤1:进入 EC2 控制台并创建实例
登录 AWS 控制台后,进入 EC2,点击“Launch instance”。在这个页面,先完成以下内容:
- 实例名称:按环境和用途命名,例如 prod-web-01、test-api-01
- AMI:Linux 推荐 Ubuntu 22.04 LTS 或 Amazon Linux 2023;Windows 选择 Server 2019/2022
- Instance type:根据前面的业务判断选择 t、m、c、r 系列
- Key pair:Linux 选择已有 SSH 密钥,Windows 同样建议创建密钥对用于解密初始密码
注意:如果你选的是 ARM 架构实例,例如 t4g、m7g、c7g,要确认应用依赖、Docker 镜像、编译环境都支持 ARM。很多用户切换到 Graviton 后启动失败,不是 EC2 问题,而是镜像架构不兼容。
步骤2:配置网络、子网、公网 IP 与安全组
在“Network settings”中,重点不是随便选默认 VPC,而是看访问路径。
| 参数 | 建议填写方式 |
| VPC | 已有业务优先放入现有 VPC,避免后期内网打通复杂化 |
| Subnet | 有公网访问需求时放入公有子网;数据库尽量放私有子网 |
| Auto-assign public IP | 需要直接远程登录或对外提供服务时启用 |
| Security Group | 按最小开放原则配置,不要直接 0.0.0.0/0 开全部端口 |
安全组示例:
| 端口 | 用途 | 来源建议 |
| 22 | SSH | 仅办公公网 IP 或堡垒机出口 IP |
| 3389 | RDP 远程桌面 | 仅固定管理 IP |
| 80/443 | Web 服务 | 对公网开放 |
| 3306 | MySQL | 仅允许应用服务器安全组访问 |
| 6379 | Redis | 不要对公网开放 |
如果实例创建后无法连接,80% 的问题都出在安全组、路由表、公网 IP 或系统内部防火墙。
AWS代理商 步骤3:配置存储与启动实例
EBS 磁盘配置直接影响数据库、自建缓存和高并发应用表现。
| 磁盘类型 | 适用场景 | 配置建议 |
| gp3 | 大多数网站、API、普通数据库 | 可单独调 IOPS 和吞吐,性价比高 |
| io2 | 高 IO 数据库 | 适合对延迟和稳定性要求高的场景 |
| st1/sc1 | 吞吐型或归档场景 | 不适合高随机 IO 业务 |
常见误区:只扩容磁盘容量,不调 gp3 的 IOPS 和 Throughput,结果数据库慢查询依旧严重。
实例启动后的连接与验证:不要只看能否登录
Linux 通过 SSH 登录
启动实例后,在实例详情页确认 Public IPv4 address,然后执行:
ssh -i your-key.pem ubuntu@公网IP
如果是 Amazon Linux,用户名通常是 ec2-user;如果是 CentOS,可能是 centos。SSH 失败时依次检查:
- 安全组是否放通 22 端口
- 实例是否有公网 IP
- 子网路由是否指向 Internet Gateway
- 系统内 firewalld 或 iptables 是否拦截
Windows 通过 RDP 连接
Windows 实例启动后,在控制台点击“Get Windows password”,使用创建时的密钥解密 Administrator 密码,再通过远程桌面连接到公网 IP。若 3389 无法连接,优先检查安全组和 Windows Firewall。
用监控数据验证实例是否选对
实例启动并部署应用后,不要凭感觉判断配置是否合适。至少观察 24 小时到 7 天的 CloudWatch 指标:
| 指标 | 判断意义 |
| CPUUtilization | 持续高于 70% 说明 CPU 压力偏大 |
| Memory 使用率 | 需通过 CloudWatch Agent 采集,持续高位说明需加内存 |
| DiskReadOps / DiskWriteOps | 判断磁盘 IO 压力 |
| NetworkIn / NetworkOut | 判断带宽与网络负载 |
| CPUCreditBalance | t 系列必须重点关注,耗尽后性能会波动 |
不同业务的落地配置建议
个人开发者
适合低成本起步,但不要把临时配置长期用于生产。
| 场景 | 建议 |
| 个人博客/演示站 | t3.small 或 t3.medium,2核2G/2核4G,gp3 40-80GB |
| 开发测试 | t3.medium 起步,方便跑 Docker 与基础服务 |
| 轻量数据库 | 与应用分离,至少 2核4G;若 Redis/MySQL 同机,建议 4核8G |
企业用户
企业业务更关注稳定性和可扩展性,不建议长期使用突发型实例承载核心服务。
| 业务 | 建议 |
| 生产 Web/API | m7i / m7g 起步,配 ALB 和 Auto Scaling |
| Java 服务 | 根据堆内存规划,常见为 4核16G 或 8核32G |
| 数据库自建 | r7i + gp3/io2,分离数据盘与系统盘 |
跨境业务
跨境场景先看地域,再看实例。地域选错,实例再高也无法解决首包慢的问题。建议用多地域测速后再选,常见做法是:亚洲用户优先新加坡或东京,欧美用户优先美东或法兰克福。应用层再结合 CDN、Route 53 健康检查和 SSL 证书配置。
网站应用
如果是典型 LNMP/LAMP,建议优先把应用和数据库拆开。单台 2核4G 适合低流量站点;一旦有后台任务、缓存、搜索或高并发上传,建议至少 4核8G,并增加独立数据库节点。
数据库业务
数据库不是只看容量。比起“数据库有多大”,更应看“每秒并发连接数、热点查询、缓存命中率、写入峰值和磁盘延迟”。如果你发现 MySQL 经常出现连接数暴涨、慢查询集中、Swap 增长,就应优先升级内存和磁盘性能,而不是只增加 vCPU。
选错实例后如何调整、迁移和回滚
AWS EC2 支持较灵活的规格调整。常见处理流程如下:
- 先为当前实例创建 AMI 或 EBS 快照备份
- 停止实例
- 在“Actions - Instance settings - Change instance type”修改规格
- 启动实例并验证应用、磁盘挂载、网络配置是否正常
如果需要从 x86 切换到 ARM,不能直接只改实例类型,需要确认系统镜像、软件包、容器镜像和启动脚本兼容。对于线上数据库,建议先用快照恢复测试实例,再做迁移演练。
高频故障与排查思路
CPU 高但应用不慢,是否需要升级
先区分是瞬时峰值还是持续高负载。若 CPU 在流量高峰时短暂达到 80%,但平均响应正常,可先结合 Auto Scaling。若长期高于 70% 且队列积压明显,再考虑升级到 c 或更大规格。
内存不高但系统还是卡
重点检查磁盘 IO wait、网络延迟和应用锁争用。很多用户误以为“卡就是内存不够”,实际上可能是 gp3 吞吐设置过低,或者数据库 flush 导致写入阻塞。
实例能 ping 通但网站打不开
通常依次检查:安全组 80/443、系统防火墙、Nginx/Apache 是否监听正确端口、域名 DNS 是否解析到当前公网 IP、SSL 证书配置是否完整。
后续优化建议:不只是调大配置
安全优化
- SSH 和 RDP 只允许固定 IP 访问
- 数据库端口只开放给应用服务器安全组
- 开启定期快照备份,系统重装前先保留恢复点
- 为实例绑定 IAM Role,不在服务器明文保存 Access Key
AWS代理商 性能优化
- 持续型业务优先 m/c/r 系列,避免 t 系列信用耗尽
- 数据库使用 gp3 时按实际负载调整 IOPS 与吞吐
- 安装 CloudWatch Agent 采集内存、磁盘与进程指标
- 跨境网站结合 CDN、压缩、HTTP/2 和区域就近部署
成本优化
- 低负载测试环境用 t 系列,非工作时段自动关机
- 稳定长期业务考虑 Savings Plans 或 Reserved Instances
- 不要为“可能会增长”的流量一次性买过大规格
- AWS代理商 定期清理未挂载 EBS、旧快照和废弃弹性 IP
AWS代理商 稳定性优化
- 生产环境至少保留最近一次可用快照
- Web 与数据库分离,避免单点故障相互放大
- 重要业务跨可用区部署,并设置健康检查
- 变更实例类型前先做镜像备份和回滚预案
EC2 实例类型没有绝对“最合适”的固定答案,只有是否匹配当前负载特征。真正有效的做法是:先根据业务读写模式和资源瓶颈选方向,再结合控制台参数、监控指标和快照回滚机制做验证。这样即使第一次没有选到最优,也能在不中断业务的前提下快速修正。

