教程 搜索 / 发布与基础设施 / 在 AWS EC2 购买服务器
📝 文字 ● 中级 更新于 2026-05-13

在 AWS EC2 购买服务器

EC2 是租用 Linux 服务器中功能最强大、最灵活、最昂贵、也最复杂的方式。如果你使用 AWS 的理由本身还不够清晰,那就不必选 EC2。如果你的需求确实在这里——IAM、VPC、ALB、S3,以及整个 AWS 生态——EC2 就是你在这一切旁边运行计算的正确方式。

几乎每个第一次购买 AWS 服务器的开发者,最终都会发现账单比预期高出不少,有时甚至高出很多。原因在于:EC2 的定价并不等于账单——账单是 EC2 实例费用,加上 EBS 卷费用,加上挂载的 EIP 费用,加上数据传输费,加上 CloudWatch 监控费,再加上任何经过 NAT Gateway 的流量费。每一项单独看都合理,合在一起却让 AWS 看起来比同等规格的 DigitalOcean Droplet 贵两到四倍。那种"$5 Droplet vs. $4 t3.micro"的对比根本站不住脚——t3.micro 不含公网 IP,存储空间不足,还会产生带宽费用,而 DigitalOcean 则提供了相当慷慨的免费流量额度。

使用 EC2 的真实理由,是你已经深度绑定在 AWS 上了。你的代码需要通过 IAM 角色访问 S3 或 DynamoDB,你在 Application Load Balancer 后面运行,你使用的是 AWS 原生托管数据库,你的 CloudFormation、CDK 或 Terraform 栈本来就期望使用 EC2。这些都没有问题——在这些场景下,EC2 确实出色。但如果你只是一个不需要这些的小项目,DigitalOcean 或 Hetzner 会更便宜、更简单、上手更快。

本教程将带你走完启动流程,指出那些会悄悄垫高账单的计费项,并解释 AMI、安全组、密钥对、EBS 等 AWS 专有概念——正是这些让 EC2 区别于本指南中的其他所有 VPS。我们不会粉饰其复杂性,只是给你一条清晰的路径。

你将学到什么

第一步:确认 EC2 是否是正确的选择

1

三个合理理由;否则请选别处

如果以下任一条成立,你可能确实需要 EC2:

  • 你需要在实例上使用 IAM 角色来与其他 AWS 服务通信。在开发环境中把 AWS 密钥放进环境变量没问题;生产环境下,将角色附加到实例才是正确做法。
  • 你出于其他原因已经在用 AWS——比如 S3、RDS、SQS 等。当 EC2 与同区域的 AWS 服务通信时,数据传输的费用账就划算得多。
  • 你需要非常特定的计算资源(GPU、大规模 ARM Graviton、大内存、EBS 优化 I/O)。AWS 的实例类型目录拥有独立 VPS 提供商没有的机型。

如果以上都不适用,DigitalOceanHetzner 更便宜、更简单、上手更快。

第二步:了解基本术语

2

每个 AWS 术语的含义

  • AMI(Amazon Machine Image)。操作系统镜像。"Ubuntu 24.04 LTS"就是一个 AMI;AWS 会为每个区域发布对应版本,你也可以自己制作。
  • 实例类型。虚拟机的规格——t3.micro(1 vCPU / 1 GB,可突发)、t3.small(1 vCPU / 2 GB),一直到大型企业级规格。t 系列是通用可突发型;m 是均衡型;c 是计算优化型;r 是内存优化型。
  • 安全组。附加到实例的虚拟防火墙。你定义允许的入站/出站规则,默认拒绝所有入站流量。
  • 密钥对。由 AWS 管理的 SSH 密钥。你在启动实例前生成或上传,启动时会自动安装到实例上。
  • EBS 卷。持久化磁盘。默认会挂载一个较小的根卷,也可以追加更多。EBS 按 GB/月独立计费,与实例无关。
  • EIP(弹性 IP)。静态公网 IPv4,在实例停止/启动后保持不变。挂载到运行中的实例时免费;未挂载或未关联时计费——这是最常见的"我忘了这一项"计费条目。

第三步:启动一台 t3.micro

3

在 EC2 控制台操作

在 AWS 控制台中,打开 EC2,点击 Launch instances,然后进行如下配置:

  • Name(名称):起一个便于记忆的名字。
  • AMI:选择"Ubuntu Server 24.04 LTS"。如果需要,可以筛选"Free Tier eligible"。
  • Instance type(实例类型):一般用途选 t3.micro,或选 t4g.micro(ARM/Graviton,略便宜,规格相同)。
  • Key pair(密钥对):新建一个或选择已有的。如果新建,务必下载 .pem 文件——只有这一次机会。
  • Network settings(网络设置):使用默认 VPC,选择"Allow SSH from anywhere"(或更好的做法:"Allow SSH from My IP")。如果是 HTTP/HTTPS Web 服务器,还需要开放 80/443 端口。
  • Configure storage(存储配置):默认 8 GB;如有需要可调整为 20 GB。在 AWS 免费套餐生效的前 12 个月内,前 30 GB 免费。

