AWS DynamoDB – 使用备份
Amazon DynamoDB 支持按需备份和恢复功能。无论用户是否使用 AWS Backup,这些功能都可供用户使用。用户可以使用 DynamoDB 按需备份功能来创建其表的长期完整备份并存档以满足监管观察需求。
DynamoDB 还消除了保护敏感数据所涉及的操作的复杂性。在使用 DynamoDB 时,用户无需担心集群扩展、管理节点、信誉、硬件监督等。
时间点恢复 (PITR)提供用户 DynamoDB 表数据的连续备份。启用后,DynamoDB 会在过去 35 天内维护用户表的增量备份,直到用户有意将其关闭。
DynamoDB 的特点:
以下是 DynamoDB 的功能:
- 无论用户表或数据的大小如何,备份过程都会在几秒钟内执行,因此用户不必担心备份计划或长时间运行的过程。
- 此外,所有备份都会自动加密、系统化、易于发现并保留直至删除。
- 用户可以备份数据,即从几 MB 到数百 TB 的数据表,而不会影响性能。
DynamoDB 的优势:
以下是使用 DynamoDB 的优势:
- 完全托管:它管理各种职责,例如加密、性能和工作负载。
- 易于使用:用户只需单击一下即可启用 PITR(时间点恢复)或轻松创建、恢复和删除备份。
- 快速且可扩展:用户可以轻松启用 PITR 或在几秒钟内快速为任何大小的表创建尽可能多的备份。
- 无性能影响:对生产应用程序的性能和可用性没有影响。
DynamoDB 的时间点恢复:
DynamoDB 的时间点恢复确保保护您的重要数据以表的形式免受任何类型的读取和删除功能。用户无需担心所有其他操作。恢复可以在某个时间点完成。
备份 DynamoDB 表:
按照以下步骤备份 DynamoDB 表:
- 在源表的“备份”选项卡上选择“创建备份” 。
- 在控制台的左侧,选择“备份” ,然后选择“创建备份”。
- 备份状态会显示“正在创建”,完成后会变为“可用”。
输出:
{
"BackupDetails": {
"BackupName":
"WebSeriesBackup",
"BackupArn": "arn:aws:dynamodb:us-east-1:123456789012: table/WebSeries/backup/1456781290135-73d8d5bc,
"BackupStatus": "CREATING",
"BackupCreationDateTime": 1456781290.135
}
}
从备份恢复 DynamoDB 表:
按照以下步骤从备份中恢复 Dynamo DB 表:
- 首先登录 AWS 管理控制台并打开 DynamoDB。
- 在控制台的左侧,选择“备份”。
- 现在选择您的源表名称。
- 选择“恢复”并填写您的基本新表详细信息。
- 单击“还原表”以开始还原过程。
输出:
aws dynamodb restore-table-from-backup \
--target-table-name WebSeries\
--backup-arn arn:aws: dynamodb:us-east-1:123456789012: table/Music/backup/01581881483719-db9c1f91
--global-secondary-index-override '[]' \
--sse-specification-override Enabled=true, SSEType=KMS
删除 DynamoDB 表备份:
按照以下步骤删除 DynamoDB 表备份:
- 首先登录 AWS 管理控制台并打开 DynamoDB。
- 在控制台的左侧,选择“备份” 。
- 现在选择您的源表名称。
- 选择“删除”并输入“删除”进行确认。
输出:
aws dynamodb delete-backup \
--backup-arn arn:aws: dynamodb:us-east-1:123456789012: table/Music/backup/01489602797149-73d8d5bc
将 IAM 与 DynamoDB 备份和还原一起使用:
只有当需要备份的数据在同一个 AWS 账户中时,用户才能轻松使用 AWS Identity and Access Management (IAM)。
示例 1:允许“ CreateBackup ”和“RestoreTableFromBackup”:- 在这两个操作中授予访问权限。
{
"Version": "2022-02-23",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb: CreateBackup",
"dynamodb: Restore Table FromBackup",
"dynamodb: PutItem",
"dynamodb:UpdateItem",
"dynamodb: DeleteItem",
"dynamodb: GetItem",
"dynamodb:Query",
"dynamodb: Scan",
"dynamodb: BatchWriteItem"
],
"Resource": "arn:aws:dynamodb:us-east-1:123456789012: table/WebSeries"
}
]
}