跳到主要内容

C2-02-01-从“计算”开始理解-AWS与Amazon-EC2与AMI

本篇是《C2-02-EC2与基础计算服务》的第1个分篇,主要包含:从“计算”开始理解-AWS、Amazon-EC2、AMI。

1-从“计算”开始理解-AWS

1.1-Compute-是什么?

Compute

中文通常翻译为:

计算 / 计算资源

在云计算中,Compute 不是单纯指:CPU 做加减乘除,而是更广义的:让程序真正运行起来所需要的计算能力。

一个应用程序最终一定要在某个地方运行。

例如 GlobalShop 的商品服务:GET /products/12345。

用户访问商品页面以后,服务器需要:

接收 HTTP 请求

执行 Node.js / Java / Python 程序

读取 Redis

查询数据库

组织 JSON

返回给用户

这些代码不能凭空运行。

它需要:CPU、Memory、Operating System、Network、Runtime、Storage。

所以,从最基础的角度看:

Compute
=
“代码在哪里运行”

这是理解 AWS Compute 服务最重要的一句话。


1.2-Physical-Server:物理服务器

1.2.1-传统服务器是什么?

Physical Server:物理服务器。

传统情况下,一家公司可能购买:Dell / HP / Lenovo Server。

安装在自己的 Data Center 中。

例如:

┌────────────────────────────┐
│ Physical Server │
│ │
│ CPU: 32 Core │
│ Memory: 128 GB │
│ Disk: 4 TB │
│ Network Card │
│ │
│ Linux │
│ │
│ GlobalShop Application │
└────────────────────────────┘

这台机器是真实存在的硬件。

公司需要负责:购买、运输、机架、供电、散热、网络、硬件故障、容量规划、升级、淘汰。


1.3-为什么后来出现-Virtual-Machine?

假设公司购买一台:32 CPU、128 GB RAM的服务器。

但是某个应用只需要:4 CPU、16 GB RAM如果一台 Physical Server 只跑一个应用:

Physical Server
32 CPU
128 GB RAM

实际使用:
4 CPU
16 GB RAM

大量硬件资源就浪费了。

于是出现了 Virtualization(虚拟化)技术。


1.4-Virtualization:虚拟化

Virtualization:虚拟化。

核心思想是:

一台真实物理服务器,可以被划分为多个逻辑上相对独立的计算环境。

例如:

Physical Server

├── VM 1
│ ├── 4 vCPU
│ ├── 16 GB RAM
│ └── Linux

├── VM 2
│ ├── 8 vCPU
│ ├── 32 GB RAM
│ └── Windows

└── VM 3
├── 4 vCPU
├── 16 GB RAM
└── Linux

这里:VM:Virtual Machine,即虚拟机。


1.5-Host、Guest-OS、Hypervisor

这三个词第一次学习虚拟化时很容易混。

1.5.1-Host

Host:宿主机。

就是底层真正存在的物理服务器。


1.5.2-Guest-OS

Guest Operating System

简称:Guest OS:客户操作系统 / 虚拟机中的操作系统。

例如:

VM 1
└── Ubuntu Linux

VM 2
└── Windows Server

Ubuntu 和 Windows 就是 Guest OS。


1.5.3-Hypervisor

Hypervisor:虚拟机监控器 / 虚拟化管理层。

它负责把物理硬件资源分配给虚拟机。

概念上可以理解为:

Physical Hardware


┌──────────────────┐
│ Hypervisor │
└──────────────────┘
│ │ │
▼ ▼ ▼
VM 1 VM 2 VM 3
Linux Linux Windows

Hypervisor 负责:CPU 分配、Memory 分配、设备虚拟化、虚拟机隔离、虚拟机运行。

CLF-C02 不要求深入研究虚拟化底层实现。

真正需要理解的是:

Physical Server

Virtualization

多个 Virtual Machine

云厂商可以快速创建、删除、调整 VM

1.6-从-Virtual-Machine-到-Cloud-VM

传统 VM 已经解决:

一台物理服务器
→ 多台虚拟服务器

但如果这些服务器还是公司自己买的,那么公司仍然需要:买服务器、建机房、扩容、换硬盘、维护网络、处理硬件故障。

AWS 做的关键一步是:

AWS 自己建设庞大的数据中心和硬件基础设施,然后把计算能力通过 API 提供给客户。

于是:

传统:

买服务器

安装虚拟化环境

创建 VM

AWS:

调用 API / Console

几分钟甚至更快得到虚拟服务器

这就是 EC2 的基础思想。



