我们如何使用AWS云形成模板创建跨区域RDS只读副本?
问题描述:
我很容易找到一种方法,使用AWS云形成在同一区域创建RDS只读副本,但是:
1.我们可以使用CF模板在不同区域创建相同区域吗?
2.我们也可以将它提升为使用CF模板的初级?我们如何使用AWS云形成模板创建跨区域RDS只读副本?
答
1)是的,您可以使用CloudFormation在不同地区创建RDS只读副本。在目标区域(您想要创建只读副本的位置)中创建一个CloudFormation模板,并将源数据库实例作为输入SourceDBInstanceIdentifier
(源区域中)作为输入。
Resources:
# Create Data DB
myReplciaDB:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceIdentifier: "read-replica"
PubliclyAccessible: false
SourceDBInstanceIdentifier: "arn:aws:rds:us-east-1:XXXXXX:db:source-database"
StorageType: gp2
检查此link欲知更多信息。
2)目前,我不认为有可能使用cloudformation提升只读副本。但是你可以使用lambda函数来实现这一点。
- 在目标区域中创建一个lambda函数,该函数在您选择的sdk中使用
promote-read-replica
api。 在源区域创建一个sns主题,并将其添加为lambda函数的触发器。 不要忘记使用SNSTopicArn将SNS的调用权限添加到Lambda。
在源RDS控制台,进入事件订阅,并选择SNS话题阿尔恩上面创建为目标阿尔恩接收事件。在事件类别下,为您的源数据库选择
deletion, failure
。