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:
如果以上都不适用,DigitalOcean 或 Hetzner 更便宜、更简单、上手更快。
t3.micro(1 vCPU / 1 GB,可突发)、t3.small(1 vCPU / 2 GB),一直到大型企业级规格。t 系列是通用可突发型;m 是均衡型;c 是计算优化型;r 是内存优化型。在 AWS 控制台中,打开 EC2,点击 Launch instances,然后进行如下配置:
t3.micro,或选 t4g.micro(ARM/Graviton,略便宜,规格相同)。点击 Launch instance,等待约一分钟,实例进入"running"状态并获得公网 IPv4。
# 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,等等。
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 原生用户会关闭主机级防火墙,改为全部在安全组中统一管理。
一台运行中的 t3.micro,配默认存储和公网 IPv4(已挂载),大约的费用如下:
合计:基准约 $12/月。AWS 账户开通后的前 12 个月,免费套餐覆盖了大部分费用;之后你就要为在其他地方只需 $5–7 的服务支付真实的费用了。
如需稳定的公网 IP,请挂载一个弹性 IP,然后在你的 DNS 提供商处创建一条 A 记录,指向该 EIP。
如果你在用 Route 53,可以在顶级域名处使用 Alias 记录直接指向 ALB 或 CloudFront——但对于单台 EC2 而言,在任意 DNS 提供商创建普通 A 记录就完全够用了。