Amazon SAA-C03: 存储与数据生命周期 — 学习指南

属于 AWS SAA-C03 — 完整学习指南. 使用经过验证的答案练习: Amazon 考试中心, 或参加限时模拟考试: ExamRoll.io.

S3 存储类与成本/延迟谱系

S3 存储类存在于一个权衡谱系上,需要在检索延迟、最短存储期限、每 GB 检索费用与每 GB 存储成本之间做出选择。正确选择是对象存储成本优化的最重要手段。

存储类使用场景最短期限首字节延迟可用性 SLA
S3 Standard热点、不可预测的访问毫秒99.99%
S3 Intelligent-Tiering未知或变化的模式毫秒99.9%
S3 Standard-IA不频繁,但需即时访问30 天毫秒99.9%
S3 One Zone-IA可再生的、不频繁的30 天毫秒99.5%
S3 Glacier Instant Retrieval归档,需要毫秒级访问90 天毫秒99.9%
S3 Glacier Flexible Retrieval归档,分钟到小时90 天1 分钟 – 12 小时99.99%
S3 Glacier Deep Archive长期合规性180 天12–48 小时99.99%

S3 Standard 是默认选项:跨越三个或更多可用区 (AZ) 提供 11 个 9 的持久性、毫秒级延迟、无检索费用,但每 GB 价格最高。Standard-IAOne Zone-IA 将存储成本降低约 40–50%,但增加了每 GB 的检索费用、30 天的最短计费期限以及 128 KB 的最小对象大小(较小的对象会按 128 KB 计费,这会侵蚀节省的成本)。One Zone-IA 通过在单个 AZ 中存储来进一步降低成本——仅适用于可再生的次要副本,且单个 AZ 的丢失是可接受的场景。

S3 Intelligent-Tiering 是当访问模式未知、不可预测或在大型数据集中不断变化时的正确选择。它会根据观察到的访问情况,在频繁访问、不频繁访问、存档即时、存档和深度存档层之间自动迁移对象,并收取少量按对象的监控费用。由于在频繁访问层和不频繁访问层之间没有检索费用,也没有最短存储期限,因此对于对象大小 ≥128 KB 的数据湖和混合工作负载而言,它是最安全的选择。当你已经知道对象将永久保持热点(会产生额外的监控成本)或将永久冷藏十年(Deep Archive 便宜得多)时,它就是错误的选择。

Glacier Instant Retrieval 为每季度或更少访问一次的数据提供归档价格下的毫秒级访问——例如医疗影像、或在需要时必须立即生成的合规性 PDF。Glacier Flexible Retrieval 提供分钟到小时级别的检索。Glacier Deep Archive 是 AWS 中最便宜的层,大约为每月 1 美元/TB,标准检索时间为 12 小时(批量检索为 48 小时),并有 180 天的最短存储期限——是满足 7-10 年法规保留要求和磁带替换场景的正确答案。

两个主要的成本陷阱是两种截然相反的错误。为长期不读的数据选择 Standard 会烧钱,因为 Standard 没有冷存储的价格优惠——一个在 Standard 中存放数年的 5 TB 数据集的成本,是同样数据存放在 Deep Archive 中的数倍。相反,将全新的对象直接存入 Standard-IA 或 Glacier 也是一个陷阱,因为当对象仍然是热点时,30/90/180 天的最短存储费用加上检索费用会超过节省的成本。Glacier Flexible 或 Deep Archive 也完全不兼容任何期望同步读取的工作负载——等待 HTTP GET 响应的用户无法容忍分钟到 12 小时的检索 SLA。Glacier Instant Retrieval 是唯一兼容即时访问的 Glacier 层。

生命周期策略与版本处理

生命周期配置是附加到存储桶的声明性 JSON/YAML,它根据对象的存在时间、标签或前缀来转换或过期对象。转换操作每天评估一次,并且仅在达到指定的存在时间后才会触发——一个 Days: 30 的转换意味着前 30 天适用 Standard 费率。转换必须向更冷的层级逐步移动,并且小于 128 KB 的对象不会从 Standard 转换到 IA,因为单个对象的开销会超过节省的成本;应首先通过 tar/zip 或 S3 Batch Operations 合并小对象。

