启动您的第一个 EC2 实例
逐步完成启动向导,选择 AMI 和实例类型,配置密钥对,并通过 SSH 连接。
启动您的第一个 EC2 实例 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
什么是 Amazon EC2?
Amazon Elastic Compute Cloud (EC2)提供可调整大小的云端虚拟机,称为实例。您可以选择操作系统、CPU、内存、存储和网络容量。EC2 是 AWS 的基础计算服务,几乎所有需要持久化、有状态计算的架构,都会直接依赖 EC2,或通过构建于其上的服务(ECS、EKS、EMR)依赖它。实例在您的 VPC 内运行,并可按需启动、停止、重启或终止。
Amazon 机器映像 (AMI)
Amazon 机器映像 (AMI)是一个模板,用于定义 EC2 实例的操作系统、软件和配置。AWS 提供数千种 AMI(Amazon Linux 2023、Ubuntu、Windows Server),Marketplace 供应商发布预先配置软件的 AMI,您也可以通过捕获正在运行的实例来创建自己的自定义 AMI。启动实例时,您需要选择一个 AMI;它决定根卷内容和架构(x86_64 或 ARM)。
# Find latest Amazon Linux 2023 AMI in us-east-1
aws ec2 describe-images \
--owners amazon \
--filters 'Name=name,Values=al2023-ami-*-x86_64' \
--query 'sort_by(Images, &CreationDate)[-1].ImageId' \
--output textEC2 启动向导:逐步说明
控制台中的 EC2 启动向导会引导您完成以下步骤:1) 名称和标签;2) AMI 选择;3) 实例类型(CPU/内存组合);4) 用于 SSH 访问的密钥对;5) 网络设置(VPC、子网、安全组);6) 存储(根 EBS 卷大小和类型);7) 高级设置(IAM 角色、用户数据脚本、元数据选项)。理解每个步骤,便能有把握地回答基于配置的考试问题。
# Equivalent CLI launch
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type t3.micro \
--key-name MyKeyPair \
--security-group-ids sg-12345678 \
--subnet-id subnet-12345678 \
--iam-instance-profile Name=MyEC2Role \
--user-data file://user-data.sh用于 SSH 身份验证的密钥对
密钥对由公钥(由 AWS 存储)和私钥(由您下载,且只能下载一次)组成。启动 EC2 实例时,AWS 会将公钥注入默认用户的 ~/.ssh/authorized_keys 文件中(例如,Amazon Linux 使用 ec2-user,Ubuntu 使用 ubuntu)。您使用私钥连接:ssh -i my-key.pem ec2-user@<public-ip>。丢失私钥意味着您无法通过 SSH 登录该实例,除非改用 Systems Manager Session Manager。
# Generate a new key pair and save the private key
aws ec2 create-key-pair \
--key-name MyKeyPair \
--query 'KeyMaterial' \
--output text > MyKeyPair.pem
chmod 400 MyKeyPair.pem
# Connect to the instance
ssh -i MyKeyPair.pem ec2-user@54.123.45.67实例生命周期状态
EC2 实例会经历多个状态。等待中:实例正在启动(不计费)。运行中:实例处于活动状态(按秒或按小时计费)。正在停止:正在转换为已停止状态(仅适用于由 EBS 支持的实例)。已停止:实例已关闭,您仅需为附加的 EBS 存储付费。已终止:已永久删除,无法重新启动。理解这些状态对计费很重要(按需费用仅在运行中时累积),对架构也很重要(Spot 实例终止时不会进入已停止状态)。
# Stop and start an instance
aws ec2 stop-instances --instance-ids i-0abcdef1234567890
aws ec2 start-instances --instance-ids i-0abcdef1234567890
# Terminate permanently
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890EC2 公有和私有 IP 地址
默认情况下,公有子网中的实例会获得一个公有 IPv4 地址(动态地址,停止/启动后会变化)和一个私有 IPv4 地址(在 VPC 内停止/启动后仍保持不变)。若要使用持久的公有 IP,请分配一个Elastic IP (EIP),即在您释放前一直归您所有的静态公有 IPv4 地址。EIP 附加到运行中的实例时免费;未附加时,或者每个运行中的实例拥有多个 EIP 时,则会收费。
# Allocate an Elastic IP and associate it with an instance
aws ec2 allocate-address --domain vpc
aws ec2 associate-address \
--instance-id i-0abcdef1234567890 \
--allocation-id eipalloc-12345678用户数据:引导脚本
用户数据是在实例首次启动时运行一次的 shell 脚本(或 cloud-init 配置)。可使用它安装软件包、配置软件,或从 S3 获取应用程序代码。用户数据以根用户身份运行,默认不会在重启时再次执行。它会通过启动配置以 base64 编码文本传递。保持用户数据简短,并依赖预构建的 AMI 完成繁重配置,可加快自动扩展的启动时间。
#!/bin/bash
# user-data.sh — runs on first boot
yum update -y
yum install -y httpd
echo '<h1>Hello from EC2</h1>' > /var/www/html/index.html
systemctl start httpd
systemctl enable httpd连接方式:SSH 与 Systems Manager
访问 EC2 实例主要有两种方式。SSH:要求安全组开放端口 22,并具备私钥文件。AWS Systems Manager Session Manager:无需开放任何端口、无需密钥对,即可提供基于浏览器或 CLI 的 shell 访问,并通过 CloudTrail 提供完整审计记录。Session Manager 要求安装 SSM 代理(Amazon Linux 和 Windows Server AMI 已预装)以及具备 AmazonSSMManagedInstanceCore 策略的 IAM 角色。对于生产实例,Session Manager 是首选访问方式。
# Start a Session Manager session (no SSH needed)
aws ssm start-session --target i-0abcdef1234567890EC2 实例元数据
EC2 实例元数据服务 (IMDS)是位于 169.254.169.254 的 HTTP 终端节点,仅可从实例内部访问。它提供运行时信息:实例 ID、AMI ID、公有 IP、IAM 角色凭证、可用区等。IMDSv2(当前最佳实践)要求使用面向会话的令牌,从而防止攻击者通过存在漏洞的应用程序利用服务器端请求伪造 (SSRF) 攻击读取元数据。始终将实例配置为要求使用 IMDSv2。
# Get instance ID using IMDSv2
TOKEN=$(curl -X PUT 'http://169.254.169.254/latest/api/token' \
-H 'X-aws-ec2-metadata-token-ttl-seconds: 21600' -s)
curl -H "X-aws-ec2-metadata-token: $TOKEN" -s \
http://169.254.169.254/latest/meta-data/instance-id放置组
放置组控制实例如何分布在底层硬件上。集群:将实例紧密放置在一个 AZ 中,以实现超低网络延迟和高带宽,适合 HPC。分散:将每个实例放置在不同硬件上,以减少关联故障,适合小型关键实例集合(每个 AZ 最多 7 个)。分区:将实例划分到不同机架上的逻辑分区中,适合 Hadoop 或 Cassandra 等重视机架感知能力的大型分布式系统。
# Create a cluster placement group
aws ec2 create-placement-group \
--group-name HighPerfCluster \
--strategy clusterEC2 终止保护
终止保护可防止通过控制台、CLI 或 API 意外终止实例。启动关键实例时应启用它。请注意:即使启用了终止保护,除非您单独配置实例保护,否则 Auto Scaling Groups 仍可在缩容事件期间终止实例。根 EBS 卷上的 DeleteOnTermination 属性控制实例终止时是否自动删除该卷。最佳实践是根卷使用 true,需要保留的数据卷使用 false。
# Enable termination protection
aws ec2 modify-instance-attribute \
--instance-id i-0abcdef1234567890 \
--disable-api-termination快速检查
测试您对本课 AWS Solutions Architect (SAA-C03) 概念的理解。
课程回顾
本课您学到了:EC2 实例通过 AMI 启动,并选择实例类型、密钥对、安全组和可选的用户数据、Elastic IP 提供持久的公有地址,而标准公有 IP 会在停止/启动后发生变化,以及对于生产实例,Systems Manager Session Manager 是比 SSH 更推荐的访问方式。接下来,我们将比较实例类型和定价模型。
常见问题解答
「启动您的第一个 EC2 实例」课时是免费的吗?
是的 — 「启动您的第一个 EC2 实例」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「启动您的第一个 EC2 实例」这节课中我会学到什么?
逐步完成启动向导,选择 AMI 和实例类型,配置密钥对,并通过 SSH 连接。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「启动您的第一个 EC2 实例」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 启动您的第一个 EC2 实例
- 实例类型与定价模型
- 安全组与密钥对
- EC2 存储:实例存储与 EBS