Amazon DocumentDB サブネットグループの作成 - Amazon DocumentDB

Amazon DocumentDB サブネットグループの作成

Amazon DocumentDB クラスターを作成する場合、クラスターを起動するには、Amazon VPC とその Amazon VPC 内の対応するサブネットグループを選択する必要があります。サブネットは、インスタンスの起動に使用するアベイラビリティーゾーンとアベイラビリティーゾーン内の IP 範囲を決定します。

サブネットグループは、名前付きのサブネット (またはAZ) のセットであり、Amazon DocumentDB インスタンスの起動に使用するアベイラビリティーゾーンを指定できます。たとえば、3 つのインスタンスを含むクラスターでは、各インスタンスを別々の AZ にプロビジョニングして高可用性を実現することをお勧めします。これにより、1 つの AZ に障害が発生した場合、1 つのインスタンスにのみ影響します。

Amazon DocumentDB インスタンスは現在、最大 3 つの AZ にプロビジョニングできます。サブネットグループに 3 つ以上のサブネットがある場合でも、それらのサブネットのうちの 3 つのみを使用して Amazon DocumentDB クラスターを作成できます。したがって、サブネットグループを作成するときは、インスタンスをデプロイする 3 つのサブネットのみを選択することをお勧めします。

例:クラスターが作成され、Amazon DocumentDB は AZ {1A、1B、および1C} を選択します。この場合、AZ 1D でインスタンスを作成しようとすると、その API コールは失敗します。ただし、特定の AZ を指定せずにインスタンスを作成した場合、Amazon DocumentDB がお客様に代わって AZ を選択します。Amazon DocumentDB は、アルゴリズムを使用して AZ 間でインスタンスの負荷を分散し、高可用性を実現できるようにします。たとえば、3 つのインスタンスがプロビジョニングされる場合、デフォルトでは 3 つの AZ にプロビジョニングされ、1 つの AZ にまとめてプロビジョニングされません。

ベストプラクティス

  • 特に理由がない限り、常に 3 つのサブネットを含むサブネットグループを作成します。これにより、3 つ以上のインスタンスを持つクラスターでは、インスタンスが 3 つの AZ にまたがってプロビジョニングされるため、より高い可用性を実現できます。

  • 高可用性を実現するには、常に複数の AZ にインスタンスを分散させます。クラスターのすべてのインスタンスを 1 つの AZ にまとめて配置しないでください。

  • フェイルオーバーイベントはいつでも発生する可能性があるため、プライマリインスタンスまたはレプリカインスタンスが常に特定の AZ に存在すると想定しないでください。

サブネットグループの作成方法

Amazon DocumentDB サブネットグループを作成するには、AWS Management Console または AWS CLI を使用できます。

Using the AWS Management Console

Amazon DocumentDB サブネットグループを作成するには、次のステップを使用します。

Amazon DocumentDB サブネットグループの作成方法
  1. AWS Management Console にサインインし、Amazon DocumentDB コンソールを https://console.aws.amazon.com/docdb から開きます。

  2. ナビゲーションペインで、[Subnet groups (サブネットグループ)]、[Create (作成)] の順に選択します。

    ヒント

    画面の左側にナビゲーションペインが表示されない場合は、ページの左上隅にあるメニューアイコン (Hamburger menu icon with three horizontal lines.) を選択します。

  3. [Create subnet group (サブネットグループを作成する)] ページで:

    1. [Subnet group details (サブネットグループの詳細)] セクションで:

      1. 名前 - サブネットグループ用の意味のある名前を入力します。

      2. [Description] (説明) - サブネットグループの説明を入力します。

    2. [Add subnets (サブネットを追加する)] セクションで:

      1. VPC — リストからこのサブネットグループの VPC を選択します。

      2. 次のいずれかを行います。

        • 選択した VPC にすべてのサブネットを含めるには、[Add all the subnets related to this VPC (この VPC に関連するすべてのサブネットを追加)] を選択します。

        • このサブネットグループのサブネットを指定するには、サブネットを含める各アベイラビリティーゾーンに対して次の手順を実行します。少なくとも 2 つのアベイラビリティーゾーンを含める必要があります。

          1. アベイラビリティーゾーン - リストからアベイラビリティーゾーンを選択します。

          2. サブネット — リストで、このサブネットグループに選択したアベイラビリティーゾーンからサブネットを選択します。

          3. [Add subnet (サブネットを追加する)] を選択します。

  4. [Create] (作成) を選択します。サブネットグループが作成されると、他のサブネットグループとともに表示されます。

    スクリーンショット: サブネットグループの詳細を表示しています。
Using the AWS CLI

AWS CLI を使用してサブネットグループを作成する前に、まずどのサブネットが使用可能かを判断する必要があります。次の AWS 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" ] ] ] ]

前のオペレーションからの出力を使用して、新しいサブネットグループを作成できます。新しいサブネットグループは、少なくとも 2 つのアベイラビリティーゾーンからのサブネットを含める必要があります。

[パラメータ:]
  • --db-subnet-group-name — 必須 このサブネットグループの名前。

  • --db-subnet-group-description — 必須 このサブネットグループの説明。

  • --subnet-ids — 必須 このサブネットグループに含めるサブネットのリスト。例えば、subnet-53ab3636 などです。

  • --タグ - オプションです。このサブネットグループにアタッチするタグ (キーと値のペア) のリスト。

次のコードは、subnet-4e26d263subnet-afc329f4、および subnet-b3806e8f の 3 つのサブネットを持つサブネットグループ 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" } }