跳到主要内容

C2-02-06-EC2-Shared-Responsibility与Elastic-Beanstalk与本章最重要的-GlobalShop-架构

本篇是《C2-02-EC2与基础计算服务》的第6个分篇,主要包含:EC2-Shared-Responsibility、Elastic-Beanstalk、本章最重要的-GlobalShop-架构。

10-★★★★★-EC2-Shared-Responsibility

Shared Responsibility Model:责任共担模型。

这里不要背一句:AWS 负责云、客户负责云中。

而要真正放到 EC2 看。


10.1-AWS-负责什么?

例如:Data Center、Physical Building、Power、Cooling、Physical Server、Physical Network、Underlying infrastructure。

这些客户不负责。


10.2-客户负责什么?

EC2 属于相对底层的计算服务。

所以客户通常仍然负责:Guest OS、OS Patch、Application、Application Configuration、IAM Permission、Security Group、Data、Encryption choices、Installed Software。

也就是说:EC2。

不像一个完全 Serverless 服务。

你得到服务器以后:

操作系统和应用层面的安全责任很大一部分仍然属于客户。


10.3-GlobalShop-EC2-安全责任

例如:

AWS:
修坏掉的物理 CPU

GlobalShop:
更新 Ubuntu security patch
修 Node.js 漏洞
设置 Security Group
控制 IAM Role
保护用户数据

如果 GlobalShop 自己:开放 0.0.0.0/0:22。

让全世界都能 SSH:这不能怪 AWS。

Security Group 是 AWS 提供的工具,但如何配置属于客户责任的一部分。

(AWS Documentation)



11-★★★★-Elastic-Beanstalk

正式名称:Beanstalk

字面是:

豆茎

名字来自“快速向上生长”的形象。

技术上可以把它理解成:

AWS 帮你把 Web Application 的 EC2、Load Balancer、Scaling、Health Monitoring 等基础设施组织起来。


11.1-为什么需要-Elastic-Beanstalk?

直接使用 EC2 时:开发者可能要处理:EC2、AMI、Auto Scaling、ELB、Deployment、Health Check、Configuration。

但很多开发者只想:

我有一个 Java / Node.js / Python Web App

请帮我部署起来。

于是:

Application Code


Elastic Beanstalk

├── EC2
├── Load Balancing
├── Auto Scaling
└── Health Monitoring

AWS 官方目前仍然如此描述 Elastic Beanstalk。

(AWS Documentation)


11.2-Elastic-Beanstalk-不是-Serverless

非常容易产生误解。

因为开发者不用自己手动创建那么多基础设施。

不代表:底层没有 EC2。

恰恰相反,Elastic Beanstalk 会为你的环境 Provision EC2、Load Balancer 等资源。

所以可以理解为:

Elastic Beanstalk
=
Higher-level application deployment platform

底层仍可能是:
EC2 + ELB + Auto Scaling

11.3-Elastic-Beanstalk-是否另外收费?

当前 AWS 官方:

Elastic Beanstalk 本身没有额外服务费,主要为底层实际使用的 AWS Resource 付费。

(AWS Documentation)

例如:EC2、Load Balancer、Storage、Data Transfer。

仍然正常收费。


11.4-EC2-vs-Elastic-Beanstalk

EC2

你:
“给我一台服务器,
剩下很多东西我自己做。”

vs

Elastic Beanstalk

你:
“这是我的应用,
帮我建立并管理常见运行环境。”

所以:

控制能力
EC2 > Elastic Beanstalk

运维抽象程度
Elastic Beanstalk > EC2

11.5-★★★-Amazon-Lightsail

正式名称:它的核心定位不是比 EC2 更强大的企业级服务器,而是。

更简单、更容易入门、更可预测价格的 AWS 应用 / 网站运行方式。

Lightsail 把Virtual Server、Storage、Database、Load Balancer、Static IP、DNS、CDN、Snapshot等常见能力组合成相对简单的体验。

(AWS Documentation)


11.6-Lightsail-适合什么?

例如:个人网站、WordPress、小型公司网站、简单 Web Application、Prototype。

特点:simple、predictable monthly pricing、easy to start。

