配置多区域集群 - Amazon Aurora DSQL

配置多区域集群

本章介绍如何跨多个 AWS 区域配置和管理集群。

连接到多区域集群

多区域对等集群提供两个区域端点,每个对等集群 AWS 区域中各一个。这两个端点都提供了一个逻辑数据库,该数据库支持并发读写操作,并具有强数据一致性。除了对等集群之外,多区域集群还有一个见证区域,它存储有限时段内的加密事务日志,用于提高多区域持久性和可用性。多区域见证区域没有端点。

创建多区域集群

要创建多区域集群,首先创建一个带有见证区域的集群。然后,您使此集群与第二个集群对等,第二个集群与第一个集群共享相同的见证区域。以下示例显示了如何在美国东部(弗吉尼亚州北部)和美国东部(俄亥俄州)创建以美国西部(俄勒冈州)作为见证区域的集群。

步骤 1:在美国东部(弗吉尼亚州北部)创建集群 1

要在美国东部(弗吉尼亚州北部)AWS 区域创建具有多区域属性的集群,请使用以下命令。

aws dsql create-cluster \ --region us-east-1 \ --multi-region-properties '{"witnessRegion":"us-west-2"}'
例 响应:
{
    "identifier": "abc0def1baz2quux3quuux4",
    "arn": "arn:aws:dsql:us-east-1:111122223333:cluster/abc0def1baz2quux3quuux4",
    "status": "UPDATING",
    "encryptionDetails": {
        "encryptionType": "AWS_OWNED_KMS_KEY",
        "encryptionStatus": "ENABLED"
   }
   "creationTime": "2024-05-24T09:15:32.708000-07:00"
}
注意

API 操作成功后,集群进入 PENDING_SETUP 状态。集群创建将保持 PENDING_SETUP 状态,直至您使用其对等集群的 ARN 更新该集群。

步骤 2:在美国东部(俄亥俄州)创建集群 2

要在美国东部(俄亥俄州)AWS 区域创建具有多区域属性的集群,请使用以下命令。

aws dsql create-cluster \ --region us-east-2 \ --multi-region-properties '{"witnessRegion":"us-west-2"}'
例 响应:
{
    "identifier": "foo0bar1baz2quux3quuxquux5",
    "arn": "arn:aws:dsql:us-east-2:111122223333:cluster/foo0bar1baz2quux3quuxquux5",
    "status": "PENDING_SETUP",
    "creationTime": "2025-05-06T06:51:16.145000-07:00",
    "deletionProtectionEnabled": true,
    "multiRegionProperties": {
        "witnessRegion": "us-west-2",
        "clusters": [
            "arn:aws:dsql:us-east-2:111122223333:cluster/foo0bar1baz2quux3quuxquux5"
        ]
    }
}      

API 操作成功后,集群将转为 PENDING_SETUP 状态。集群创建将保持 PENDING_SETUP 状态,直到您通过用于实现对等的另一个集群的 ARN 对其进行更新。

步骤 3:使美国东部(弗吉尼亚州北部)与美国东部(俄亥俄州)的集群对等

要使美国东部(弗吉尼亚州北部)集群与美国东部(俄亥俄州)集群对等,请使用 update-cluster 命令。指定美国东部(弗吉尼亚州北部)集群名称以及带有美国东部(俄亥俄州)集群的 ARN 的 JSON 字符串。

aws dsql update-cluster \ --region us-east-1 \ --identifier 'foo0bar1baz2quux3quuxquux4' \ --multi-region-properties '{"witnessRegion": "us-west-2","clusters": ["arn:aws:dsql:us-east-2:111122223333:cluster/foo0bar1baz2quux3quuxquux5"]}'
例 响应
{
    "identifier": "foo0bar1baz2quux3quuxquux4",
    "arn": "arn:aws:dsql:us-east-1:111122223333:cluster/foo0bar1baz2quux3quuxquux4",
    "status": "UPDATING",
    "creationTime": "2025-05-06T06:46:10.745000-07:00"
}

步骤 4:使美国东部(俄亥俄州)与美国东部(弗吉尼亚州北部)的集群对等

要使美国东部(俄亥俄州)集群与美国东部(弗吉尼亚州北部)集群对等,请使用 update-cluster 命令。指定美国东部(俄亥俄州)集群名称以及带有美国东部(弗吉尼亚州北部)集群的 ARN 的 JSON 字符串。