一个典型策略的场景:工作负载在前 30 天是热点,之后变冷,但整个生命周期都需要即时访问,保留四年,并包含必要的清理措施:

Rules:
  - ID: archive-and-clean
    Status: Enabled
    Transitions:
      - Days: 30
        StorageClass: STANDARD_IA
      - Days: 180
        StorageClass: DEEP_ARCHIVE
    NoncurrentVersionTransitions:
      - NoncurrentDays: 30
        StorageClass: GLACIER
    NoncurrentVersionExpiration:
      NoncurrentDays: 365
    Expiration:
      Days: 1460
    AbortIncompleteMultipartUpload:
      DaysAfterInitiation: 7

一个常见的版本控制陷阱:在启用了版本控制的存储桶上,一个用于使当前对象过期的生命周期规则,仅仅是插入一个删除标记;之前的版本会悄无声息地累积并继续产生费用。非当前版本需要它们自己明确的 NoncurrentVersionTransitionsNoncurrentVersionExpiration 规则。同样,务必包含 AbortIncompleteMultipartUpload——因为被遗弃的分段上传部件在控制台列表中不可见,并且会无限期地产生存储费用。

对于混合模式——例如,物联网遥测数据在第一个月用于机器学习训练而成为热点,之后一年内按季度查询,最后进行归档——正确的答案是在第一年使用 Intelligent-Tiering(让该存储类在训练高峰和空闲时段之间自动优化),然后在第 365 天通过计划任务转换到 Deep Archive。

版本控制、MFA 删除和对象锁定

版本控制一旦启用,就只能被暂停,而不能被关闭。每次 PUT 操作都会创建一个新的版本 ID;DELETE 操作会插入一个删除标记,而不是真正移除数据。版本控制可以防止意外覆盖,但它不是不变性:任何拥有 s3:DeleteObjectVersion 权限的主体都可以永久删除一个特定的版本。MFA 删除增加了一项要求,即根账户必须提供 MFA 令牌才能永久删除版本或更改版本控制状态——这弥补了高价值存储桶意外删除的风险敞口,但仍然无法阻止授权的行为者销毁数据。

真正的不可变性需要 S3 对象锁定,它要求启用版本控制,并且通常必须在存储桶创建时启用。它有两种经常被混淆的模式:

模式谁可以缩短/移除保留期?使用场景
监管 (Governance)拥有 s3:BypassGovernanceRetention 权限的用户内部策略,防止意外删除
合规 (Compliance)任何人都不能,包括根账户,直到保留期结束法规要求的 WORM (SEC 17a-4, FINRA)

保留期可以按对象应用 (Retain-Until-Date),也可以通过依法保留 (Legal Hold) 应用,后者没有到期时间。对于需要热存储一年、归档九年且十年内不得删除的会计记录,正确的模式是使用合规模式下的对象锁定,设置十年保留期,并结合在第 365 天转换到 Deep Archive 的生命周期策略。对于法律强制要求,监管模式不是一个可接受的替代方案——监管机构不会接受“某个有权限的人本可以删除它”作为不可变性的证明。

要通过单个作业为现有的 PDF 文档集应用保留期,请使用由 S3 Inventory 清单驱动的 S3 批量操作。对于跨数十亿个键的大规模变更——如设置保留期、打标签、PUT-copy 重新加密、Lambda 调用——批量操作是托管的解决方案;手写的迭代脚本不是正确的模式。

加密:SSE-S3、SSE-KMS 和存储桶密钥

