测验:AWS 存储:20+ 题目! 你能在云端迷宫中找到出路吗?
created over 1 year ago
updated over 1 year ago
Quiz
(18) 由 AI 翻译,并已核对技术准确性。
准备好上云了吗?🤡
深入探索 AWS 存储服务!本测验将检验你对 S3、DynamoDB、Aurora、RDS、ElastiCache 等的了解。从最佳实践到隐藏坑点,我们一起踏遍云存储全景。
准备好展示你的云技术实力吧!🚀
最后验证时间:2026年5月8日。AWS 限制和定价变化迅速。
名称
S3 是什么意思?
S3 代表 Simple Storage Service 。它是一个可扩展的对象存储服务,旨在用于大规模数据存储。
AWS S3 提供多种存储类别:
Standard(标准):适用于频繁访问的数据
Infrequent Access (IA)(不常访问):对不常访问的数据成本更低
Glacier(冰川):长期、低成本的归档存储
每个类别都有不同的定价和访问特性,能够根据数据使用模式进行成本优化。
了解更多关于 S3 存储类别
服务器存储 v3
存储即服务
简单存储服务
时髦存储服务
简单同步存储
当 DynamoDB 被描述为“无模式”时,这意味着什么?
存储任意属性
动态分区键
列是无类型的
自动管理的 JSON 模式
依赖 RDS 提供模式支持
哪个 DynamoDB API 用于更新已有项的属性?
关键在于更新 ,而不是插入或 PUT。如果你要插入,可以使用 BatchWriteItem 或 TransactWriteItems。
虽然 BatchWriteItem 能处理多个操作,但仅限于 PUT 和 DELETE。TransactWriteItems 更强大,但对简单更新来说有点大材小用。
对于简单更新,UpdateItem 是最佳选择。它允许你 UPDATE,或修改现有项中的一个或多个属性。
UpdateItem 操作每次修改一个项。对于大规模回填或批量更新,通常会调度大量 UpdateItem 调用,或使用更大的工作流,例如 PartiQL 批处理执行、Step Functions、Glue、EMR,或自定义工作进程。
UpdateItem 操作:
更新已有项的属性。
向已有项添加新属性。
从已有项中移除属性。
在项存在或满足特定条件时有条件地执行更新。
DynamoDB UpdateItem
PutItem
BatchUpdateItem
BatchWriteItem
UpdateItem
BatchUpsertItem
TransactWriteItems
下面哪个 AWS 服务是专为全文搜索和搜索分析而构建的?
OpenSearch 是 AWS 提供的托管搜索、日志分析和全文搜索工作负载服务。
其他选项虽然都有用,但它们并不是列表中专门的搜索引擎:
ElastiCache:主要是内存缓存。当前的 ElastiCache for Valkey 包含对已索引内存数据的搜索命令,因此已不能再说整个服务没有内置搜索功能。
Neptune:图数据库;可与 OpenSearch 集成实现全文搜索。
Redshift:用于 SQL 分析的数据仓库。
DocumentDB:文档数据库,在受支持的版本中提供 MongoDB 兼容的文本搜索。
ElastiCache
OpenSearch
Neptune
Redshift
DocumentDB
可用区(AZ)是位于同一区域内 的独立数据中心。RDS 多可用区部署会将自动故障转移提供给位于相邻 AZ 的备用副本。
Multi-AZ 部署:
提供自动故障转移
提升数据库可用性
创建同步的备用副本
在基础设施故障时将停机时间降至最低
不要把 Multi-AZ 部署与用于读取扩展的只读副本混淆。
降低存储成本
解决出站流量问题
提供自动故障转移
提升读取性能
改善地理分布流量
👋 我希望你到目前为止玩得开心!
来点棘手的吧……
哪个 AWS 服务提供托管的 WebSocket API,AWS 拥有客户端连接并将消息路由到集成?
API Gateway 支持双向 WebSocket API,但实现由 API Gateway 托管,而不是直接映射到您自己的服务器进程。
API Gateway 维护客户端连接并将消息路由到 Lambda、HTTP 端点或其他集成。可以通过 API Gateway Management API 将消息发送回已连接的客户端。
其他服务对 WebSocket 更友好:
Lightsail:非常适合简单的 WebSocket 部署 👌
AppSync:使用 WebSocket 实现托管的 GraphQL 订阅
EC2:经典的“想干嘛就干嘛” WebSocket 选项
EKS:适合运行可扩展的 WebSocket 集群
小技巧:如果需要原始的 WebSocket 能力,还是使用计算服务吧!
API Gateway
EKS
Lightsail
AppSync
EC2
几乎所有系统中,采用“最小权限”设计是强化安全并面向未来的关键。试图给已有系统加锁,难度堪比把整栋办公楼搬到新地基。
S3 存储桶也不例外。要落实最小权限原则,先从没有权限开始,只授予必要的访问。使用 IAM 角色和策略来控制访问,并定期审计存储桶权限。
安全最佳实践:
应用最小权限原则
从无权限开始
只授予必要访问
使用 IAM 角色和策略
定期审计存储桶权限
避免过于宽松的设置,以免泄露敏感数据。
S3 安全最佳实践
将新存储桶设为公开
将 S3 本地化以完全控制 ACL
将数据迁移到私有区块链
使用最小权限原则
使用策略通配符以 确保必要访问
Aurora Serverless 的关键特性是什么?
始终比预置实例更便宜
自动扩展计算容量
提供无限存储
消除数据库管理
再来一个 DynamoDB 批处理问题!
使用单个 DynamoDB BatchGetItem 请求,最多可以检索多少项?
DynamoDB SDK 允许在单个 BatchGetItem 请求中检索最多 100 项。这比 BatchWriteItem 的限制(25 项)要高。
此外,还存在总负载大小、文档大小和请求速率的限制。
理解这些限制对于优化应用性能和确保高效的数据操作至关重要。
注意: 某些限制是可以突破的——只要你能说服你的 AWS 客户经理。 😎
DynamoDB 在一次批处理里最多能 UPDATE 多少个文档?
DynamoDB 客户端本质上都是其 HTTP API 的包装。BatchWriteItem 操作一次 HTTP 请求最多可以 PUT 或 DELETE 25 个文档,但它不能一次性 UPDATE 多个文档。
虽然 DynamoDB 可以在一次 HTTP 请求中 INSERT 最多 25 个文档,但使用 UpdateItem 操作时每次只能 UPDATE 1 个文档。
1
10
25
50
100
100 when streaming
None of the above
按需容量最适合:
不可预测的工作负载
零星流量
访问模式未知的应用
避免过度预置
预置容量更适合:
可预测、稳定的工作负载
对性能有更多控制
有潜在的成本节约
DynamoDB 容量模式
预置容量总是更好
按需容量拥有无限的吞吐量
它们的性能完全相同
按需容量在不可预测的工作负载下更便宜
S3 性能提示:
现代 S3 会自动根据前缀扩展请求速率
你不需要为性能使用随机/哈希前缀
使用符合访问模式的逻辑键名
如果请求率极高,监控 503 Slow Down 响应
旧的指南建议通过随机化前缀来避免热点分区,但 AWS 已不再将其作为默认性能要求。
S3 性能指南
使用随机/哈希前缀
使用逻辑前缀;不需要随机化
始终使用最大对象
最小化对象数量
最佳备份实践:
启用自动备份
使用时间点恢复
根据合规需求保留备份
定期测试恢复过程
考虑跨区域备份
自动备份提供:
RDS 备份最佳实践
仅手动快照
无需备份
自动备份并支持时间点恢复
每周完整备份
在 ElastiCache 中,Redis 与 Memcached 的关键区别是什么?
Redis 支持更多的数据结构和操作
在各方面完全相同
API 级别兼容性
Memcached 总是更快
全局二级索引 (GSI):
允许对非主键属性进行查询
创建替代访问模式
增强查询灵活性
会产生额外的写入容量费用
适用于超出主键的复杂查询需求。
DynamoDB 索引
与主键相同
无需额外费用
降低写入性能
允许对非主键属性进行查询
生命周期管理:
自动在存储类别之间转换对象
将不常访问的数据迁移到更便宜的存储
设置对象过期规则
优化存储成本
减少手动管理工作量
S3 生命周期规则
手动移动对象
自动在存储类别之间转换对象
永不删除旧对象
将所有内容存放在标准类
Amazon Aurora 支持的最大只读副本数量是多少?
Amazon Aurora 支持 最多 15 个只读副本 ,让您能够显著扩展读取操作。这些副本具备以下优势:
几乎瞬时的复制 在副本之间
对主实例的性能影响最小
高效的读取工作负载分配
这种配置为读取需求高的应用提供水平扩展能力。
了解更多关于 Aurora 只读副本的信息
仅限单个只读副本
无法进行读取扩展
支持最多 15 个只读副本
无限只读副本
RDS 加密特性:
使用 KMS 对静止数据进行加密
使用 SSL/TLS 对传输中的数据进行加密
在创建数据库时启用加密
保护敏感信息
符合安全标准
RDS 加密选项
对静止和传输中的数据进行加密
加密是可选的
没有可用的加密
仅加密特定列
DynamoDB Streams 的主要用途是什么?
存储额外的数据副本
DynamoDB 为绿色供应商提供积分
提升写入性能
捕获项目级别的更改以用于事件驱动架构
全局二级索引的替代方案
分段上传的好处:
高效处理大文件
可恢复中断的上传
并行上传文件分块
推荐用于大于 100 MB 的文件
提升网络可靠性
S3 分段上传
始终使用单个 PUT 请求
对大文件使用分段上传
上传前先压缩
手动拆分后再上传
对于 1PB 数据,其中 20% 每日访问,30% 每月访问,50% 每年访问,最具成本效益的存储方案是什么?
最佳存储策略:
20% 使用 S3 Standard 进行每日访问
30% 使用 S3 Standard-IA 进行每月访问
50% 使用 Glacier 进行年度访问
该方案在保持合适访问模式的同时优化成本。
成本考虑因素:
每 GB 的存储定价
检索费用
访问模式
转换费用
所有数据使用 S3 Standard
始终使用最便宜的存储
根据访问模式混合存储类别
将所有内容存储在 Glacier
一个 DynamoDB 表的预置读取容量为 100 RCUs。每秒可以执行多少次 4KB 项目的强一致性读取?
理解 DynamoDB 一致性模型至关重要:
1 RCU = 每秒 1 次强一致性读取(针对最多 4KB 的项目)
1 RCU = 每秒 2 次最终一致性读取(针对最多 4KB 的项目)
因此:
100 RCUs = 100 次每秒的强一致性 4KB 读取
100 RCUs = 200 次每秒的最终一致性 4KB 读取
根据以下因素选择一致性模型:
100 reads per second
50 reads per second
200 reads per second
Unlimited reads per second
在拥有多个只读副本的 Aurora 集群中,主实例故障时自动故障转移会发生什么?
Aurora 故障转移过程:
检测到主实例故障
基于故障转移优先级层选择 Aurora 副本
当优先级相同的情况下使用实例特性作为平局决胜因素
自动更新集群终端节点
最佳实践:
在多个可用区保持多个副本
有意配置提升层级
在应用中使用集群终端节点
定期测试故障转移场景
需要人工干预
需要重新配置应用程序
总是切换到最旧的副本
基于故障转移优先级层自动提升
截至 2020 年底,S3 对所有操作提供什么一致性模型?
S3 一致性模型:
对所有操作提供强读后写一致性
适用于 PUT 和 DELETE
不再需要之前使用的变通方案
无额外费用
影响:
简化应用逻辑
无需一致性检查
写入后可立即可靠读取
提升应用可靠性
仅适用于新对象
所有操作均为强一致性
更新为最终一致性
取决于区域
DynamoDB 的 TTL 功能如何处理项目删除?
DynamoDB TTL 特性:
后台进程监控 TTL 属性
过期项目会在尽力而为的调度下删除,通常在几天内完成
TTL 不产生额外费用
删除的项目会出现在流中
使用场景:
在到期时立即删除项目
需要手动触发删除
后台删除,尽力而为的时间安排
项目过期但仍保留存储
在依赖 Aurora Serverless 处理突发流量高峰时,关键考虑因素是什么?
Aurora Serverless 扩展:
Aurora Serverless v2 以细粒度 ACU 增量扩展容量
扩展速度取决于当前容量和最小/最大 ACU 设置
支持的版本在配置后可在 0 ACU 时自动暂停
按秒计费,基于 ACU 使用量
最佳实践:
为关键工作负载的突发峰值设置足够高的最小容量
监控扩展事件
注意连接管理
扩展速度取决于当前容量和配置的容量
按需即时扩展
仅在预设间隔时扩展
仅手动扩展
哇,这段冒险真是深入细节了!🚀☁️
希望你玩得开心,甚至还能学到一点关于 AWS 存储服务的知识。
去看看更多 Dan 的挑战 ! 🧠
法律声明:本测验仅用于教育目的。所有商标和版权均归其各自所有者所有,尤其是那些大公司。