01 它是干嘛的
EC2 是 AWS 的起家产品,也是「云计算」最直观的形态:把物理服务器切成很多台互相隔离的虚拟计算机,按需求租用。它的价值不在于「有机器可用」,而在于「机器成了可编程的资源」——开机、扩容、换系统、加防火墙,都能用接口在秒级完成,从此计算能力可以随流量涨落自动伸缩。
02 为什么会有它
2006 年之前:租服务器像买房,装修三个月才能住进去
在没有云服务器的年代,网站要上线就得自己买机器。采购要走审批、机器要运到机房、上架要排队、装系统要联系运维,整套流程走完可能是一两个月。更要命的是,你必须提前猜一个数字:未来三年会有多少人访问?猜少了,大促时网站崩溃;猜多了,平时几百台机器闲在那里烧电费。
亚马逊自己就长期被这个问题折磨。每年购物季流量会暴涨好几倍,买足机器平时浪费,不买又扛不住。于是他们干脆把这件事想透:与其按峰值买一堆几乎不用的机器,不如做一个能随时开、随时关、按使用时长收钱的资源池,让每家公司在需要时才「借」机器。
这个判断改变了整个行业。EC2 把一台服务器变成了一段接口:开机是一条命令,选操作系统是一个参数,防火墙是一条规则。从此「基础设施」第一次变成可以编程的东西,所有云厂商的产品命名与形态,基本都能追溯到 EC2。
03 它怎么工作
EC2 的核心模型只有四样东西:实例(你租的那台机器)、镜像(装好系统的模板)、安全组(机器门口的检查站)、可用区(机器实际所在的数据中心)。理解了这四样,就理解了一台云主机是怎么被「装配」出来的。
一台云主机是怎么被开出来的:实例、镜像、安全组与可用区
- 1① 选规格(实例类型)
决定这台机器有几核 CPU、多少内存、要不要显卡。规格可以随时停机更换,就像给电脑换配置单。
- 2② 选镜像(AMI)
镜像是预先装好操作系统与软件的模板。选一个镜像,等于让新机器「照着样机复制一份」,开出来就能直接用。
- 3③ 选可用区与网络
可用区是同一地区内互相独立的数据中心,彼此相距不近不远。把机器分散到多个可用区,一个机房断电,另一个还能继续服务。
- 4④ 配置安全组
安全组是套在实例前面的虚拟防火墙,规定「哪些来源可以访问哪些端口」。不打开 80 端口,外界就连不上,它是默认的第一道防线。
- 5⑤ 启动并挂载存储
机器启动后挂上一块网络硬盘(EBS),数据存在里面,机器本身被删掉数据仍可保留。至此服务就可以对外访问了。
04 谁在用它
承载网页、接口、后台任务,流量大时加机器,流量小时减机器,只为实际用量付钱。
需要一台干净环境时几分钟就开出来,用完立即销毁,不再让测试机器长期闲占资源。
活动当天自动扩出上百台机器顶住峰值,活动结束自动释放,成本按小时结算。
临时租用大批高配机器并行计算,任务完成后全部归还,不必自建集群。
把服务同时部署在多个可用区,一个机房故障时另一处接管,业务几乎不中断。
05 怎么用
会用命令行就能上手,但真正省心的是先想清楚「机器坏了怎么办」,再动手开机。
- 01注册 AWS 账号,并在控制台创建一对密钥(用于远程登录,私钥务必本地保存好)。
- 02在 EC2 控制台选择系统镜像(AMI)与实例规格,按预算选最小的机型先跑通。
- 03新建一个安全组,只放行必要的端口(如网站的 80、443,运维的 22 限你的 IP)。
- 04选择可用区与网络后启动实例,获得一个公网地址,即可用 SSH 登录。
- 05给重要的机器挂载独立的网络硬盘(EBS),并在控制台设置定期快照备份。
- 06启用自动伸缩组与负载均衡,让机器数量随流量自动增减,实现真正的弹性。
# 1. 查一个可用的 Amazon Linux 镜像 ID
aws ec2 describe-images \
--owners amazon \
--query "Images[-1].ImageId" --output text
# 2. 启动一台 t3.micro 实例,指定镜像、密钥与安全组
aws ec2 run-instances \
--image-id ami-0123456789abcdef0 \
--instance-type t3.micro \
--key-name my-key \
--security-group-ids sg-0123456789abcdef0
# 3. 查看实例状态与公网 IP
aws ec2 describe-instances \
--query "Reservations[].Instances[].{State:State.Name,Ip:PublicIpAddress}"避坑提示
- !三种计价思路要分清:按需实例随开随停、单价最高;预留实例承诺用一到三年,换大幅折扣;竞价实例用别人的闲置算力、价格最低,但随时可能被回收,只适合能中断的任务。
- !安全组默认拒绝一切入站流量,这是好事;别为了图省事直接对 0.0.0.0/0 开放所有端口,尤其不要开放数据库端口。
- !一定不要用初始的 root 主账号日常操作,先建一个受限账号再工作,这是云上最基础的安全习惯。
06 关键概念
- 实例(Instance)
- 你从云上租到的那台虚拟计算机,本质上是从一台大服务器切出来的独立小房间。
- 镜像(AMI)
- 预先装好系统与软件的模板,开新机器时照它复制一份,省去重装配置。
- 安全组(Security Group)
- 套在实例前面的虚拟防火墙,决定谁可以访问机器的哪些端口。
- 可用区(Availability Zone)
- 同一地区内彼此独立的数据中心,分散部署可以扛住单个机房故障。
- 弹性(Elastic)
- 机器数量能随流量自动增减,需要时加、空闲时减,这也是 EC2 名字的由来。