每个存储桶都有默认加密。SSE-S3 (AES-256,由 S3 托管密钥) 是免费的,且无需密钥管理。SSE-KMS 使用 KMS 客户主密钥,从而可以实现基于每个密钥的 CloudTrail 审计跟踪、基于 IAM 的密钥访问策略以及密钥轮换控制——但代价是 KMS API 的费用,更关键的是,KMS 请求限制可能会成为高吞吐量读取工作负载的瓶颈。仅当您确实需要这些控制时(如法规认证、职责分离、跨账户密钥共享),才选择 SSE-KMS。当 SSE-S3 已经满足要求时,为了“安全起见”而默认使用 SSE-KMS 会增加不必要的成本和复杂性。

S3 存储桶密钥解决了 SSE-KMS 的请求成本问题。S3 从 CMK 生成一个短暂的存储桶级别密钥,并在本地派生每个对象的数据密钥,从而避免了对每个对象的 KMS GenerateDataKey/Decrypt 调用,可将 KMS 请求成本降低高达 99%:

"ServerSideEncryptionConfiguration": {
  "Rules": [{
    "ApplyServerSideEncryptionByDefault": {
      "SSEAlgorithm": "aws:kms",
      "KMSMasterKeyID": "arn:aws:kms:..."
    },
    "BucketKeyEnabled": true
  }]
}

当要求强制使用 KMS 时,为了“避免 KMS 成本”而切换到 SSE-S3 是错误的变通方法——存储桶密钥可以在不放弃 KMS 的情况下同时满足合规性和成本目标。

启用存储桶默认加密可确保所有未来的上传都被加密(未加密的 PUT 请求会被透明地加密)。要直接拒绝未加密的 PUT 请求,请拒绝缺少以下标头的写入操作:

{
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:PutObject",
  "Resource": "arn:aws:s3:::my-bucket/*",
  "Condition": {
    "StringNotEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
    }
  }
}

默认加密对现有的未加密对象不起作用。要重新加密它们,可通过运行一个原地覆盖每个键的 Copy 作业的 S3 Inventory + S3 批量操作来实现——这是标准的批量重新加密模式。

临时的客户端加密不如默认加密加 KMS 的方案:它将密钥管理分散到各个应用程序团队,无法通过 CloudTrail KMS 事件进行集中审计,也无法使用存储桶密钥。

跨区域复制和多区域 KMS 密钥

跨区域复制 (Cross-Region Replication, CRR) 会异步地将对象复制到不同区域的存储桶中,以满足合规性、灾难恢复 (DR) 或低延迟的需求。同区域复制 (Same-Region Replication, SRR) 用于实现合规性隔离、日志聚合和跨账户复制。两者都要求在源和目标存储桶上启用版本控制,并需要一个由源存储桶代入的 IAM 角色。每当存储桶必须镜像到另一个区域时,CRR 是低工作量的解决方案——而编写 aws s3 sync 脚本、在 ObjectCreated 事件上连接 Lambda 或运行计划的批量复制会引入运维开销、竞态条件和静默失败。默认情况下,CRR 和 SRR 都不会复制现有对象;请使用 S3 批量复制进行回填。

加密的交互是设计中常见的失败点:

管理两个独立 CMK 的历史遗留问题已通过 AWS KMS 多区域密钥解决,它可以在多个区域中呈现相同的密钥材料和密钥 ID(带有区域前缀)。这样,复制的对象就可以在目标区域解密,无需跨区域的 KMS 调用,也无需重新包装数据密钥。这是加密的、复制的存储桶在区域故障转移中必须保持可用的标准模式。

在使用客户管理的 KMS 密钥进行跨账户快照和对象共享时,要求目标账户的主体通过密钥策略持有源密钥的 kms:Decryptkms:CreateGrantkms:DescribeKeykms:ReEncrypt* 权限,并拥有匹配的 IAM 权限。AWS 托管的密钥(例如 aws/ebsaws/s3)不能跨账户共享,因此客户管理的密钥对于跨账户工作流是强制性的。

阻止公有访问与限制通过 CloudFront 访问

