配置多区域集群
本章介绍如何跨多个 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。
删除多区域集群
要删除多区域集群,您需要完成两个步骤。
-
关闭每个集群的删除保护。
-
在各自的 AWS 区域中分别删除每个对等集群
更新和删除美国东部(弗吉尼亚州北部)的集群
-
使用
update-cluster
命令关闭删除保护。aws dsql update-cluster \ --region us-east-1 \ --identifier 'foo0bar1baz2quux3quuxquux4' \ --no-deletion-protection-enabled
-
使用
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
状态。直至删除美国东部(俄亥俄州)中的对等集群后,删除才完成。
更新和删除美国东部(俄亥俄州)的集群
-
使用
update-cluster
命令关闭删除保护。aws dsql update-cluster \ --region us-east-2 \ --identifier 'foo0bar1baz2quux3quux4quuux' \ --no-deletion-protection-enabled
-
使用
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
状态。