aws dsql update-cluster \ --region us-east-2 \ --identifier 'foo0bar1baz2quux3quuxquux5' \ --multi-region-properties '{"witnessRegion": "us-west-2", "clusters": ["arn:aws:dsql:us-east-1:111122223333:cluster/foo0bar1baz2quux3quuxquux4"]}'
例 响应
{
    "identifier": "foo0bar1baz2quux3quuxquux5",
    "arn": "arn:aws:dsql:us-east-2:111122223333:cluster/foo0bar1baz2quux3quuxquux5",
    "status": "UPDATING",
    "creationTime": "2025-05-06T06:51:16.145000-07:00"
}
注意

成功实现对等后,这两个集群都会从“PENDING_SETUP”转换为“CREATING”,最后在准备就绪可供使用时变为“ACTIVE”状态。

查看多区域集群属性

描述集群时,您可以查看不同 AWS 区域中集群的多区域属性。

aws dsql get-cluster \ --region us-east-1 \ --identifier 'foo0bar1baz2quux3quuxquux4'
例 响应
{
    "identifier": "foo0bar1baz2quux3quuxquux4",
    "arn": "arn:aws:dsql:us-east-1:111122223333:cluster/foo0bar1baz2quux3quuxquux4",
    "status": "PENDING_SETUP", 
    "encryptionDetails": {
    "encryptionType": "AWS_OWNED_KMS_KEY",
    "encryptionStatus": "ENABLED"
},
    "creationTime": "2024-11-27T00:32:14.434000-08:00",
    "deletionProtectionEnabled": false,
    "multiRegionProperties": {
       "witnessRegion": "us-west-2",
       "clusters": [
          "arn:aws:dsql:us-east-1:111122223333:cluster/foo0bar1baz2quux3quuxquux4",
          "arn:aws:dsql:us-east-2:111122223333:cluster/foo0bar1baz2quux3quuxquux5"
       ]
    }
}

在创建过程中使集群对等

可以通过在集群创建过程中包含对等信息来减少步骤数。在美国东部(弗吉尼亚州北部)创建第一个集群(步骤 1)后,您可以在美国东部(俄亥俄州)创建第二个集群,同时通过包含第一个集群的 ARN 来启动对等过程。

aws dsql create-cluster \ --region us-east-2 \ --multi-region-properties '{"witnessRegion":"us-west-2","clusters": ["arn:aws:dsql:us-east-1:111122223333:cluster/foo0bar1baz2quux3quuxquux4"]}'

这合并执行了步骤 2 和步骤 4,但您仍需要完成步骤 3(使用第二个集群的 ARN 更新第一个集群),才能建立对等关系。完成所有步骤后,这两个集群将经历与标准过程相同的状态转换:从 PENDING_SETUP 转换为 CREATING,最后在准备好可供使用时转换为 ACTIVE

删除多区域集群

要删除多区域集群,您需要完成两个步骤。

  1. 关闭每个集群的删除保护。

  2. 在各自的 AWS 区域中分别删除每个对等集群

更新和删除美国东部(弗吉尼亚州北部)的集群

  1. 使用 update-cluster 命令关闭删除保护。

    aws dsql update-cluster \ --region us-east-1 \ --identifier 'foo0bar1baz2quux3quuxquux4' \ --no-deletion-protection-enabled
  2. 使用 delete-cluster 命令删除集群。

    aws dsql delete-cluster \ --region us-east-1 \ --identifier 'foo0bar1baz2quux3quuxquux4'

    此命令将返回以下响应。

    {
        "identifier": "foo0bar1baz2quux3quuxquux4",
        "arn": "arn:aws:dsql:us-east-1:111122223333:cluster/foo0bar1baz2quux3quuxquux4",
        "status": "PENDING_DELETE", 
        "creationTime": "2025-05-06T06:46:10.745000-07:00"
    }
    注意

    集群将转换为 PENDING_DELETE 状态。直至删除美国东部(俄亥俄州)中的对等集群后,删除才完成。

更新和删除美国东部(俄亥俄州)的集群

  1. 使用 update-cluster 命令关闭删除保护。

    aws dsql update-cluster \ --region us-east-2 \ --identifier 'foo0bar1baz2quux3quux4quuux' \ --no-deletion-protection-enabled
  2. 使用 delete-cluster 命令删除集群。

    aws dsql delete-cluster \ --region us-east-2 \ --identifier 'foo0bar1baz2quux3quuxquux5'

    该命令返回以下响应:

    {
        "identifier": "foo0bar1baz2quux3quuxquux5",
        "arn": "arn:aws:dsql:us-east-2:111122223333:cluster/foo0bar1baz2quux3quuxquux5",
        "status": "PENDING_DELETE",
        "creationTime": "2025-05-06T06:46:10.745000-07:00"
    }
    注意

    集群将转换为 PENDING_DELETE 状态。几秒钟后,系统会在验证后自动将两个对等集群转换为 DELETING 状态。