S3 阻止公有访问 (BPA) 有四项设置——阻止新的公有 ACL、忽略现有的公有 ACL、阻止新的公有存储桶策略、限制公有存储桶策略——这些设置可按存储桶配置,更重要的是,可以在账户级别进行配置。账户级别的 BPA 会覆盖任何授予公有访问权限的存储桶策略,是实现“此账户中没有任何对象可以是公有的”这一目标的正确控制措施。仅靠存储桶级别的策略是脆弱的:新创建的存储桶可能没有配置策略;而账户级别的 BPA 采用故障关闭(fail-closed)模式,更为安全。

为防止成员账户中的管理员禁用 BPA,可以在 Organizations OU 或根级别上叠加一个服务控制策略 (Service Control Policy):

{
  "Effect": "Deny",
  "Action": "s3:PutAccountPublicAccessBlock",
  "Resource": "*",
  "Condition": {
    "Bool": { "aws:PrincipalIsAWSService": "false" }
  }
}

若要仅通过 CloudFront 提供 S3 内容,应将 源访问控制 (Origin Access Control, OAC)——替代传统 OAI 的现代方案——附加到分配上,并在存储桶策略中基于该分配的 ARN 进行限制:

{
  "Effect": "Allow",
  "Principal": { "Service": "cloudfront.amazonaws.com" },
  "Action": "s3:GetObject",
  "Resource": "arn:aws:s3:::my-bucket/*",
  "Condition": {
    "StringEquals": {
      "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/E123"
    }
  }
}

存储桶上的 BPA 保持启用状态。对于需要由特定用户对私有对象进行限时访问(如设置上传/下载过期时间)的场景,可以生成一个预签名 URL,其嵌入的签名会继承签名主体的权限。

私有网络路径:网关终端节点

VPC 内的 EC2 到 S3 流量并会自动使用 AWS 私有骨干网络。若不进行配置,S3 API 调用会解析到公有终端节点,并通过互联网网关或 NAT 网关传输,这会产生 NAT 数据处理费用,并将流量暴露在互联网上。S3 的网关 VPC 终端节点(DynamoDB 也支持)是免费的,它会作为前缀列表路由添加到指定的路由表中,并将流量保留在 AWS 网络内。S3 也存在接口终端节点 (PrivateLink),但它们是收费的,当访问通过 Direct Connect 来自本地环境时非常有用。将终端节点与存储桶策略的 aws:SourceVpce 条件配对使用,可以强制存储桶只能从经批准的 VPC 终端节点访问——这是受监管工作负载的标准模式。

使用 Object Lambda 进行动态转换

S3 Object Lambda 将一个 Lambda 函数插入到 GET/HEAD/LIST 请求路径中,因此返回给调用者的对象在读取时被转换。这避免了为每个变体(如脱敏版、调整大小版、重设格式版)复制数据,并在底层存储桶中保留了单一事实来源。典型用例包括:为分析师进行 PII 脱敏处理,同时为审计员提供完整数据;为不同用户添加图片水印;为旧版客户端进行 XML 到 JSON 的转换。IAM 和存储桶策略仍然控制着对底层对象的访问;Lambda 只能看到其执行角色所允许的内容。

事件通知

S3 会将事件(s3:ObjectCreated:*s3:ObjectRemoved:*、复制和生命周期事件)发送到 Lambda、SQS、SNS 或 EventBridge。当您需要多个目标、基于对象元数据进行筛选或进行跨账户路由时,首选 EventBridge;对于单目标管道(如上传时生成缩略图),直接通知更简单、更便宜。通知是至少一次送达,因此消费者必须是幂等的。

吞吐量优化:分段上传与传输加速

对于超过 100 MB 的对象,分段上传是最佳实践;对于超过 5 GB 的对象,分段上传则是强制性的。分段可以并行上传,失败的分段可以独立重试,吞吐量随并发度的增加而扩展。字节范围 GET 请求在下载时提供了同等的并行性。如前所述,务必附加一条 AbortIncompleteMultipartUpload 生命周期规则,以避免为孤立的分段付费。

