RDS Proxy のネットワーク前提条件の設定
RDS Proxy を使用するには、Aurora DB クラスターと RDS Proxy の間に、共通の仮想プライベートクラウド (VPC) が必要です。この VPC には、異なるアベイラビリティーゾーンにあるサブネットが 2 つ以上必要です。アカウントは、これらのサブネットを所有することも、他のアカウントと共有することもできます。VPC 共有の詳細については、共有 VPC の操作を参照してください。
Amazon EC2、Lambda、Amazon ECS などのクライアントアプリケーションリソースは、プロキシと同じ VPC に置くことができます。または、プロキシとは別の VPC に置くこともできます。 Aurora DB クラスターに正常に接続できた場合は、既に必要なネットワークリソースが存在します。
サブネット情報の取得
Aurora の使用を開始したばかりの場合は、「Amazon Aurora の環境をセットアップする」の手順に従って、データベースに接続するための基本を学習できます。「Amazon Aurora の開始方法」のチュートリアルに従うこともできます。
プロキシを作成するには、プロキシが動作するサブネットと 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-identifiermy_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-identifiermy_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-identifiermy_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 アドレス容量の計画
RDS Proxy は、登録されている DB インスタンスのサイズと数に基づき、必要に応じて自動的に容量を調整します。特定の操作には、登録されたデータベースのサイズの増加や内部 RDS Proxy メンテナンス操作など、プロキシ容量の追加が必要になる場合もあります。これらのオペレーション中、プロキシは追加の容量をプロビジョニングするため、より多くの IP アドレスを必要とする場合があります。これらの追加アドレスによって、ワークロードに影響を与えずにプロキシを拡張できます。サブネットに空き IP アドレスがない場合、プロキシのスケールアップはできません。そのため、クエリの待ち時間が長くなったり、クライアント接続が失敗したりする可能性があります。サブネットに十分な空きの IP アドレスがないと、RDS はイベント RDS-EVENT-0243
を通じて通知します。このイベントのフィールドの詳細については、「RDS Proxy イベントの使用」を参照してください。
以下は、DB インスタンスのクラスサイズに基づいて、プロキシ用としてサブネットで未使用のままにすべき最小の IP アドレス数の推奨値です。
DB インスタンスクラス | IP アドレスの最小値 |
---|---|
db.*.xlarge 以下 |
10 |
db.*.2xlarge |
15 |
db.*.4xlarge |
25 |
db.*.8xlarge |
45 |
db.*.12xlarge |
60 |
db.*.16xlarge |
75 |
db.*.24xlarge |
110 |
これらの推奨 IP アドレス数は、デフォルトのエンドポイントのみを使用するプロキシの推定値です。エンドポイントまたはリードレプリカを追加したプロキシには、さらに多くの空き IP アドレスが必要になる場合があります。エンドポイントを追加するたびに、追加で 3 つの IP アドレスを予約することをお勧めします。各リードレプリカに、そのリードレプリカのサイズに基づき、表に指定された IP アドレスを追加で予約することをお勧めします。
注記
RDS Proxy は、VPC 内で 215 を超える IP アドレスをサポートしていません。
例えば、Aurora DB クラスターに関連付けられるプロキシに必要な IP アドレスを見積もるとします。
この場合、次のように仮定します。
Aurora DB クラスターには、サイズが db.r5.8xlarge のライターインスタンスが 1 つと、サイズが db.r5.2xlarge のリーダーインスタンスが 1 つあります。
この DB クラスターに接続されているプロキシには、デフォルトのエンドポイントと、読み取り専用ロールのカスタムエンドポイントが 1 つずつあります。
この場合、プロキシには約 63 個の空き IP アドレスが必要です (ライターインスタンス用に 45 個、リーダーインスタンス用に 15 個、追加のカスタムエンドポイント用に 3 個)。