

# RDS Proxy のネットワーク前提条件の設定
<a name="rds-proxy-network-prereqs"></a>

 RDS Proxy を使用するには、Aurora DB クラスターと RDS Proxy の間に、共通の仮想プライベートクラウド (VPC) が必要です。この VPC には、異なるアベイラビリティーゾーンにあるサブネットが 2 つ以上必要です。アカウントは、これらのサブネットを所有することも、他のアカウントと共有することもできます。VPC 共有の詳細については、[共有 VPC の操作](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html)を参照してください。

IPv6 をサポートするには、追加のネットワーク設定が必要です。
+ **IPv6 エンドポイントネットワークタイプ** – VPC とサブネットは IPv6 をサポートするように設定する必要があります。これには、VPC とサブネットに IPv6 CIDR ブロックを割り当てることが含まれます。
+ **デュアルスタックエンドポイントネットワークタイプ** – VPC とサブネットは IPv4 と IPv6 の両方のアドレス指定をサポートしている必要があります。
+ **IPv6 ターゲット接続ネットワークタイプ** – プロキシからの IPv6 接続をサポートするには、データベースをデュアルスタックモードに設定する必要があります。

Amazon EC2、Lambda、Amazon ECS などのクライアントアプリケーションリソースは、プロキシと同じ VPC に置くことができます。または、プロキシとは別の VPC に置くこともできます。 Aurora DB クラスターに正常に接続できた場合は、既に必要なネットワークリソースが存在します。