S3 Transfer Acceleration 通过最近的 CloudFront 边缘节点,利用 AWS 骨干网来路由上传流量——适用于全球分布的客户端向单个存储桶上传数据。对于下载,则使用 CloudFront 作为 S3 的前端,在边缘进行缓存。Transfer Acceleration 面向上传;CloudFront 面向下载;它们解决的是相关但不同的问题。

EBS:卷类型、加密和快照

EBS 卷是可用区(AZ)范围的块设备,挂载到单个 EC2 实例。gp3 是默认的通用型 SSD;其相对于 gp2 的关键优势在于,IOPS(最高 16,000)和吞吐量(最高 1,000 MiB/s)的预置与容量独立,从而消除了 gp2 中为了达到性能目标而过度预置存储的反模式。io2 Block Express 可提供高达 256,000 的 IOPS 和亚毫秒级延迟,适用于对延迟敏感的数据库。st1sc1 由 HDD 支持,用于面向吞吐量的顺序和冷工作负载。io1/io2 上的多重挂载(Multi-Attach)功能存在,但仅限于同一可用区内运行集群感知文件系统的 16 个实例——这是一个狭窄的特例,而非通用的“共享 EBS”模式。试图将 EBS 广泛挂载到多个实例(例如,挂载到负载均衡器后面的实例)是一种概念性错误,这恰恰会导致“刷新后一些文档可见,另一些则不可见”的症状,因为每个卷都是一个私有的块设备。

EBS 卷使用 KMS 包装的数据密钥,通过 AES-256 进行静态加密。加密是透明的——没有性能损失,也无需更改应用程序。一旦卷被加密,其衍生的快照和卷也会被加密;你无法原地解密。在每个区域启用默认 EBS 加密,这样无论开发人员是否记得,每个新创建的卷和快照都会被加密:

aws ec2 enable-ebs-encryption-by-default --region us-east-1
aws ec2 modify-ebs-default-kms-key-id \
  --kms-key-id arn:aws:kms:us-east-1:111122223333:key/abcd-...

现有的未加密卷不会被追溯加密——修复措施需要先创建快照,再复制快照并加密,最后从加密的快照创建新卷。

快照是存储在 S3 管理的基础设施上的增量块级备份——但它们不是免费的(你需要为保留的已更改数据块付费),当源卷被删除时,它们不会消失,当引用它们的 AMI 被注销时,它们也不会被移除。通过 aws ec2 modify-snapshot-tier、Amazon Data Lifecycle Manager (DLM) 或 AWS Backup,可以将快照老化到 EBS Snapshots Archive 层(便宜 75%,恢复时间 24-72 小时)。快照快速恢复 (FSR) 会在特定的可用区中预热快照,以便从该快照启动的实例能立即提供完整性能——为需要处理快速横向扩展的自动伸缩组背后的 AMI 启用此功能。

回收站 (Recycle Bin) 会将删除的 EBS 快照和 AMI 保留在一个可恢复的时间窗口内(1 天到 1 年)。如果没有它,快照删除是即时且永久的:

aws rbin create-rule \
  --retention-period RetentionPeriodValue=30,RetentionPeriodUnit=DAYS \
  --resource-type EBS_SNAPSHOT \
  --description "30-day snapshot recovery"

仅仅依靠每日的 EBS 快照来进行长期合规性保留是一个常见的架构错误——快照的定价更接近温存储,并且需要明确的归档转换操作。

Amazon EFS:适用于 Linux 集群的共享 POSIX 文件系统

EFS 是一个完全托管、弹性、符合 POSIX 标准的 NFSv4.1 文件系统,可从一个区域内多个可用区的数千个 EC2、ECS、EKS 或 Lambda 客户端同时挂载,也可通过 Direct Connect 或 VPN 从本地主机挂载。其决定性属性是,所有客户端能同时看到完全相同的文件系统,具有相同的文件句柄和字节级语义。因此,当负载均衡器后面的 Linux 集群必须共享一组通用文件时——例如用户上传内容、配置文件、共享主目录——EFS 是正确的解决方案。

