

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon DocumentDB サブネットグループの管理
<a name="document-db-subnet-groups"></a>

VPC (Virtual Private Cloud) は、AWS アカウント 専用の仮想ネットワークです。VPC は、AWS クラウドの他の仮想ネットワークから論理的に切り離されています。Amazon DocumentDB クラスターなどの AWS リソースを Amazon VPC で起動できます。VPC の IP アドレス範囲を指定して、サブネットを追加し、セキュリティグループを関連付けて、ルートテーブルを設定できます。

サブネットは、Amazon VPC の IP アドレスの範囲です。AWS リソースは、指定したサブネット内に起動できます。インターネットに接続する必要があるリソースには、*パブリック*サブネットを使用します。インターネットに接続する必要がないリソースには、*プライベート*サブネットを使用します。公開サブネットとプライベートサブネットの詳細については、*Amazon Virtual PrivateCloud ユーザーガイド* の [VPCとサブネットの基本](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#vpc-subnet-basics) を参照してください。

DB サブネットグループは VPC に作成するサブネットのコレクションで、クラスター用に指定します。サブネットグループでは、クラスターの作成時に特定の VPC を指定することができます。`default` サブネットグループを使用すると、VPC 内のすべてのサブネットにまたがります。

各 DB サブネットグループには、特定のリージョン内の少なくとも 2 つのアベイラビリティーゾーンにサブネットが必要です。VPC に DB インスタンスを作成するときに、DB サブネットグループを選択する必要があります。Amazon DocumentDB は、その DB サブネットグループと優先アベイラビリティーゾーンを使用して、クラスターに関連付けるサブネットとそのサブネット内の IP アドレスを選択します。プライマリインスタンスに障害が発生した場合、Amazon DocumentDB は対応するレプリカインスタンスを新しいプライマリに昇格させることができます。その後、前のプライマリが配置されていたサブネットの IP アドレスを使用して、新しいレプリカインスタンスを作成します。

Amazon DocumentDB が VPC にインスタンスを作成すると、DB サブネットグループから選択された IP アドレスを使用して、クラスターにネットワークインターフェースが割り当てられます。基になる IP アドレスはフェイルオーバー中に変わる可能性があるため、DNS名 を使用することを強くお勧めします。詳細については、「[Amazon DocumentDB エンドポイント](how-it-works.md#how-it-works.endpoints)」を参照してください。

独自の VPC とサブネットの作成については、*Amazon Virtual PrivateCloud ユーザーガイド* の [VPCとサブネットの操作](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html) を参照してください。

**Topics**
+ [Amazon DocumentDB サブネットグループの作成](document-db-subnet-group-create.md)
+ [Amazon DocumentDB サブネットグループの説明](document-db-subnet-group-describe.md)
+ [Amazon DocumentDB サブネットグループの変更](document-db-subnet-group-modify.md)
+ [Amazon DocumentDB サブネットグループの削除](document-db-subnet-group-delete.md)

# Amazon DocumentDB サブネットグループの作成
<a name="document-db-subnet-group-create"></a>

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

ベストプラクティス
+ 特に理由がない限り、常に 3 つのサブネットを含むサブネットグループを作成します。これにより、3 つ以上のインスタンスを持つクラスターでは、インスタンスが 3 つの AZ にまたがってプロビジョニングされるため、より高い可用性を実現できます。
+ 高可用性を実現するには、常に複数の AZ にインスタンスを分散させます。クラスターのすべてのインスタンスを 1 つの AZ にまとめて配置しないでください。
+ フェイルオーバーイベントはいつでも発生する可能性があるため、プライマリインスタンスまたはレプリカインスタンスが常に特定の AZ に存在すると想定しないでください。

## サブネットグループの作成方法
<a name="document-db-subnet-group-how-create"></a>

Amazon DocumentDB サブネットグループを作成するには、AWS マネジメントコンソール または AWS CLI を使用できます。

------
#### [ Using the AWS マネジメントコンソール ]

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

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

1. AWS マネジメントコンソール にサインインし、Amazon DocumentDB コンソールを [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) から開きます。

1. ナビゲーションペインで、[**Subnet groups (サブネットグループ)**]、[**Create (作成)**] の順に選択します。
**ヒント**  
画面の左側にナビゲーションペインが表示されない場合は、ページの左上隅にあるメニューアイコン (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-menu-icon.png)) を選択します。

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

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

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

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

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

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

      1. 次のいずれかを行います:
         + 選択した VPC にすべてのサブネットを含めるには、[**Add all the subnets related to this VPC (この VPC に関連するすべてのサブネットを追加)**] を選択します。
         + このサブネットグループのサブネットを指定するには、サブネットを含める各アベイラビリティーゾーンに対して次の手順を実行します。少なくとも 2 つのアベイラビリティーゾーンを含める必要があります。

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

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

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

1. **[作成]** を選択します。サブネットグループが作成されると、他のサブネットグループとともに表示されます。  
![\[スクリーンショット: サブネットグループの詳細を表示しています。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-subnet-groups-list.png)

------
#### [ Using the AWS CLI ]

AWS CLI を使用してサブネットグループを作成する前に、まずどのサブネットが使用可能かを判断する必要があります。次の AWS CLI オペレーションを実行して、アベイラビリティーゾーンとそのサブネットを一覧表示します。

**パラメータ **:
+ **--db-subnet-group** - オプションです。特定のサブネットグループを指定すると、そのグループのアベイラビリティーゾーンとサブネットが一覧表示されます。このパラメータを省略すると、すべてのサブネットグループのアベイラビリティーゾーンとサブネットが一覧表示されます。`default` サブネットグループを指定すると、すべての VPC のサブネットが一覧表示されます。

**Example**  
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` などです。
+ --タグ **** - オプションです。このサブネットグループにアタッチするタグ (キーと値のペア) のリスト。
次のコードは、`sample-subnet-group`、`subnet-4e26d263`、および `subnet-afc329f4` の 3 つのサブネットを持つサブネットグループ `subnet-b3806e8f` を作成します。  
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"
    }
}
```

------

# Amazon DocumentDB サブネットグループの説明
<a name="document-db-subnet-group-describe"></a>

AWS マネジメントコンソール または AWS CLI を使用して Amazon DocumentDB サブネットグループの詳細を取得できます。

------
#### [ Using the AWS マネジメントコンソール ]

次の手順では、Amazon DocumentDB サブネットグループの詳細を取得する方法を説明します。

**サブネットグループの詳細を確認するには**

1. AWS マネジメントコンソール にサインインし、Amazon DocumentDB コンソールを [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) から開きます。

1. ナビゲーションペインで **[サブネットグループ]** を選択します。
**ヒント**  
画面の左側にナビゲーションペインが表示されない場合は、ページの左上隅にあるメニューアイコン (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-menu-icon.png)) を選択します。

1. サブネットグループの詳細を表示するには、そのサブネットグループの名前を選択します。  
![\[スクリーンショット: サブネットグループの詳細を表示しています。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-subnet-group-details.png)

------
#### [ Using the AWS CLI ]

Amazon DocumentDB サブネットグループの詳細を見つけるには、次のパラメーターを指定した `describe-db-subnet-groups` オペレーションを使用します。

**パラメータ**
+ `--db-subnet=group-name` - オプションです。含まれている場合は、名前付きサブネットグループの詳細が一覧表示されます。省略すると、最大 100 個のサブネットグループの詳細が一覧表示されます。

**Example**  
次のコードは、`sample-subnet-group` セクションで作成した [Amazon DocumentDB サブネットグループの作成](document-db-subnet-group-create.md) サブネットグループの詳細を示しています。  
Linux、macOS、Unix の場合:  

```
aws docdb describe-db-subnet-groups \
    --db-subnet-group-name sample-subnet-group
```
Windows の場合:  

```
aws docdb describe-db-subnet-groups ^
    --db-subnet-group-name sample-subnet-group
```
このオペレーションによる出力は、次のようになります（JSON 形式）。  

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

------

# Amazon DocumentDB サブネットグループの変更
<a name="document-db-subnet-group-modify"></a>

AWS マネジメントコンソール または AWS CLI を使用して、サブネットグループの説明を変更したり、Amazon DocumentDB サブネットグループにサブネットを追加または削除できます。ただし、`default` サブネットグループは変更できません。

------
#### [ Using the AWS マネジメントコンソール ]

AWS マネジメントコンソール を使用して、サブネットグループの説明を変更したり、サブネットを追加および削除できます。完了したら、サブネットグループに少なくとも 2 つのアベイラビリティーゾーンが関連付けられている必要があります。

**サブネットグループを変更するには**

1. AWS マネジメントコンソール にサインインし、Amazon DocumentDB コンソールを次の場所で開きます。[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)。

1. ナビゲーションペインで **[サブネットグループ]** を選択します。次に、サブネットグループ名の左側にあるボタンを選択します。`default` サブネットグループは変更できないことに注意してください。
**ヒント**  
画面の左側にナビゲーションペインが表示されない場合は、ページの左上隅にあるメニューアイコン (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-menu-icon.png)) を選択します。

1. [**アクション**] を選択してから、[**変更**] を選択します。

1. **説明** — サブネットグループの説明を変更するには、新しい説明を入力します。

1. サブネットグループに関連付けられているサブネットを変更するには、[**Add subnets (サブネットの追加)**] セクションで、次のいずれかを実行します。
   + このサブネットグループからサブネットをすべて削除するには、[**Remove all (すべてを削除)**] を選択します。
   + このサブネットグループから特定のサブネットを削除するには、削除するサブネットごとに [**Remove (削除)** を選択します。
   + この VPC に関連付けられているすべてのサブネットを追加するには、[**Add all the subnets related to this VPC (このVPCに関連付けられているすべてのサブネットを追加])**] を選択します。
   + このサブネットグループに特定のサブネットを追加するには、サブネットを追加する各アベイラビリティーゾーンに対して次の手順を実行します。

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

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

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

1. 確認ダイアログボックスでは:
   + サブネットグループにこのような変更を行うには、[**Modify (変更)**] を選択します。
   + サブネットグループを変更しない場合は、[**キャンセル**] を選択してください。

------
#### [ Using the AWS CLI ]

AWS CLI を使用して、サブネットグループの説明を変更したり、サブネットを追加および削除できます。完了したら、サブネットグループに少なくとも 2 つのアベイラビリティーゾーンが関連付けられている必要があります。`default` サブネットグループを変更することはできません。

**パラメータ:**
+ `--db-subnet-group-name` — 必須 変更している Amazon DocumentDB サブネットグループの名前。
+ `--subnet-ids` — 必須 この変更が完了した後でサブネットグループに必要となるすべてのサブネットの一覧。
**重要**  
このリストに含まれていない、現在サブネットグループにあるサブネットはすべて、サブネットグループから削除されます。現在サブネットグループにあるサブネットのいずれかを保持したい場合は、それらをこのリストに含める必要があります。
+ `--db-subnet-group-description` - オプションです。サブネットグループの説明。

**Example**  
次のコードは説明を変更し、既存のサブネットをサブネット `subnet-991cb8d0`、`subnet-53ab3636`、および `subnet-29ab1025` に置き換えます。  
Linux、macOS、Unix の場合:  

```
aws docdb modify-db-subnet-group \
    --db-subnet-group-name sample-subnet-group \
    --subnet-ids subnet-991cb8d0 subnet-53ab3636 subnet-29ab1025 \
    --db-subnet-group-description "Modified subnet group"
```
Windows の場合:  

```
aws docdb modify-db-subnet-group ^
    --db-subnet-group-name sample-subnet-group ^
    --subnet-ids subnet-991cb8d0 subnet-53ab3636 subnet-29ab1025 ^
    --db-subnet-group-description "Modified subnet group"
```
このオペレーションによる出力は、次のようになります（JSON 形式）。これは、「[Amazon DocumentDB サブネットグループの作成](document-db-subnet-group-create.md)」セクションで作成したものと同じサブネットグループであることに注目します。ただし、サブネットグループ内のサブネットは、`modify-db-subnet-group` オペレーションで一覧表示されるものに置き換えられます。  

```
{
    "DBSubnetGroup": {
        "DBSubnetGroupArn": "arn:aws:rds:us-east-1:123SAMPLE012:subgrp:sample-subnet-group",
        "DBSubnetGroupDescription": "Modified subnet group",
        "SubnetGroupStatus": "Complete",
        "Subnets": [
            {
                "SubnetAvailabilityZone": {
                    "Name": "us-east-1d"
                },
                "SubnetStatus": "Active",
                "SubnetIdentifier": "subnet-53ab3636"
            },
            {
                "SubnetAvailabilityZone": {
                    "Name": "us-east-1b"
                },
                "SubnetStatus": "Active",
                "SubnetIdentifier": "subnet-991cb8d0"
            },
            {
                "SubnetAvailabilityZone": {
                    "Name": "us-east-1f"
                },
                "SubnetStatus": "Active",
                "SubnetIdentifier": "subnet-29ab1025"
            }
        ],
        "VpcId": "vpc-91280df6",
        "DBSubnetGroupName": "sample-subnet-group"
    }
}
```

------

# Amazon DocumentDB サブネットグループの削除
<a name="document-db-subnet-group-delete"></a>

Amazon DocumentDB サブネットグループを削除するには、AWS マネジメントコンソール または AWS CLI を使用できます。ただし、`default` サブネットグループは削除できません。

------
#### [ Using the AWS マネジメントコンソール ]

AWS マネジメントコンソール を使用してサブネットグループを削除できます。ただし、 `default` サブネットグループを削除することはできません。

**サブネットグループを削除するには**

1. AWS マネジメントコンソール にサインインし、Amazon DocumentDB コンソールを [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) から開きます。

1. ナビゲーションペインで **[サブネットグループ]** を選択します。次に、サブネットグループ名の左側にあるボタンを選択します。`default` サブネットグループは削除できないことに注意してください。
**ヒント**  
画面の左側にナビゲーションペインが表示されない場合は、ページの左上隅にあるメニューアイコン (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-menu-icon.png)) を選択します。

1. **[アクション]** を選択し、**[削除]** を選択します。

1. 確認ダイアログボックスでは:
   + サブネットグループを削除するには、[**削除**] を選択します。
   + サブネットグループを保持するには、**キャンセル** を選択します。

------
#### [ Using the AWS CLI ]

AWS CLI を使用して Amazon DocumentDB サブネットグループを削除するには、次のパラメータを使用して `delete-db-subnet-group` オペレーションを使用します。

**パラメータ**
+ `--db-subnet-group-name` — 必須 削除する Amazon DocumentDB サブネットグループの名前。`default` サブネットグループは削除できないことに注意してください。

**Example**  
次のコードは、`sample-subnet-group` を削除します。  
Linux、macOS、Unix の場合:  

```
aws docdb delete-db-subnet-group \
    --db-subnet-group-name sample-subnet-group
```
Windows の場合:  

```
aws docdb delete-db-subnet-group ^
    --db-subnet-group-name sample-subnet-group
```
このオペレーションでは何も出力されません。

------