EC2
Amazon Elastic Compute Cloud,虚拟机服务。按需启动 Linux/Windows 实例,支持多种规格(Instance Type)。常用于部署应用服务器、代理节点等。
S3
Amazon Simple Storage Service,对象存储服务。用于存储文件、静态资源、备份等,支持生命周期策略和版本控制。
Cognito
Cognito /kɒɡˈniːtoʊ/
Amazon Cognito,用户身份和访问管理服务。提供用户注册、登录、多因素认证(MFA)、OAuth 2.0 / OpenID Connect 集成等功能。分为两个核心概念:
- User Pool:管理用户的注册、登录、密码策略、邮件/短信验证
- Identity Pool:为已认证用户颁发临时 AWS 凭证,授权访问其他 AWS 服务(如 S3、DynamoDB)
Cloud Map
AWS Cloud Map,服务发现(Service Discovery)服务。允许为应用中的任何资源(微服务、数据库、队列、API 端点等)注册自定义名称,并通过 DNS 查询或 API 调用动态解析资源的当前位置(IP 地址、端口、URL 等)。
核心概念:
- Namespace:命名空间,资源名称的顶层容器,对应一个 DNS 域(如
internal.example.com)或 HTTP 命名空间 - Service:服务定义,描述一类资源的注册规则和健康检查策略
- Service Instance:实例,具体的资源条目,包含 IP、端口、自定义属性等
主要特性:
- 支持 DNS 和 HTTP API 两种发现方式
- 内置健康检查(Route 53 健康检查 或 自定义健康检查),自动剔除不健康实例
- 与 ECS、EKS、Lambda 深度集成,容器启动/停止时自动注册/注销
- 支持自定义属性(key-value),客户端可按属性过滤实例
典型用场景:微服务架构中,服务间调用不硬编码 IP,而是通过 Cloud Map 查询目标服务的最新地址,实现服务的动态扩缩容和故障转移。
Route 53
Amazon Route 53,AWS 的 DNS(域名系统)服务。名字来源于 DNS 使用的标准端口号 53。
主要功能:
- 域名注册:直接在 AWS 购买和管理域名
- DNS 解析:将域名解析为 IP 地址,支持 A、AAAA、CNAME、MX、TXT 等记录类型
- 健康检查:定期探测端点可用性,配合路由策略自动切换流量
- 私有 DNS:在 VPC 内部创建私有 Hosted Zone,解析内网域名
路由策略:
- Simple:简单解析,单条记录
- Failover:主备切换,主节点不健康时自动切到备节点
- Latency:按延迟就近路由,将用户请求导向延迟最低的区域
- Geolocation:按用户地理位置路由
- Weighted:按权重分流,常用于灰度发布
- Multivalue Answer:返回多条记录并过滤不健康实例,类似简单负载均衡
Route 53 健康检查也被 Cloud Map 用于监控服务实例,不健康的实例会自动从 DNS 响应中剔除。
ECS
Amazon Elastic Container Service,容器编排服务。用于在 AWS 上运行和管理 Docker 容器,承担类似 Kubernetes 的调度角色。
两种启动模式:
- EC2 模式:容器运行在你自己管理的 EC2 实例上,对底层有完全控制权,适合需要自定义操作系统或特殊硬件的场景
- Fargate 模式:无服务器模式,AWS 负责底层机器,只需定义容器规格(CPU、内存),按实际使用量计费
核心概念:
- Cluster:集群,ECS 资源的逻辑边界
- Task Definition:任务定义,描述容器镜像、CPU/内存、环境变量、端口映射等配置,类似 docker-compose 文件
- Task:任务,Task Definition 的一次运行实例
- Service:服务,维持指定数量的 Task 持续运行,支持滚动更新和负载均衡集成
EKS
Amazon Elastic Kubernetes Service,托管 Kubernetes 服务。AWS 负责管理 Kubernetes 控制平面(Control Plane)的高可用和版本升级,用户只需管理工作节点(Worker Node)。
与 ECS 的区别:
- EKS 使用标准 Kubernetes API,可移植性更好,适合已有 K8s 经验的团队或需要跨云迁移的场景
- ECS 是 AWS 私有方案,与 AWS 生态集成更紧密,使用更简单
节点模式同样支持 EC2(自管节点)和 Fargate(无服务器)两种。
Lambda
AWS Lambda,无服务器(Serverless)计算服务。上传代码后,AWS 自动管理运行环境,按函数实际执行次数和执行时长计费,空闲时不产生费用。
主要特点:
- 事件驱动:由事件触发执行,支持 API Gateway、S3、DynamoDB、SQS、SNS、EventBridge 等多种触发源
- 自动扩缩容:并发请求增加时自动横向扩展,无需预置容量
- 短生命周期:单次执行最长 15 分钟,适合轻量任务,不适合长时间运行的进程
- 支持多种运行时:Node.js、Python、Java、Go、Ruby、.NET 等,也支持自定义容器镜像
典型使用场景:API 后端、定时任务、文件处理(S3 上传触发)、消息队列消费、事件响应等。
DynamoDB
DynamoDB /ˌdaɪnəmoʊ diː biː/(dye-nuh-moh-D-B)
Amazon DynamoDB,AWS 自研的全托管 NoSQL 数据库,支持键值(Key-Value)和文档(Document)两种数据模型。名字来源于 Dynamo,即 Amazon 内部 2007 年发表的分布式存储系统论文(Dynamo: Amazon’s Highly Available Key-value Store),DynamoDB 是这套设计思想的托管产品化实现。
核心概念:
- Table:表,数据存储的顶层容器,无固定 schema,每行(Item)可以有不同的属性
- Primary Key:主键,分两种模式:
- Partition Key(分区键):单一属性作为主键,决定数据分布到哪个物理分区
- Partition Key + Sort Key(分区键 + 排序键):复合主键,同一分区键下按排序键排序,支持范围查询
- Item:一行数据,类似关系型数据库的行,但每个 Item 的属性集合可以不同
- Attribute:属性,类似列,支持字符串、数字、二进制、集合、嵌套 Map/List 等类型
主要特性:
- 无服务器:不需要管理服务器或分片,容量按需自动扩缩
- 单位数毫秒延迟:适合高并发、低延迟的读写场景
- 两种容量模式:On-Demand(按实际读写请求计费)和 Provisioned(预置读写容量单位 RCU/WCU)
- Global Secondary Index (GSI) / Local Secondary Index (LSI):二级索引,支持除主键外的其他查询模式
- DynamoDB Streams:捕获表数据变更事件,可触发 Lambda 做异步处理
- 全球表(Global Tables):多区域多主复制,实现跨区域低延迟访问和灾备
与关系型数据库的区别:DynamoDB 不支持 JOIN 和复杂事务查询(虽然支持有限的事务操作 TransactWriteItems/TransactGetItems),设计时需要预先规划好访问模式(Access Pattern),通过冗余数据和索引换取查询性能,而不是像关系型数据库那样事后用 JOIN 拼接。
典型使用场景:高并发的用户会话存储、购物车、排行榜、IoT 设备状态、游戏状态存储等对延迟敏感、访问模式相对固定的场景。
维护记录
| 时间 | 修改内容 | 原因 |
|---|---|---|
| 2026-07-05 | 新增 DynamoDB 章节,含发音和核心概念说明 | 补充自研数据库服务介绍 |