挂载目标存在于您配置的每个可用区的子网中。amazon-efs-utils 辅助工具可以启用传输中 TLS 加密和 IAM 挂载授权:

sudo mount -t efs -o tls,iam fs-0123456789abcdef0:/ /mnt/shared

EFS 存储类跨越两个维度。生命周期管理会将 7-90 天未被访问的文件从标准(Standard)分层到不频繁访问(Infrequent Access),并可选地归档到 Archive 层,最高可节省 92% 的存储成本;智能分层(Intelligent-Tiering)会在文件被访问时将其移回。**单区(One Zone)**存储类将数据存储在单个可用区,成本降低约 47%——适用于开发/测试或可重现的数据,但绝不适用于在可用区故障期间数据丢失不可接受的场景。对于一个已在使用 EFS Standard-IA 的工作负载,一个成本优化措施是在不更改任何应用程序的情况下切换到 EFS One Zone-IA。

性能有两个独立的控制选项。性能模式(创建时设置):通用模式(General Purpose)延迟最低,适用于元数据密集型的 Web 服务;最大 I/O(Max I/O)是一个已被弹性模式取代的旧选项。吞吐量模式突发模式(Bursting)随容量扩展(基准速率为每 GB 50 KB/s,低于基准时累积突发积分),预置模式(Provisioned)为固定的 MB/s 付费,与容量无关,而弹性模式(Elastic)——当前的默认选项——可自动扩展至 10+ GB/s,无需容量规划。一个小型文件系统在持续负载下会耗尽突发积分,并被限制到一个很低的基准速率,因此具有小容量但 I/O 密集型的工作负载必须使用弹性或预置模式。

EFS 不能替代高 IOPS 的块存储。每一次 EFS I/O 都是通过网络进行的 NFS RPC 调用,因此单写入者、亚毫秒级、事务日志类型的工作负载应使用 EBS io2 Block Express——单个卷即可提供 256,000 IOPS 和亚毫秒级延迟,这是 EFS 在单次操作上无法比拟的。与 Deep Archive 相比,EFS 用于存储冷数据的价格也极其昂贵;“因为方便”而将合规性数据保留在 EFS 上是站不住脚的。

FSx: Windows、Lustre、ONTAP、OpenZFS

FSx 是一个托管文件系统系列,可根据协议和工作负载进行选择:

服务协议最适用于
FSx for Windows File ServerSMB、NTFS ACLs、AD 集成Windows 应用程序、主目录、DFS Namespaces
FSx for LustrePOSIX 并行HPC、机器学习训练、与 S3 关联的暂存空间
FSx for NetApp ONTAPNFS + SMB + iSCSI 多协议企业级 NAS、SnapMirror、重复数据删除、混合云
FSx for OpenZFSNFS需要 ZFS 功能的低延迟 Linux

FSx for Windows File Server 提供原生的 SMB 2.0/3.1.1,支持 NTFS ACLs、DFS Namespaces、卷影副本以及通过 Active Directory 实现的 Kerberos。多可用区部署会在一个可用区部署一个活动文件服务器,并在另一个可用区部署一个同步复制的备用服务器,同时提供一个单一的故障转移 DNS 名称。AD 集成不是可选的:FSx 必须加入 AWS Managed Microsoft AD 或一个可访问的自管理 AD,客户端以域用户身份根据域 SID 进行身份验证。跳过 AD 集成,或让客户端指向一个没有跨林信任的非信任林中的文件系统,会导致典型的“共享可见但访问被拒绝”症状。对于 Windows 文件共享的直接迁移(lift-and-shift),FSx for Windows 是理想的目标。

