这里讨论的两个数据库是“实时”和“预实时”。每天清晨都有实时rds实例的快照。为了获得实时数据的全新副本,我们手动删除了prelive并使用实时快照从新创建它。 prelive主要用于复制数据特定的错误。我们如何才能轻松地自动化每天早晨从实时快照中获取新鲜的活动实例的过程?
答案 0 :(得分:1)
您可以使用CloudFormation自动执行此过程。
您应该使用AWS::RDS::DBInstance
资源为“活动前”环境创建堆栈。您需要指定DBSnapshotIdentifier
属性,而不是对其进行硬编码,而是引用一个堆栈参数,它看起来像这样:
Parameters:
Snapshot:
Type: String
Resources:
...other resources...
PreliveInstance:
Type: AWS::RDS::DBInstance
Properties:
...other properties...
DBSnapshotIdentifier: !Ref Snapshot
...other properties...
...other resources...
这样,您可以在每天早晨通过CloudWatch Event触发执行以下操作的Lambda函数:
arn
arn
作为Snapshot
参数的输入值来更新您的“活动前”堆栈。由于DBSnapshotIdentifier
是一个需要更新replacement的属性,因此将创建一个新的“ prelive”实例,并删除旧的实例。