SuperAPI AI 工具集

ec2

部署与运维

查看项目

更新于 10-15 12:07

技能介绍

用途

Amazon Elastic Compute Cloud (EC2) 提供云端可弹性伸缩的计算容量。本技能面向使用 AWS CLI 或 boto3 管理 EC2 资源的开发者与运维人员,覆盖实例、安全组、密钥对、AMI、EBS 卷、Auto Scaling Group、Spot 实例、Session Manager、置放群组等主题。

核心概念

实例类型:通用型(t3、m6i、t4g)适用于 Web 服务器与开发环境;计算优化型(c6i、c7g)适用于批处理与游戏;内存优化型(r6i、r7g)适用于数据库与缓存;存储优化型(i3、d3)适用于数据仓库;加速型(p4d、g5)适用于机器学习与图形。Graviton (ARM) 实例(t4g、m7g、c7g、r7g)在同等性能下比 x86 便宜约 20%。

购买选项:按需(按小时/秒付费)、预留(1-3 年承诺,最高 72% 折扣)、Spot(闲置容量,最高 90% 折扣,可被 2 分钟通知中断)、Savings Plans(灵活的承诺折扣)。

AMI:包含操作系统、软件与配置的模板。建议通过 SSM Parameter Store 查询最新官方 AMI,而非硬编码 ID。

安全组:控制入站与出站流量的虚拟防火墙,变更立即生效,无需重启。

主要能力与常见模式

  • 启动实例:创建密钥对、创建安全组、授权 SSH/HTTP 入站规则、运行实例、等待运行并获取 IP。
  • User Data 脚本:在启动时执行初始化脚本。注意包管理器差异:Amazon Linux 2 使用 amazon-linux-extras install nginx1 -y(yum install nginx 会失败),Amazon Linux 2023 使用 dnf install -y nginx,Ubuntu 使用 apt-get install -y nginx;Amazon Linux 2 / RHEL 上 httpd 可通过 yum install -y httpd 安装。
  • 附加 IAM 角色:创建实例配置文件并关联角色,启动时通过 --iam-instance-profile 指定。
  • 从实例创建 AMI:使用 aws ec2 create-image,可加 --no-reboot。
  • Auto Scaling Group 与 Spot:推荐通过 ASG 的 mixed-instances policy 使用 Spot,而非旧版 request-spot-instances API,支持实例多样化以降低中断。
  • EBS 卷管理:创建卷(可指定类型、IOPS、吞吐量、加密)、附加到实例、创建快照。

使用方式

通过 AWS CLI 命令或 boto3 代码操作。文档提供实例管理、安全组、AMI、EBS 卷等命令参考表,以及启动实例、创建 AMI、配置 ASG 等完整示例。

适用场景

Web 服务器、开发环境、批处理、游戏、数据库、缓存、数据仓库、机器学习、图形渲染等。Spot 适用于容错型工作负载(批处理、ML 训练、CI)。

最佳实践

安全:使用 IAM 角色而非访问密钥;安全组遵循最小权限;后端实例使用私有子网;启用 IMDSv2 防止 SSRF;加密 EBS 卷。

性能:合理调整实例规格;使用 EBS 优化实例;选择合适 EBS 卷类型(gp3 为默认好选择,io2 用于高 IOPS);使用置放群组降低网络延迟。

成本:容错工作负载用 Spot;停止/终止未使用实例;稳态工作负载用预留实例或 Savings Plans;删除未使用的 EBS 卷与快照;考虑 Graviton。

可靠性:使用 Auto Scaling Group 实现高可用;跨多个可用区部署;使用 ELB 分发流量;实现健康检查。

故障排查

无法 SSH:先区分错误类型——Connection refused 表示网络可达但 SSH 守护进程未监听(sshd 崩溃、未安装、OS 防火墙阻止、端口错误);Connection timed out 表示数据包未到达(安全组阻止 22 端口、NACL 阻止、无公网 IP、IP 错误);Permission denied 表示已连接但认证失败(密钥文件错误、用户名错误、密钥未授权)。各 OS 默认 SSH 用户:Amazon Linux 2/2023 为 ec2-user,Ubuntu 为 ubuntu,Debian 为 admin,CentOS/RHEL 为 ec2-user 或 centos,Windows 为 Administrator。诊断命令包括 describe-instances、describe-instance-status、describe-security-groups、get-console-output。若为 connection refused,可通过 Session Manager 进入实例修复 sshd。也可用 Session Manager 替代 SSH(无需开放端口与密钥对),并支持端口转发。

实例无法启动:可能原因包括达到实例限制、可用区容量不足、EBS 卷问题、无效 AMI。可查看 StateReason。

实例不可达:检查实例状态、获取控制台输出、获取控制台截图(Windows/GUI 问题)。

高 CPU/内存:启用详细监控,通过 CloudWatch 查看 CPUUtilization 指标。

限制

资料未提供本技能的具体安装方式、收费模式、平台支持范围或效果数据,暂未提供。