有没有办法创建RDS实例的跨地域只读副本?
Is there a way to create a cross-region read only replica of an RDS instance?
我需要通过 Ansible 在不同的区域创建一个只读副本。
docs 似乎没有提到这是否可能。他们只提到普通的只读副本:
# Create a read-only replica and wait for it to become available
- rds:
command: replicate
instance_name: new-database-replica
source_instance: new_database
wait: yes
wait_timeout: 600
创建跨区域副本时,它的工作方式与创建普通只读副本几乎完全相同,只是您必须指定完整的 ARN 而不是指定实例标识符。这意味着如果您在账户 123456789012
的美国东部 1 中有一个名为 my-mysql-instance
的源实例,那么您的 ARN(以及 RDS 模块的 instance_name
参数)将如下所示:
arn:aws:rds:us-east-1:123456789012:db:my-mysql-instance
所以你只需要把文档中的复制任务改成这样:
- rds:
command: replicate
region: eu-west-1
instance_name: new-database-replica
source_instance: arn:aws:rds:us-east-1:123456789012:db:my-mysql-instance
wait: yes
wait_timeout: 600
这将从美国西部 1 中名为 my-mysql-instance
的源数据库实例创建名为 new-database-replica
的欧盟西部 1(爱尔兰)新读取副本。
我需要通过 Ansible 在不同的区域创建一个只读副本。
docs 似乎没有提到这是否可能。他们只提到普通的只读副本:
# Create a read-only replica and wait for it to become available
- rds:
command: replicate
instance_name: new-database-replica
source_instance: new_database
wait: yes
wait_timeout: 600
创建跨区域副本时,它的工作方式与创建普通只读副本几乎完全相同,只是您必须指定完整的 ARN 而不是指定实例标识符。这意味着如果您在账户 123456789012
的美国东部 1 中有一个名为 my-mysql-instance
的源实例,那么您的 ARN(以及 RDS 模块的 instance_name
参数)将如下所示:
arn:aws:rds:us-east-1:123456789012:db:my-mysql-instance
所以你只需要把文档中的复制任务改成这样:
- rds:
command: replicate
region: eu-west-1
instance_name: new-database-replica
source_instance: arn:aws:rds:us-east-1:123456789012:db:my-mysql-instance
wait: yes
wait_timeout: 600
这将从美国西部 1 中名为 my-mysql-instance
的源数据库实例创建名为 new-database-replica
的欧盟西部 1(爱尔兰)新读取副本。