FSx for Lustre 是一个并行的 POSIX 文件系统,适用于 HPC、机器学习训练、EDA 和基因组学等场景——支持数千个客户端、数百 GB/s 的吞吐量和亚毫秒级的元数据延迟。其关键的 AWS 功能是与 S3 的数据存储库关联:对象键在 Lustre 命名空间中显示为文件,并在首次访问时延迟加载(或通过 hsm_restore 预加载);新建/修改的文件会按计划或按需导回到 S3。典型的 HPC 模式是:

  1. 将本地数据集复制到 S3(通过 DataSync 或 Storage Gateway)。
  2. 创建与该存储桶关联的 Lustre 文件系统。
  3. 在所有 Spot 工作实例上挂载;以线路速率读取输入、写入输出。
  4. 将结果导出到 S3,S3 作为持久的长期存储库。
  5. 作业结束时删除 Lustre 文件系统。

Lustre 的*暂存(Scratch)*部署模式没有复制,硬件故障时会丢失数据——这是最便宜、最快的方式,适用于临时作业数据。*持久(Persistent)*部署模式在一个可用区内进行复制,以获得更高的持久性。吞吐量按 MB/s 每 TiB(50/125/250/500/1000)进行配置,从而将容量与性能解耦。

FSx for NetApp ONTAP 是多协议解决方案:在同一数据上同时支持 NFS、SMB 和 iSCSI,并提供快照、SnapMirror 复制、FlexClones 和重复数据删除功能。当需要整合混合的 Linux NFS 和 Windows SMB 共享,并需要具有多可用区冗余的跨协议访问时,或者从本地 NetApp 迁移时,应选择 ONTAP。FSx for OpenZFS 满足了需要通过 NFS 使用 ZFS 功能(如快照、克隆)的 Linux 工作负载的特定需求。不要将 ONTAP 的多协议优势与其他变体混淆。

选择不当会导致明显的失败:将 EBS 用于共享工作负载、将 EFS 用于 Windows SMB 共享、或将 Lustre 用于需要 AD 集成的 Windows 共享都是不合适的选择——首先要匹配协议和访问模式。

Storage Gateway: 混合云访问

Storage Gateway 呈现云存储,使其看起来像本地存储一样。这与 DataSync 不同,后者是移动数据。

网关类型协议后端存储使用场景
S3 File GatewayNFS、SMBS3 对象将存储桶呈现为文件共享;为热点对象提供本地缓存
FSx File GatewaySMBFSx for WindowsFSx 共享的低延迟本地缓存(适用于分支机构)
Volume Gateway (Cached)iSCSIS3 (EBS 快照)主数据在 S3 中,热点数据集在本地缓存
Volume Gateway (Stored)iSCSI本地磁盘 + 异步 S3 备份本地保留完整副本,异步备份到云端
Tape GatewayiSCSI VTLS3/Glacier替代物理磁带库

对于一个已将其媒体库迁移到 S3 但仍需要在本地进行低延迟读取的渲染应用程序,S3 File Gateway 是合适的选择——提供 NFS/SMB 访问、本地缓存,冷对象按需从 S3 获取。FSx File Gateway 是分支机构的解决方案:为一个集中的云端 FSx 共享提供局域网速度的 SMB 缓存,它并不是用于 EC2 实例之间 共享访问的解决方案(EC2 实例应直接挂载 FSx)。当工作负载使用块存储 iSCSI 而不是文件语义时,应使用 Volume Gateway。Tape Gateway 用于在现有备份软件下替代物理磁带库。

数据传输与迁移

AWS DataSync 是一种基于代理的在线迁移服务,用于将 NFS、SMB、HDFS 和对象存储迁移到 S3、EFS 或 FSx——比开源工具快高达 10 倍,并提供加密、完整性验证、调度以及保留 POSIX 元数据和 NTFS ACLs 的功能。对于包含数百万小文件和深层目录结构的大规模 SMB 迁移,开销最小的解决方案是使用 DataSync 迁移到 FSx for Windows:SMB 协议得以保留,ACLs/时间戳保持不变,通过并行传输处理小文件吞吐量,且无需更改应用程序。将此类数据集直接迁移到 S3 是一个陷阱——对象存储在处理深层前缀中的小文件列表时性能不佳,并且 SMB 客户端无法挂载存储桶。

