我已经很容易地找到了一种使用AWS云形成在同一区域创建RDS读取副本的方法,但:
1。我们可以使用CF模板在不同的地区创建相同的模板吗
2.我们还可以使用CF模板将其推广到初级吗?
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来推广read副本。但是您可以使用lambda函数来实现这一点。
- 在目标区域中创建一个lambda函数,该函数使用您选择的sdk中的
promote-read-replica
api 在源区域中创建一个sns主题,并将其添加为lambda函数的触发器不要忘记使用SNSTopicArn将SNS的调用权限添加到Lambda。
在源RDS控制台,进入事件订阅,选择您在上面创建的sns主题arn作为接收事件的目标arn。在事件类别下,为源数据库选择
deletion, failure
。