**Topics**
+ [サブネット情報の取得](#rds-proxy-network-prereqs.subnet-info)
+ [IP アドレス容量の計画](#rds-proxy-network-prereqs.plan-ip-address)

## サブネット情報の取得
<a name="rds-proxy-network-prereqs.subnet-info"></a>

 Aurora の使用を開始したばかりの場合は、「[Amazon Aurora の環境をセットアップする](CHAP_SettingUp_Aurora.md)」の手順に従って、データベースに接続するための基本を学習できます。「[Amazon Aurora の開始方法](CHAP_GettingStartedAurora.md)」のチュートリアルに従うこともできます。

プロキシを作成するには、プロキシが動作するサブネットと VPC を指定する必要があります。次の Linux の例は、AWS アカウント が所有する VPC とサブネットを調べる AWS CLI コマンドを示しています。特に、CLI を使用してプロキシを作成するときは、サブネット ID をパラメータとして渡します。

```
aws ec2 describe-vpcs
aws ec2 describe-internet-gateways
aws ec2 describe-subnets --query '*[].[VpcId,SubnetId]' --output text | sort
```

次の Linux の例は、特定の Aurora DB クラスターに対応するサブネット ID を決定する AWS CLI コマンドを示しています。

Aurora クラスターの場合は、まず、関連付けられた DB インスタンスの 1 つの ID を見つけます。その DB インスタンスで使用されているサブネット ID を抽出できます。そのためには、DB インスタンスの describe 出力で、`DBSubnetGroup` と`Subnets` 属性内のネストされたフィールドを調べます。データベースサーバーのプロキシを設定するときに、それらのサブネット ID の一部またはすべてを指定します。

```
$ # Find the ID of any DB instance in the cluster.
$  aws rds describe-db-clusters --db-cluster-identifier my_cluster_id --query '*[].[DBClusterMembers]|[0]|[0][*].DBInstanceIdentifier' --output text
```

```
my_instance_id
instance_id_2
instance_id_3
```

DB インスタンス識別子を見つけたら、関連する VPC を調べて、そのサブネットを見つけます。次の Linux の例はその方法を示しています。

```
$ #From the DB instance, trace through the DBSubnetGroup and Subnets to find the subnet IDs.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0]|[Subnets]|[0]|[*].SubnetIdentifier' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
...
```

```
$ #From the DB instance, find the VPC.
$ aws rds describe-db-instances --db-instance-identifier my_instance_id --query '*[].[DBSubnetGroup]|[0]|[0].VpcId' --output text
```

```
my_vpc_id
```

```
$ aws ec2 describe-subnets --filters Name=vpc-id,Values=my_vpc_id --query '*[].[SubnetId]' --output text
```

```
subnet_id_1
subnet_id_2
subnet_id_3
subnet_id_4
subnet_id_5
subnet_id_6
```

## IP アドレス容量の計画
<a name="rds-proxy-network-prereqs.plan-ip-address"></a>

RDS Proxy は、登録されている DB インスタンスの設定に基づいて自動的に容量を調整します。プロビジョニングされたインスタンスの場合、これはインスタンスサイズによって決まり、Aurora Serverless v2 インスタンスの場合、これは最大 ACU 容量によって決まります。特定の操作には、登録されたデータベースのサイズの増加や内部 RDS Proxy メンテナンス操作など、容量の追加が必要になる場合もあります。これらのオペレーション中、プロキシは追加の容量をプロビジョニングするため、より多くの IP アドレスを必要とする場合があります。これらの追加アドレスによって、ワークロードに影響を与えずにプロキシを拡張できます。サブネットに空き IP アドレスがない場合、プロキシのスケールアップはできません。そのため、クエリの待ち時間が長くなったり、クライアント接続が失敗したりする可能性があります。サブネットに十分な空きの IP アドレスがないと、RDS はイベント `RDS-EVENT-0243` を通じて通知します。このイベントのフィールドの詳細については、「[RDS Proxy イベントの使用RDS Proxy イベントの使用](rds-proxy.events.md)」を参照してください。

DB インスタンスクラスのサイズに基づいて、サブネット内に次の最少数の空き IP アドレスをプロキシ用として予約します。


|  DB インスタンスクラス  |  IP アドレスの最小値  | 
| --- | --- | 
|  db.\$1.xlarge 以下   |  10  | 
|  db.\$1.2xlarge   |  15  | 
|  db.\$1.4xlarge   |  25  | 
|  db.\$1.8xlarge   |  45  | 
|  db.\$1.12xlarge   |  60  | 
|  db.\$1.16xlarge   |  75  | 
|  db.\$1.24xlarge   |  110  | 

Aurora Serverless v2 の場合、最大 ACU 容量に基づいて、サブネット内に次の最少数の空き IP アドレスをプロキシ用として予約します。


| `Maximum ACU Capacity` |  IP アドレスの最小値  | 
| --- | --- | 
|  16 以下   |  10  | 
|  32  |  15  | 
|  64  |  25  | 
|  96  |  30  | 
|  128  |  40  | 
|  160  |  50  | 
|  192  |  55  | 
|  224  |  65  | 
|  256  |  75  | 

**注記**  
RDS Proxy は、VPC 内の各プロキシで 215 個を超える IP アドレスを使用しません。

RDS Proxy では、Aurora データベースに最低 10 個の IP アドレスが必要です。これらの推奨 IP アドレス数は、デフォルトのエンドポイントのみを使用するプロキシの推定値です。追加のカスタム エンドポイントごとに、追加で 3 つの IP アドレスを予約することをお勧めします。Aurora リーダーインスタンスごとに、そのリーダーの Aurora Serverless v2 ターゲットの最大 ACU またはプロビジョニングされたターゲットの DB インスタンスサイズに基づいて、テーブルで指定された追加の IP アドレスを予約することをお勧めします。

Aurora DB クラスターに関連付けられるプロキシに必要な IP アドレスを見積もるには、次の手順を実行します。
+ サイズ `db.r5.8xlarge` のプロビジョニングされたライターインスタンス 1 つと、サイズ `db.r5.2xlarge` のプロビジョニングされたリーダーインスタンス 1 つ。
+ このクラスターに接続されているプロキシには、デフォルトのエンドポイントと、読み取り専用ロールのカスタムエンドポイントがあります。

この場合、プロキシには約 63 個の空き IP アドレスが必要です (ライターインスタンス用に 45 個、リーダーインスタンス用に 15 個、追加のカスタムエンドポイント用に 3 個)。

Aurora DB クラスターに関連付けられるプロキシに必要な IP アドレスを見積もるには、以下が必要です。
+ 最大容量が 256 ACU の Aurora Serverless v2 ライターインスタンス 1 つと、最大容量が 192 ACU の Serverless v2 リーダーインスタンス 1 つ。
+ このクラスターに接続されているプロキシには、デフォルトのエンドポイントと、読み取り専用ロールのカスタムエンドポイントが 1 つずつあります。

この場合、プロキシには約 133 個の空き IP アドレスが必要です (ライターインスタンス用に 75 個、リーダーインスタンス用に 55 個、追加のカスタムエンドポイント用に 3 個)。

Aurora クラスターに関連付けられるプロキシに必要な IP アドレスを見積もるには、以下が必要です。
+ DB インスタンスサイズが db.r5.4xlarge のプロビジョニングされたライターインスタンス 1 つ、最大容量が 64 ACU の Serverless v2 リーダーインスタンス 1 つ。
+ このクラスターに接続されているプロキシには、デフォルトのエンドポイントと、読み取り専用ロールのカスタムエンドポイントが 1 つずつあります。

この場合、プロキシには約 53 個の空き IP アドレスが必要です (ライターインスタンス用に 25 個、リーダーインスタンス用に 25 個、追加のカスタムエンドポイント用に 3 個)。

Aurora DB クラスターに関連付けられるプロキシに必要な IP アドレスを見積もるには、以下が必要です。
+ サイズ db.r5.24xlarge のプロビジョニングされたライターインスタンス 1 つと、サイズ db.r5.8xlarge のプロビジョニングされたリーダーインスタンス 3 つ。
+ この DB クラスターに接続されているプロキシには、デフォルトのエンドポイントと、読み取り専用ロールのカスタムエンドポイントが 1 つずつあります。

この場合、プロキシには 215 個の空き IP アドレスが必要です。計算では 248 個の IP (110 \$1 (3\$145) \$1 3) が推奨されていますが、RDS Proxy は VPC 内のプロキシごとに 215 個を超える IP アドレスを消費しません。