有没有办法创建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(爱尔兰)新读取副本。