我已经轻松找到了一种使用 AWS 云形成在同一区域创建 RDS 只读副本的方法,但是:
1. 可以使用CF模板在不同地区创建相同的内容吗?
2. 另外我们可以使用CF模板将其升级为primary吗?
最佳答案
1) 是的,您可以使用 CloudFormation 在不同区域创建 RDS 只读副本。在目标区域(您要在其中创建只读副本)创建一个 CloudFormation 模板,并将源数据库实例 arn(位于源区域中)作为 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 主题 arn 作为接收事件的目标 arn。在事件类别下,为源数据库选择
删除、失败
。
关于amazon-web-services - 如何使用AWS云形成模板创建跨区域RDS只读副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46639969/