开发者存储
发布: (2026年1月10日 GMT+8 19:42)
4 分钟阅读
原文: Dev.to
Source: Dev.to
模块目标
完成本模块后,学习者将能够:
- 从开发者的角度理解 AWS 存储服务
- 为不同的应用模式选择合适的存储选项
- 编程方式安全地使用 Amazon S3
- 为计算工作负载配置 EBS 和 EFS
- 应用 IAM 权限和加密
- 处理持久性、可用性和成本问题
为什么有多种存储服务?
不同的应用需要:
- 对象、文件、块存储的区别
- 高持久性 vs. 低延迟
- 共享访问 vs. 单实例访问
什么是 Amazon S3?
- 对象存储
- 几乎无限的扩展能力
- 11 9 的持久性
核心 S3 概念
- Bucket(存储桶)
- Object(对象)
- Key(键)
- 区域范围的存储桶
- 全局命名空间
S3 存储类别
🔑 存储类别影响成本,而不影响持久性。
S3 安全与访问控制
访问机制
- IAM 策略
- 存储桶策略
- ACL(遗留的,不推荐使用)
加密选项
- SSE‑S3
- SSE‑KMS
- 客户端加密
公共访问
- 阻止公共访问(默认 ON)
- 存储桶策略进行控制
S3 存储桶设置示例
目标
创建一个 S3 存储桶,启用版本控制和默认加密,上传示例对象,并附加 IAM 角色/策略。
步骤
-
创建一个 S3 存储桶。
-
启用 Versioning(版本控制)。
-
启用 Default encryption(默认加密)。
-
上传示例对象。
-
附加 IAM 角色/策略:
{ "Effect": "Allow", "Access": "bucket via AWS CLI or SDK" } -
使用 AWS CLI 或 SDK 验证访问。
验证
- 成功上传和下载对象。
- 未拥有相应权限时访问被拒绝。
常见开发者使用场景
- 静态网站托管
- 应用制品(artifact)
- 日志和备份
- 数据湖
事件驱动模式
- S3 → Lambda 触发器
- S3 → EventBridge
什么是 EBS?
为 EC2 提供块存储,一次只能挂载到一个实例。
关键 EBS 概念
- Volume(卷)
- Snapshot(快照)
- 可用区范围
使用场景
- EC2 上的数据库
- 引导卷
- 低延迟工作负载
实操实验 2:EBS 卷与 EC2
目标
将 EBS 卷挂载到 EC2 实例并进行挂载。
步骤
(在实验环境中执行的详细步骤。)
什么是 EFS?
托管的 NFS 文件系统,可在多个 EC2 实例之间共享,并自动扩展。
关键特性
- 多可用区(Multi‑AZ)
- POSIX 兼容
- 区域性服务
使用场景
- 共享应用数据
- 内容管理系统
- 微服务共享存储
🔑 EFS 支持多个 EC2 实例的并发访问。
成本驱动因素
- 存储容量
- 访问频率
- 数据传输
- API 请求(S3)
性能因素
- S3 前缀分布
- EBS 卷类型
- EFS 吞吐模式
其他 S3 主题
- 使用 S3 进行预签名 URL 上传
- 跟踪分段上传