这里讨论的两个数据库是“实时”和“活跃”。每天清晨都有一个关于实时rds实例的快照。要获取实时数据的全新副本,我们手动执行并删除prelive并使用实时快照从新创建它。 prelive主要用于复制数据特定的bug。我们怎样才能轻松地自动化每天早上从实时快照中获取新鲜的prelive实例的过程?
您可以使用CloudFormation自动执行此过程。
您应该使用AWS::RDS::DBInstance
资源为“prelive”环境创建堆栈。您需要指定DBSnapshotIdentifier
属性,但不是硬编码,而是引用堆栈参数,它将如下所示:
Parameters:
Snapshot:
Type: String
Resources:
...other resources...
PreliveInstance:
Type: AWS::RDS::DBInstance
Properties:
...other properties...
DBSnapshotIdentifier: !Ref Snapshot
...other properties...
...other resources...
这样,您可以每天早上通过CloudWatch事件触发Lambda函数,执行以下操作:
arn
,了解“实时”环境的最新快照arn
更新“prelive”堆栈作为Snapshot
参数的输入值。因为DBSnapshotIdentifier
是更新需要replacement的属性,所以将创建一个新的“prelive”实例,并删除旧的实例。