选对实例配置:创建EC2的第一步
创建EC2实例时,最容易踩坑的是配置选错——比如用了不适合的实例类型,导致性能不够或成本虚高。先帮你理清楚关键配置项:

1. AMI(亚马逊机器镜像)选择
AMI是实例的“系统盘模板”,推荐优先选Amazon Linux 2(或Amazon Linux 2023)——这是AWS官方维护的Linux发行版,稳定、安全,还预装了AWS CLI和CloudWatch代理,省去很多安装麻烦。如果需要Windows系统,选Microsoft Windows Server官方镜像,兼容性更好。
2. 实例类型怎么选?
实例类型决定了CPU、内存、存储和网络性能,直接影响业务体验。给你列个常用场景对照表:
实例类型 | 适用场景 | 特点 |
---|---|---|
t2.micro | 测试/小型应用 | 免费套餐 eligible,1vCPU+1GB内存 |
t3.medium | 小型网站/API服务 | 2vCPU+4GB内存,突发性能优化 |
c5.large | 计算密集型应用(比如数据处理) | 2vCPU+4GB内存,高CPU性能 |
r5.large | 内存密集型应用(比如数据库) | 2vCPU+16GB内存,高内存容量 |
g4dn.xlarge | 图形/机器学习 | 1vCPU+16GB内存+16GB GPU显存 |
选的时候问自己三个问题:“我的应用是CPU密集还是内存密集?”“并发量大概多少?”“预算有限吗?”比如做个人博客,t3.medium完全够;做机器学习推理,g4dn.xlarge更合适。
3. 存储与安全组配置
- 存储:优先选EBS卷(弹性块存储),因为它可持久化、可扩容。推荐gp3类型(通用型SSD),1GB~16TB容量,IOPS最高16000,适合大多数场景。如果是临时数据(比如缓存),可以选实例存储(Instance Store),但它随实例终止而删除,谨慎用。
- 安全组:这是EC2的“防火墙”,一定要严格配置!比如:
- 允许SSH(22端口):只给你的IP地址开放(比如192.168.1.0/32),别放通0.0.0.0/0(所有人都能连);
- 允许HTTP(80)和HTTPS(443):如果是网站应用,这两个端口要开放;
- 禁止所有出站规则?别!默认的出站规则是允许所有,不用改——不然实例没法连外网下载软件。
快速连接EC2实例:三种常用方式
创建好实例后,第一件事是连接进去。不同系统有不同方法,帮你整理了最常用的三种:
1. SSH连接(Linux实例)
这是Linux用户的“标配”,需要密钥对(.pem文件)。步骤:
1. 把密钥对文件放到本地(比如~/Downloads/your-key.pem);
2. 修改密钥权限(否则SSH会报错):chmod 400 ~/Downloads/your-key.pem
;
3. 连接命令:ssh -i "~/Downloads/your-key.pem" ec2-user@your-instance-ip
(ec2-user是Amazon Linux的默认用户名,Ubuntu是ubuntu)。
如果连不上,先检查三点:安全组开了22端口吗?密钥对对吗?IP地址没错吧?
2. RDP连接(Windows实例)
Windows实例用RDP(远程桌面)连接,步骤:
1. 在EC2控制台下载“远程桌面文件”(.rdp);
2. 下载“密码”(用密钥对解密);
3. 打开.rdp文件,输入用户名(默认是Administrator)和密码,就能连接。
3. EC2 Instance Connect(无需密钥对)
如果你嫌密钥对麻烦,试试EC2 Instance Connect——直接在AWS控制台点击“连接”,选择“EC2 Instance Connect”,输入用户名就能登录,适合新手。注意:这种方式需要实例有公网IP,且安全组开放22端口。
日常管理:启动、停止、修改实例的正确姿势
EC2实例的日常操作不难,但细节容易错,比如“停止”和“终止”的区别:
- 启动:实例从“stopped”变“running”,计费开始;
- 停止:实例从“running”变“stopped”,计费停止,但EBS卷保留(能重启);
- 重启:实例重启,保留所有数据(类似电脑重启);
- 终止:实例被删除,默认删除根EBS卷(除非创建时勾选“保留根EBS卷”)。
必学技巧:修改实例类型
当业务增长时,比如原来的t2.micro不够用了,怎么升级到t3.medium?步骤超简单:
1. 先停止实例(必须停止才能改);
2. 到实例详情页,点“操作”→“实例设置”→“修改实例类型”;
3. 选t3.medium,保存;
4. 启动实例,搞定!
这样不用重新创建实例,节省时间和成本。
性能优化:让EC2跑更快的三个方法
1. 开启EBS优化
EBS优化能提升实例与EBS卷之间的IO性能,尤其是对于数据库、文件服务这类IO密集型应用。开启方法:创建实例时,在“实例详细信息”里勾选“开启EBS优化”(大部分实例类型默认开启)。
2. 用CloudWatch监控内存
默认CloudWatch只能看CPU、磁盘和网络指标,想看内存使用率?得装CloudWatch代理:
1. 登录实例,下载代理安装包:wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
;
2. 安装:sudo rpm -U amazon-cloudwatch-agent.rpm
;
3. 配置代理:sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
(跟着向导选内存监控);
4. 启动代理:sudo systemctl start amazon-cloudwatch-agent
。
之后就能在CloudWatch里看到“MemoryUtilization”指标,再也不用猜内存够不够了。
3. 自动扩容:Auto Scaling组
如果你的应用有流量波动(比如电商大促),手动加实例太麻烦,试试Auto Scaling:
1. 创建启动配置(选好AMI、实例类型、安全组);
2. 创建Auto Scaling组,设置“最小实例数”(比如2)、“最大实例数”(比如10);
3. 配置缩放策略:比如“当CPU使用率超过70%时,增加1个实例”“当CPU使用率低于30%时,减少1个实例”。
这样流量上来时自动加实例,流量下去时自动减,既保证性能又不浪费钱。
成本控制:别让EC2账单“偷偷涨”
EC2是AWS账单的“大头”,学会这三招,至少省30%:
1. 用预留实例(Reserved Instances)
如果你的实例要长期用(比如1年以上),买预留实例能省50%-75%。比如t3.medium按需价是$0.0416/hour,1年预留价是$0.0208/hour,相当于打5折。
2. 选Spot实例:超低价但有“中断风险”
Spot实例是AWS未被使用的容量,价格是按需的10%-30%,适合容错性高的应用(比如大数据处理、CI/CD任务)。比如c5.large按需价是$0.085/hour,Spot价是$0.025/hour,省60%!注意:Spot实例可能被AWS回收(比如容量不够时),所以要做好容错(比如用Auto Scaling组搭配Spot Fleet)。
3. 清理闲置实例
定期检查你的EC2实例:有没有“running”但没流量的?有没有测试用的实例忘了关?比如上周测了个应用,实例一直开着,一个月要花$10+,赶紧终止!
监控与故障排查:解决问题的“救火工具包”
必用工具:CloudWatch与Session Manager
- CloudWatch:监控实例的CPU、内存、磁盘、网络指标,还能设置告警(比如CPU超过80%时发邮件)。
- Session Manager:不用SSH/密钥对,直接在控制台连接实例,适合排查“无法连接”的问题。比如实例SSH连不上,用Session Manager登录,检查sshd服务是不是没启动:
sudo systemctl status sshd
。
常见故障排查步骤
- 实例无法连接:
- 检查安全组:有没有开放22端口?
- 检查密钥对:是不是正确的.pem文件?权限是不是400?
- 检查公网IP:实例有没有公网IP?是不是被释放了?
- 实例响应慢:
- 看CloudWatch:CPU使用率是不是100%?内存是不是快满了?
- 检查EBS卷:是不是满了?用
df -h
看磁盘空间; - 检查网络:用
ping
测公网连通性,用netstat -tuln
看端口是不是开放。
数据备份:防止“删库跑路”的最后防线
1. 创建AMI镜像
AMI是实例的“完整备份”,包括系统盘、应用、数据。创建方法:
1. 选实例,点“操作”→“图像和模板”→“创建镜像”;
2. 输入镜像名称,选“立即创建”;
3. 之后能从这个镜像创建新实例(比如原实例挂了,用镜像快速恢复)。
2. 定期快照EBS卷
EBS快照是增量备份(只备份变化的数据),适合定期备份数据库、用户数据。用AWS CLI自动快照超方便:
# 创建快照(替换vol-12345678为你的EBS卷ID)
aws ec2 create-snapshot --volume-id vol-12345678 --description "My Database Snapshot"
# 删除30天前的快照
aws ec2 describe-snapshots --owner-ids self --query 'Snapshots[?StartTime<=`date -d "-30 days" +%Y-%m-%d`].SnapshotId' --output text | xargs -n1 aws ec2 delete-snapshot --snapshot-id
把这个脚本加到Cron里,每天凌晨运行,自动备份+清理旧快照。
安全管理:别让实例变成“肉鸡”
EC2的安全问题比你想的重要,比如密钥对泄露会让黑客直接登录你的实例,所以:
– 别分享密钥对:密钥对是你的“钥匙”,别发给别人;
– 用IAM角色代替Access Key:如果实例要访问S3、RDS,给实例分配IAM角色(比如AmazonS3ReadOnlyAccess),而不是在实例里存Access Key(容易泄露);
– 加密EBS卷:创建EBS卷时,勾选“加密”,用AWS KMS密钥加密,防止数据被盗。
原创文章,作者:,如若转载,请注明出处:https://zube.cn/archives/233