2-★★★★★-Amazon-EC2

[CURRENT-IN-SCOPE]

正式名称:Amazon Elastic Compute Cloud

简称:Amazon EC2EC2

中文:Amazon 弹性计算云

AWS 官方把 EC2 Instance 描述为 Virtual Server,也就是虚拟服务器。

EC2 同时提供 AMI、Instance Type、EBS、Instance Store、Security Group 等围绕虚拟服务器运行所需要的基础能力。

(AWS Documentation)


2.1-为什么叫-Elastic-Compute-Cloud?

这个名字非常重要。

拆开来看:

2.1.1-Elastic

弹性。

表示:需要时增加、不需要时减少。


2.1.2-Compute

计算。

表示:运行程序的 CPU / Memory 等计算能力。


2.1.3-Cloud

云。

表示:这些计算资源不是你自己购买服务器建立,而是通过 AWS 云获得。

所以:

Elastic
+
Compute
+
Cloud
=
Elastic Compute Cloud

另外:

Elastic Compute Cloud

Compute
Cloud

两个 C

可以写成 EC²,最终产品名写作 Amazon EC2


2.2-EC2-到底是什么?

最简单的一句话:

EC2 是 AWS 提供的可配置虚拟服务器服务。

但真正理解应该是:

AWS Data Center


Physical Servers


Virtualization


EC2 Instance

你不需要购买服务器、安装服务器、维护硬件、更换 CPU、维修硬盘、维护机房。

你只需要决定我要什么 OS?

我要多少 CPU?

我要多少内存?

我要多少存储?

放哪个 Region?

放哪个 AZ?

允许谁访问?

需要运行多久?

采用什么购买模式?


2.3-★★★★★-EC2-Instance

Instance

本意:

实例

在计算机系统中,可以理解为:

某个模板真正创建出来并运行的一份具体对象。

因此:

EC2
= 服务

EC2 Instance
= 一台具体运行中的 EC2 虚拟服务器

例如:

GlobalShop 有 3 台商品服务器:

i-001
i-002
i-003

这些分别就是三个 EC2 Instance。


2.4-GlobalShop-中-EC2-在哪里?

最基础架构:

Internet User


Route 53


CloudFront


ALB


┌───────────────┐
│ EC2 Instance │
│ │
│ Node.js │
│ Product API │
└───────────────┘


RDS / Redis

例如用户访问:https://globalshop.com/product/123。

最终可能有一台 EC2:

运行 Node.js

执行商品 API

查数据库

返回商品 JSON


3-★★★★★-AMI

正式名称:Amazon Machine Image

简称:AMI

中文:Amazon 机器映像,也常称为 Amazon 系统镜像


3.1-为什么需要-AMI?

创建服务器的时候,AWS 必须知道:这台服务器到底装什么?

例如:

Linux?
Windows?

Ubuntu?
Amazon Linux?

有没有 Node.js?
有没有 Nginx?
有没有应用程序?

所以需要一个:服务器启动模板。

这就是 AMI。

AWS 官方定义中,AMI 包含启动 Instance 所需要的软件配置。

创建 EC2 Instance 时必须指定 AMI。

AMI 还具有 Region 属性。

(AWS Documentation)


3.2-AMI-可以理解成什么?

可以把 AMI 理解成:“服务器模板”。

例如:

AMI: globalshop-product-v12

包含:

Amazon Linux
Node.js 24
Nginx
CloudWatch Agent
GlobalShop Product Service v12
安全配置
启动脚本

然后:

AMI

├── EC2 #1
├── EC2 #2
├── EC2 #3
└── EC2 #4

所有机器都可以从同一个模板启动。


3.3-为什么-AMI-对-Auto-Scaling-很重要?

假设双十一流量突然增加。

AWS 需要把 EC2 实例从 20 台扩展到 300 台,不可能让运维人员逐台手动安装 Linux、Node.js、Nginx,下载代码并配置程序。

重复 280 次。

应该:

AMI

├── EC2
├── EC2
├── EC2
├── EC2
├── ...
└── EC2

所以:

AMI 解决的是“新的 EC2 应该长什么样”。

而:

Auto Scaling 解决的是“应该创建多少台”。

这是非常重要的一组关系。


本篇概述

  • 本篇梳理了从“计算”开始理解-AWS相关的核心知识、适用场景与判断要点。
  • 本篇梳理了Amazon-EC2相关的核心知识、适用场景与判断要点。
  • 本篇梳理了AMI相关的核心知识、适用场景与判断要点。

返回本章总述查看本章概述