AWS Snow Family 提供用于离线传输的物理设备:Snowcone(高达 8 TB,边缘加固型)、Snowball Edge(高达约 80 TB 可用空间,带计算选项)和 Snowmobile(EB 级别)。经验法则是:如果网络传输需要超过一周时间,那么 Snowball 更便宜、更快速。

AWS Transfer Family 提供由 S3 或 EFS 支持的 SFTP、FTPS、FTP 和 AS2 协议——当外部合作伙伴必须继续使用标准文件传输协议时,这是正确的解决方案。

AWS Backup、跨区域复制和文件库锁定

AWS Backup 集中管理 EBS、EFS、FSx、RDS、DynamoDB、S3 等服务的策略。备份计划定义了计划、暖存储保留期、到冷存储的转换以及跨区域/跨账户的复制操作:

BackupPlan:
  Rules:
    - RuleName: DailyWithDRCopy
      TargetBackupVault: prod-vault
      ScheduleExpression: "cron(0 5 * * ? *)"
      Lifecycle:
        MoveToColdStorageAfterDays: 30
        DeleteAfterDays: 2555        # 7 years
      CopyActions:
        - DestinationBackupVaultArn: arn:aws:backup:eu-west-1:...:backup-vault:dr-vault
          Lifecycle:
            MoveToColdStorageAfterDays: 30
            DeleteAfterDays: 2555

到冷存储的转换要求至少 90 天的暖存储保留期,外加至少 90 天的冷存储期;配置错误的生命周期将被拒绝。对于真正的多年法规保留需求,请与 AWS Backup Vault Lock (WORM) 配合使用,它能防止(甚至)管理员缩短保留期——从而满足 SEC 17a-4 及类似法规的要求。跨区域复制解决了区域性灾难恢复 (DR) 的问题;跨账户复制通过将备份与生产账户的爆炸半径隔离,解决了勒索软件和内部威胁的场景。

选择速查表

需求正确选择
一个区域内跨 EC2/EKS 共享的 Linux POSIXEFS
多个实例上持有“相同”数据的独立 EBS 卷错误 — 应使用 EFS
具有域 ACL 和高可用性 (HA) 的 Windows SMB 共享FSx for Windows Multi-AZ + AD
10万+ IOPS、单写入、亚毫秒级延迟EBS io2 Block Express
由 S3 数据集支持的 HPC 高速缓存FSx for Lustre linked to S3
单个数据集上支持多协议 NFS+SMB+iSCSIFSx for NetApp ONTAP
本地服务器需要缓存访问云端 SMB 共享FSx File Gateway
未知/可变的 S3 访问模式,对象 ≥128 KBS3 Intelligent-Tiering
S3 访问不频繁,但必须即时S3 Glacier Instant Retrieval
7-10 年合规存档,可接受数小时的检索时间S3 Glacier Deep Archive + Object Lock Compliance
使用 KMS 的跨区域 S3 复制CRR + KMS multi-Region keys
高吞吐量 SSE-KMS 读取启用 S3 Bucket Keys
批量重新加密现有对象S3 Inventory → S3 Batch Operations Copy
在整个组织中防止 S3 公开暴露账户级 BPA + 拒绝 s3:PutAccountPublicAccessBlock 的 SCP

无服务器与事件驱动架构 · 所有领域 · 数据传输与迁移

练习这些题目 → · 在 ExamRoll.io 上限时练习 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

通过考试 →

浏览 Amazon →

Related guides

一体化访问

一次订阅。所有考试。

所有计划均可无限制搜索答案、进行模拟测试、获取AI解释以及访问完整的资源库 — 支持20多种语言。

每月
24.87
Just €0.83/day
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

最具价值
12个月
179.87
Just €0.49/daySave 40%
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

✓ 包含免费计划 · ✓ 随时取消 · ✓ 所有计划均解锁完整产品