2

我很容易找到一种使用 AWS 云形成在同一区域创建 RDS 只读副本的方法,但是:
1. 我们可以使用 CF 模板在不同区域创建相同的吗?
2. 我们也可以使用CF模板将其提升为初级吗?

4

1 回答 1

5

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

检查此链接以获取更多信息。

2) 目前,我认为无法使用 cloudformation 推广只读副本。但是您可以使用 lambda 函数来实现这一点。

  • 在目标区域中创建一个 lambda 函数,该函数使用promote-read-replica您选择的 sdk 中的 api。
  • 在源区域创建一个 sns 主题,并将其添加为 lambda 函数的触发器。不要忘记使用 SNSTopicArn 将 SNS 的调用权限添加到 Lambda

  • 在源 RDS 控制台中,转到事件订阅并选择您在上面创建的sns 主题 arn作为目标 arn 以接收事件。在事件类别下,deletion, failure为您选择源数据库。

于 2017-10-09T12:58:17.513 回答