如果题目强调:简单网站、不想处理复杂 AWS 配置、固定 / 可预测套餐。

Lightsail 值得重点考虑。


11.7-EC2-vs-Lightsail

Lightsail
→ 简化体验
→ 面向较简单使用场景
→ Bundled resources / predictable pricing

EC2
→ 灵活性高
→ 企业级复杂架构能力强
→ 网络、实例、扩缩容等配置更细

不要理解成:Lightsail 不是 AWS。

它仍然是 AWS Service。


11.8-★★★-AWS-Batch

正式名称:Batch:批处理。

所谓 Batch Processing:

不是持续实时响应用户请求,而是提交一批 Job,然后由系统安排资源运行。

例如:100 万张图片、需要重新生成缩略图不是用户每点击一下才处理。

而是。

Job Queue


Batch Processing

├── Job 1
├── Job 2
├── Job 3
└── ...

11.9-AWS-Batch-为什么存在?

如果自己实现 Batch Platform:你要处理:Job Queue、Scheduling、Compute Provisioning、Scaling、Resource Allocation、Retry、Container Runtime。

AWS Batch 帮你处理很多底层调度和 Capacity 管理工作。

AWS 当前将 Batch 定义为 Fully Managed Batch Computing Service,可以根据提交的 Job 自动 Provision 计算资源,并可运行在 EC2、Fargate、ECS/EKS 等计算体系上。

(AWS Documentation)


11.10-GlobalShop-AWS-Batch-场景

例如每天凌晨:

1 亿商品

重新计算推荐特征

生成价格统计

生成图片缩略图

可以:

Jobs


AWS Batch

├── EC2
├── Spot
└── Fargate

如果任务可以中断并重试:Batch + Spot。

往往是非常典型的成本优化组合。


11.11-EC2、Beanstalk、Lightsail、Batch-的定位对比

服务核心问题
EC2我要虚拟服务器
Elastic Beanstalk我要快速部署 Web Application,并让 AWS 帮我管理常见环境
Lightsail我要简单、容易使用、价格相对可预测的网站 / 小型应用平台
AWS Batch我要运行大规模批处理 Job


12-本章最重要的-GlobalShop-架构

现在把前面的内容放到一张图里:

Global Users


CloudFront


ALB

┌──────────────┴──────────────┐
│ │
AZ-A AZ-B
│ │
┌──────┴──────┐ ┌──────┴──────┐
▼ ▼ ▼ ▼
EC2 EC2 EC2 EC2
│ │ │ │
└──────── Auto Scaling Group ───────────────┘

Launch Template

┌─────────────┼─────────────┐
▼ ▼ ▼
AMI Instance Type User Data


IAM Role

┌─────────┼─────────┐
▼ ▼ ▼
S3 RDS CloudWatch

这张图可以解释本章绝大多数核心知识。


12.1-一次-EC2-创建过程

假设 GlobalShop 新建 Product Server。

第一步:选择 Region、Tokyo、ap-northeast-1。

第二步:选择 AMI、Amazon Linux + GlobalShop Application。

第三步:选择 Instance Type、General Purpose。

第四步:配置 Storage、EBS。

第五步:配置 Network、VPC / Subnet。

第六步:配置 Security Group。

第七步:绑定 IAM Role。

第八步:

配置 User Data。

然后:

Launch

pending

running

这就得到一台实际的:EC2 Instance。


12.2-从一台-EC2-到生产系统

学习 EC2 最容易犯的错误是:

学完以后脑子里只有“一台云服务器”。

真正 AWS 架构应该继续往前走:

Single EC2


Single Point of Failure


Multiple EC2


Multi-AZ


Load Balancer


Auto Scaling


CloudWatch Metrics

最终才形成:Scalable、Elastic、Highly Available。

的计算层。


本篇概述

  • 本篇梳理了EC2-Shared-Responsibility相关的核心知识、适用场景与判断要点。
  • 本篇梳理了Elastic-Beanstalk相关的核心知识、适用场景与判断要点。
  • 本篇梳理了本章最重要的-GlobalShop-架构相关的核心知识、适用场景与判断要点。

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