点击 Launch instance,等待约一分钟,实例进入"running"状态并获得公网 IPv4。

默认公网 IPv4 在停止/启动后会改变。如果你停止实例(不只是重启)再重新启动,IP 地址会变。凡是被 DNS 指向的服务,都应挂载一个弹性 IP——但只在实例运行时挂载,否则会为未挂载的 EIP 付费。

第四步:SSH 登录

4

使用你下载的密钥对

# If you downloaded the .pem file, chmod it
chmod 600 ~/Downloads/my-key.pem

# Connect (default user for Ubuntu AMIs is 'ubuntu')
ssh -i ~/Downloads/my-key.pem ubuntu@<public-ip>

现在你已以 ubuntu 用户身份登录到实例,该用户拥有 sudo 权限。不同 AMI 的默认用户不同:Amazon Linux 是 ec2-user,Debian 是 admin,旧版 CentOS 是 centos,等等。

第五步:安全加固——大部分与其他 VPS 相同

5

标准 Ubuntu 安全卫生

sudo apt update && sudo apt upgrade -y

# Optional: create a non-default user (the 'ubuntu' user is fine for most projects)
sudo adduser deploy
sudo usermod -aG sudo deploy
sudo rsync --archive --chown=deploy:deploy /home/ubuntu/.ssh /home/deploy

防火墙已通过 EC2 安全组(网络层)就位;在此之上再加 ufw 是双重保险——有用,但并非严格必要,因为安全组已经阻挡了不需要的入站流量。大多数 AWS 原生用户会关闭主机级防火墙,改为全部在安全组中统一管理。

完整的安全加固清单在单独的教程中。EC2 安全组覆盖网络层;操作系统层仍需其余步骤——仅限 SSH 密钥登录、禁止 root 登录、fail2ban、swap、日志轮转、无人值守安全更新。在把域名指向这台服务器之前,请先走一遍 为生产环境准备一台全新 Linux 服务器。二十分钟,第一次遇到问题时就值回来了。

第六步:账单组成项

6

你实际在为什么付费

一台运行中的 t3.micro,配默认存储和公网 IPv4(已挂载),大约的费用如下:

  • t3.micro 计算:$0.0104/小时 ≈ $7.50/月。
  • EBS 根卷(8 GB gp3):约 $0.65/月。
  • 公网 IPv4(已挂载,自 2024 年 2 月起 AWS 对此收费):$3.65/月。
  • 出站数据传输:前 100 GB/月免费,超出后 $0.09/GB,难以预测。

合计:基准约 $12/月。AWS 账户开通后的前 12 个月,免费套餐覆盖了大部分费用;之后你就要为在其他地方只需 $5–7 的服务支付真实的费用了。

设置账单提醒。进入 AWS 账单控制台 → Budgets → 创建预算,配置金额为 $5、$10、$20 的邮件提醒——只要足够有参考价值又不会频繁骚扰即可。那些账单惊吓的故事,不是系统的恶意,而是"我忘了我有两台实例和一个 NAT Gateway 还在跑"。

第七步:绑定你的域名

7

使用 EIP 或主机名,通过 Route 53 或任意 DNS 服务

如需稳定的公网 IP,请挂载一个弹性 IP,然后在你的 DNS 提供商处创建一条 A 记录,指向该 EIP。

如果你在用 Route 53,可以在顶级域名处使用 Alias 记录直接指向 ALB 或 CloudFront——但对于单台 EC2 而言,在任意 DNS 提供商创建普通 A 记录就完全够用了。

第八步:何时跳过 EC2

8

三种具体情况

  • 你正在学习 Linux 服务器管理。AWS 概念(VPC、安全组、IAM、ENI)的认知负担会分散你的注意力。DigitalOcean 更友好,而学到的 Linux 技能同样适用于其他平台。
  • 你想要可预测的月度费用。EC2 的账单有太多独立计费项。DigitalOcean 和 Hetzner 都是固定费率。
  • 你不需要任何 AWS 特有的服务。单独使用 EC2 性价比偏低。选它是因为整个生态,而不是尽管如此还要用它。
终止实例并不会默认删除其 EBS 卷(行为取决于一个标志位,不同 AMI 不同)。如果你终止了实例,但存储费用仍未消失,请在 EC2 控制台的 Volumes 页面检查——遗留的 EBS 卷是经典的隐性费用。

接下来