创建 Amazon DocumentDB 子网组 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建 Amazon DocumentDB 子网组

创建 Amazon DocumentDB 集群时,您必须选择一个 Amazon VPC 和该 Amazon VPC 中的对应子网组来启动您的集群。子网确定可用区中要用于启动实例的可用区和 IP 范围。

子网组是指定的子网集,允许您指定要用于启动 Amazon DocumentDB 实例的可用区。例如,在包含三个实例的集群中,建议在单独的 Amazon 中预置各个实例 — 这样做会针对高可用性进行优化。因此,如果单个可用区出现故障,它只会影响单个实例。

Amazon DocumentDB 实例目前可在多达三个可用区中预置。即使子网组拥有三个以上的子网,您也只能使用这三个子网来创建 Amazon DocumentDB 集群。因此,在创建数据库时,建议仅选择要部署实例的三个子网。

例如:即创建集群,Amazon DocumentDB 选择可用区 {1A、1B 和 1C}。如果您尝试在可用区 {1D} 中创建实例,API 调用将失败。但是,如果您选择创建实例而不指定特定的可用区,Amazon DocumentDB 将代表您选择一个可用区。Amazon DocumentDB 使用某种算法对可用区中的实例进行负载平衡以帮助您实现高可用性。默认情况下,如果预置了三个实例,将在三个可用区中预置它们,而不会在单个可用区中预置。

最佳实践

  • Unless you have a specific reason, always create a subnet group with three subnets. This ensures that clusters with three or more instances will be able to achieve higher availability as instances will be provisioned across three AZs.
  • Always spread instances across multiple AZs to achieve high availability. Never place all instances for a cluster in a single AZ.
  • Because failover events can happen at any time, you should not assume that a primary instance or replica instances will always be in a particular AZ.

如何创建子网组

您可以使用Amazon Web Services Management Console要么Amazon CLI创建 Amazon DocumentDB 子网组。

使用 Amazon Web Services Management Console

按照以下步骤创建 Amazon DocumentDB 子网组。

创建 Amazon DocumentDB 子网组

  1. 登录Amazon Web Services Management Console,然后在以下位置打开 Amazon DocumentDB 控制台https://console.aws.amazon.com/docdb.

  2. 在导航窗格中,选择 Subnet groups (子网组),然后选择 Create (创建)

    提示

    如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 ()。

  3. 创建子网组页面中:

    1. 子网组详细信息部分中:

      1. 名称为子网组输入有意义的名称。

      2. 描述—输入子网组描述。

    2. 添加子网部分中:

      1. VPC— 在列表中,为该子网组选择一个 VPC。

      2. 请执行下列操作之一:

        • 要包括所选的 VPC 中的所有子网,请选择添加与此 VPC 相关的所有子网

        • 要为该子网组指定子网,请为要包含子网的每个可用区执行以下操作。您必须包含至少两个可用区。

          1. 可用区— 在列表中,选择一个可用区。

          2. 子网— 在列表中,从为该子网组所选的可用区中选择一个子网。

          3. 选择 Add subnet (添加子网)

  4. 选择 Create (创建)。创建子网组后,它将与其他子网组一起列出。

    
                     屏幕截图:显示子网组的详细信息。

使用 Amazon CLI

在使用 Amazon CLI 创建子网组之前,您必须先确定可用的子网。运行以下 Amazon CLI 操作以列出可用区及其子网。

参数:

  • --db-subnet-group— 可选。如果指定特定的子网组,将列出该组的可用区和子网。如果省略该参数,将列出所有子网组的可用区和子网。如果指定 default 子网组,将列出 VPC 的所有子网。

对于 Linux、macOS 或 Unix:

aws docdb describe-db-subnet-groups \ --db-subnet-group-name default \ --query 'DBSubnetGroups[*].[DBSubnetGroupName,Subnets[*].[SubnetAvailabilityZone.Name,SubnetIdentifier]]'

对于 Windows:

aws docdb describe-db-subnet-groups ^ --db-subnet-group-name default ^ --query 'DBSubnetGroups[*].[DBSubnetGroupName,Subnets[*].[SubnetAvailabilityZone.Name,SubnetIdentifier]]'

此操作的输出将类似于下文(JSON 格式)。

[ [ "default", [ [ "us-east-1a", "subnet-4e26d263" ], [ "us-east-1c", "subnet-afc329f4" ], [ "us-east-1e", "subnet-b3806e8f" ], [ "us-east-1d", "subnet-53ab3636" ], [ "us-east-1b", "subnet-991cb8d0" ], [ "us-east-1f", "subnet-29ab1025" ] ] ] ]

通过使用上一操作中的输出,您可以创建新的子网组。新子网组必须包含至少两个可用区中的子网。

参数:

  • --db-subnet-group-name – 必填项。该子网组的名称。

  • --db-subnet-group-description – 必填项。该子网组的描述。

  • --subnet-ids – 必填项。要包含在该子网组中的子网的列表。示例:subnet-53ab3636

  • — 标签— 可选。要附加到该子网组的标签(键/值对)的列表。

以下代码创建具有三个子网(subnet-4e26d263subnet-afc329f4subnet-b3806e8f)的子网组 sample-subnet-group

对于 Linux、macOS 或 Unix:

aws docdb create-db-subnet-group \ --db-subnet-group-name sample-subnet-group \ --db-subnet-group-description "A sample subnet group" \ --subnet-ids subnet-4e26d263 subnet-afc329f4 subnet-b3806e8f \ --tags Key=tag1,Value=One Key=tag2,Value=2

对于 Windows:

aws docdb create-db-subnet-group ^ --db-subnet-group-name sample-subnet-group ^ --db-subnet-group-description "A sample subnet group" ^ --subnet-ids subnet-4e26d263 subnet-afc329f4 subnet-b3806e8f ^ --tags Key=tag1,Value=One Key=tag2,Value=2

此操作的输出将类似于下文(JSON 格式)。

{ "DBSubnetGroup": { "DBSubnetGroupDescription": "A sample subnet group", "DBSubnetGroupName": "sample-subnet-group", "Subnets": [ { "SubnetAvailabilityZone": { "Name": "us-east-1a" }, "SubnetIdentifier": "subnet-4e26d263", "SubnetStatus": "Active" }, { "SubnetAvailabilityZone": { "Name": "us-east-1c" }, "SubnetIdentifier": "subnet-afc329f4", "SubnetStatus": "Active" }, { "SubnetAvailabilityZone": { "Name": "us-east-1e" }, "SubnetIdentifier": "subnet-b3806e8f", "SubnetStatus": "Active" } ], "VpcId": "vpc-91280df6", "DBSubnetGroupArn": "arn:aws:rds:us-east-1:123SAMPLE012:subgrp:sample-subnet-group", "SubnetGroupStatus": "Complete" } }