Amazon RDS Proxy エンドポイントの操作
次に、RDS Proxy のエンドポイントとその使用方法について説明します。エンドポイントを使用すると、次の機能を活用できます。
-
プロキシで複数のエンドポイントを使用して、異なるアプリケーションからの接続を個別にモニタリングおよびトラブルシューティングできます。
-
Aurora DB クラスターでリーダーエンドポイントを使用して、クエリを多用するアプリケーションの読み取りスケーラビリティと可用性を向上させることができます。
-
クロス VPC エンドポイントを使用して、ある VPC のデータベースに別の VPC の Amazon EC2 インスタンスなどのリソースからアクセスできるようにすることができます。
トピック
プロキシエンドポイントの概要
RDS Proxy エンドポイントを使用する際は、Aurora DB クラスターとリーダーエンドポイントおよび RDS インスタンスのエンドポイントと同じ種類の手順に従います。RDS エンドポイントに詳しくない場合は、「MySQL データベースエンジンを実行している DB インスタンスへの接続」および「PostgreSQL データベースエンジンを実行している DB インスタンスへの接続」で詳細を確認してください。
デフォルトでは、RDS Proxy を Aurora クラスターで使用するときに接続するエンドポイントには読み取り/書き込み機能があります。そのため、このエンドポイントではすべてのリクエストをクラスターのライターインスタンスに送信します。これらの接続はすべて、ライターインスタンスの max_connections
値にカウントされます。プロキシが Aurora DB クラスターに関連付けられている場合は、そのプロキシ用に追加の読み取り/書き込みエンドポイントまたは読み取り専用エンドポイントを作成できます。
プロキシで読み取り専用エンドポイントを使用すると、読み取り専用クエリを実行できます。これは、Aurora のプロビジョニング済みクラスターにリーダーエンドポイントを使用するのと同じ方法です。そうすることで、1 つ以上のリーダー DB インスタンスを持つ Aurora クラスターの読み取りスケーラビリティを活用するのに役立ちます。読み取り専用エンドポイントを使用し、必要に応じて Aurora クラスターにリーダー DB インスタンスを追加することで、より多くの同時クエリを実行し、より多くの同時接続を確立できます。
作成したプロキシエンドポイントについては、プロキシ自体が使用するものとは異なる Virtual Private Cloud (VPC) にエンドポイントを関連付けることもできます。これにより、組織内の別のアプリケーションで使用される VPC など、別の VPC からプロキシに接続できます。
プロキシエンドポイントに関連付けられた制限の詳細については、「プロキシエンドポイントの制限」を参照してください。
RDS Proxy ログでは、各エントリの前に、関連付けられたプロキシエンドポイントの名前が付けられます。この名前には、ユーザー定義のエンドポイントに指定した名前を使用できます。または、読み取り/書き込みリクエストに対し、プロキシのデフォルトエンドポイントを使用して、特別な名前の default
にすることができます。
各プロキシのエンドポイントには、独自の CloudWatch メトリクスのセットがあります。プロキシのすべてのエンドポイントのメトリクスをモニタリングできます。また、プロキシの特定のエンドポイント、またはそのすべての読み取り/書き込みまたは読み取り専用エンドポイントのメトリクスをモニタリングすることもできます。詳細については、「Amazon CloudWatch を使用した RDS Proxy メトリクスのモニタリング」を参照してください。
プロキシエンドポイントは、関連付けられたプロキシと同じ認証メカニズムを使用します。RDS Proxy は、関連付けられたプロキシのプロパティと整合させて、ユーザー定義のエンドポイントのアクセス許可と認可を自動的に設定します。
リーダーエンドポイント
RDS Proxy では、リーダーエンドポイントを作成して使用できます。ただし、これらのエンドポイントは、Aurora DBクラスターに関連付けられたプロキシに対してのみ機能します。AWS Management Console にリーダーエンドポイントへの参照が表示される場合があります。RDS CLI または API を使用する場合、値が TargetRole
で、READ_ONLY
の属性が表示される場合があります。プロキシのターゲットを RDS DB インスタンスから Aurora DB クラスターに変更することで、これらの機能を利用できます。リーダーエンドポイントについては、Aurora ユーザーガイドの「Amazon RDS Proxy の接続の管理」を参照してください。
Aurora へのアクセスと VPC 間の RDS データベース
デフォルトでは、RDS と Aurora テクノロジースタックのコンポーネントはすべて同じ Amazon VPC にあります。例えば、Amazon EC2 インスタンスで実行されているアプリケーションが Amazon RDS DB インスタンスまたは DB Aurora クラスターに接続するとします。この場合、アプリケーションサーバーとデータベースは両方とも同じ VPC 内に存在する必要があります。
RDS Proxy により、別の VPC の EC2 インスタンスなどのリソースから、ある VPC の Aurora クラスターまたは RDS インスタンスへのアクセスを設定できます。例えば、組織に、同じデータベースリソースにアクセスする複数のアプリケーションがあるとします。各アプリケーションは独自の VPC 内にある場合があります。
クロス VPC アクセスを有効にするには、プロキシの新しいエンドポイントを作成します。プロキシエンドポイントの作成に詳しくない場合は、「Amazon RDS Proxy エンドポイントの操作」を参照してください。プロキシ自体は、Aurora DB クラスターまたは RDS インスタンスと同じ VPC に存在します。ただし、クロス VPC エンドポイントは、EC2 インスタンスなどの他のリソースとともに、他の VPC に存在します。クロス VPC エンドポイントは、EC2 および他のリソースと同じ VPC のサブネットおよびセキュリティグループに関連付けられます。このような関連付けにより、VPC の制限によりデータベースにアクセスできないアプリケーションからエンドポイントに接続できます。
次のステップでは、RDS Proxy を使用して VPC 間エンドポイントを作成してアクセスする方法について説明します。
-
2 つの VPC を作成するか、Aurora と RDS が機能するように既に使用している 2 つの VPC を選択します。各 VPC には、インターネットゲートウェイ、ルートテーブル、サブネット、セキュリティグループなど、独自のネットワークリソースが関連付けられている必要があります。VPC が 1 つしかない場合は、Amazon RDS のスタート方法 で別の VPC をセットアップして正常に RDS を使用できるようにするステップをご覧ください。Amazon EC2 コンソールで既存の VPC を調べて、相互に接続するリソースの種類を確認することもできます。
-
接続する Aurora DB クラスターまたは RDS インスタンスに関連付けられた DB プロキシを作成します。「RDS Proxy の作成」 の手順に従います。
-
RDS コンソールのプロキシの [詳細] ページの [プロキシエンドポイント] セクションで、[エンドポイントの作成] を選択します。「プロキシエンドポイントの作成」 の手順に従います。
-
クロス VPC エンドポイントを読み取り/書き込み可能にするか、読み取り専用にするかを選択します。
-
Aurora DB クラスターまたは RDS インスタンスと同じ VPC のデフォルトを受け入れる代わりに、別の VPC を選択します。この VPC は、プロキシが存在する VPC と同じ AWS リージョンに存在する必要があります。
-
これで、Aurora DB クラスターまたは RDS インスタンスと同じ VPC からサブネットとセキュリティグループのデフォルトを受け入れるのではなく、新しい選択を行います。選択した VPC のサブネットとセキュリティグループに基づいて、これらを作成します。
-
Secrets Manager シークレットの設定を変更する必要はありません。各エンドポイントがどの VPC にあるかに関係なく、プロキシのすべてのエンドポイントで同じ認証情報が機能します。
-
新しいエンドポイントが Available (利用可能) 状態に達するのを待ちます。
-
完全なエンドポイント名を書き留めます。これは、データベースアプリケーションの接続文字列の一部として指定する、
で終わる値です。Region_name
.rds.amazonaws.com -
エンドポイントと同じ VPC 内のリソースから新しいエンドポイントにアクセスします。このプロセスをテストする簡単な方法は、この VPC 内に新しい EC2 インスタンスを作成することです。次に、EC2 インスタンスにログインし、
mysql
またはpsql
コマンドを実行して、接続文字列のエンドポイント値を使用して接続できます。
プロキシエンドポイントの作成
プロキシエンドポイントを作成するには
-
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[プロキシ] を選択します。
-
新しいエンドポイントを作成するプロキシの名前をクリックします。
そのプロキシの詳細ページが表示されます。
-
[プロキシエンドポイント] セクションで、[プロキシエンドポイントの作成] を選択します。
[プロキシエンドポイントの作成] ウィンドウが表示されます。
-
[プロキシエンドポイント名] に、選択したわかりやすい名前を入力します。
-
[ターゲットロール] で、エンドポイントを読み取り/書き込みにするか、読み取り専用にするかを選択します。
読み取り/書き込みエンドポイントを使用する接続では、データ定義言語 (DDL) ステートメント、データ操作言語 (DML) ステートメント、クエリなど、あらゆる種類の操作を実行できます。これらのエンドポイントは、常に Aurora クラスターのプライマリインスタンスに接続します。アプリケーションでエンドポイントを 1 つだけ使用する場合は、読み取り/書き込みエンドポイントを一般的なデータベース操作に使用できます。読み取り/書き込みエンドポイントは、管理操作、オンライントランザクション処理 (OLTP) アプリケーション、および抽出変換ロード (ETL) ジョブにも使用できます。
読み取り専用エンドポイントを使用する接続では、クエリのみを実行できます。Aurora クラスターに複数のリーダーインスタンスがある場合、RDS Proxy はエンドポイントへの接続ごとに異なるリーダーインスタンスを使用できます。そうすれば、クエリを多用するアプリケーションは、Aurora のクラスタリング機能を利用できます。リーダー DB インスタンスを追加することで、クラスターにクエリ容量を追加できます。読み取り専用接続では、クラスターのプライマリインスタンスでオーバーヘッドが発生することはありません。このようにすると、レポートおよび分析クエリによって、OLTP アプリケーションの書き込み操作の速度が低下することはありません。
-
仮想プライベートクラウド (VPC) では、デフォルトで、プロキシまたはそれに関連付けられたデータベースに通常アクセスするのと同じ EC2 インスタンスまたは他のリソースからエンドポイントにアクセスするように選択します。このプロキシに対してクロス VPC アクセスを設定するには、デフォルト以外の VPC を選択します。クロス VPC アクセスの詳細については、「Aurora へのアクセスと VPC 間の RDS データベース」を参照してください。
-
Subnets では、RDS Proxy がデフォルトで関連するプロキシと同じサブネットを入力します。VPC のアドレス範囲の一部のみがエンドポイントに接続できるように、エンドポイントへのアクセスを制限するには、1 つまたは複数のサブネットを削除します。
-
[VPC セキュリティグループ] で、既存のセキュリティグループを選択することも、新しいセキュリティグループを作成することもできます。RDS Proxy は、デフォルトで、関連付けられたプロキシと同じセキュリティグループを入力します。プロキシのインバウンドルールとアウトバウンドルールがこのエンドポイントに適切な場合は、デフォルトの選択肢のままにしておくことができます。
新しいセキュリティグループを作成することにした場合は、このページでセキュリティグループの名前を指定します。その後、EC2 コンソールからセキュリティグループ設定を編集します。
-
[プロキシエンドポイントの作成] を選択します。
プロキシエンドポイントを作成するには、AWS CLI create-db-proxy-endpoint コマンドを使用します。
以下の必須パラメータを含めます。
-
--db-proxy-name
value
-
--db-proxy-endpoint-name
value
-
--vpc-subnet-ids
. サブネット ID はスペースで区切ります。VPC 自体の ID は指定しません。list_of_ids
また、次のオプションパラメータを含めることができます。
-
--target-role { READ_WRITE | READ_ONLY }
このパラメータのデフォルトは です。READ_WRITE
READ_ONLY
値は、1 つ以上のリーダー DB インスタンスを含む Aurora プロビジョンドクラスターにのみ影響します。プロキシが RDS インスタンス、またはライター DB インスタンスのみを含む Aurora クラスターに関連付けられている場合、READ_ONLY
を指定することはできません。 -
--vpc-security-group-ids
。セキュリティグループ ID はスペースで区切ります。このパラメータを省略すると、RDS Proxy は VPC にデフォルトのセキュリティグループを使用します。RDS Proxy は、value
--vpc-subnet-ids
パラメータとして指定したサブネット ID に基づいて VPC を決定します。
例
次の例では、my-endpoint
という名前のプロキシエンドポイントを作成します。
Linux、macOS、Unix の場合:
aws rds create-db-proxy-endpoint \ --db-proxy-name
my-proxy
\ --db-proxy-endpoint-namemy-endpoint
\ --vpc-subnet-idssubnet_id
subnet_id
subnet_id
... \ --target-role READ_ONLY \ --vpc-security-group-idssecurity_group_id
]
Windows の場合:
aws rds create-db-proxy-endpoint ^ --db-proxy-name
my-proxy
^ --db-proxy-endpoint-namemy-endpoint
^ --vpc-subnet-idssubnet_id_1
subnet_id_2
subnet_id_3
... ^ --target-role READ_ONLY ^ --vpc-security-group-idssecurity_group_id
プロキシエンドポイントを作成するには、RDS API CreateDBProxyEndpoint アクションを使用します。
プロキシエンドポイントの表示
プロキシエンドポイントの詳細を表示するには
-
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[プロキシ] を選択します。
-
リストから、エンドポイントを表示するプロキシを選択します。プロキシ名をクリックして、詳細ページを表示します。
-
で、プロキシエンドポイントセクションで、表示するエンドポイントを選択します。名前をクリックすると、詳細ページが表示されます。
-
関心のある値を持つパラメータを調べます。次のようなプロパティを確認できます。
-
エンドポイントが読み取り/書き込み可能か読み取り専用か。
-
データベース接続文字列で使用するエンドポイントアドレス。
-
エンドポイントに関連付けられた VPC、サブネットおよびセキュリティグループ。
-
1 つ以上の DB プロキシエンドポイントを表示するには、AWS CLI describe-db-proxy-endpoints コマンドを使用します。
以下のオプションのパラメータを含めることができます。
-
--db-proxy-endpoint-name
-
--db-proxy-name
次の例では、my-endpoint
プロキシエンドポイントについて説明します。
例
Linux、macOS、Unix の場合:
aws rds describe-db-proxy-endpoints \ --db-proxy-endpoint-name
my-endpoint
Windows の場合:
aws rds describe-db-proxy-endpoints ^ --db-proxy-endpoint-name
my-endpoint
1 つ以上のプロキシエンドポイントを記述するには、RDS API DescribeDBProxyEndpoints オペレーションを使用します。
プロキシエンドポイントの変更
1 つまたは複数のプロキシエンドポイントを変更するには
-
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[プロキシ] を選択します。
-
リストから、エンドポイントを変更するプロキシを選択します。プロキシ名をクリックして、詳細ページを表示します。
-
[プロキシエンドポイント] セクションで、変更するエンドポイントを選択します。リストから選択するか、名前をクリックして詳細ページを表示できます。
-
プロキシの詳細ページの [プロキシエンドポイント] セクションで、[編集] を選択します。または、プロキシエンドポイントの詳細ページの [アクション] で、[編集] を選択します。
-
変更するパラメータの値を変更します。
-
[変更の保存] をクリックします。
DB プロキシエンドポイントを変更するには、次の必須パラメータを指定して AWS CLI modify-db-proxy-endpoint コマンドを使用します。
-
--db-proxy-endpoint-name
次のパラメータの 1 つまたは複数を使用して、エンドポイントプロパティの変更を指定します。
-
--new-db-proxy-endpoint-name
-
--vpc-security-group-ids
。セキュリティグループ ID はスペースで区切ります。
次の例では、my-endpoint
プロキシエンドポイントの名前を new-endpoint-name
に変更します。
例
Linux、macOS、Unix の場合:
aws rds modify-db-proxy-endpoint \ --db-proxy-endpoint-name
my-endpoint
\ --new-db-proxy-endpoint-namenew-endpoint-name
Windows の場合:
aws rds modify-db-proxy-endpoint ^ --db-proxy-endpoint-name
my-endpoint
^ --new-db-proxy-endpoint-namenew-endpoint-name
プロキシエンドポイントを変更するには、RDS API の ModifyDBProxyEndpoint 操作を使用します。
プロキシエンドポイントの削除
次の手順に従って、コンソールを使用してプロキシのエンドポイントを削除できます。
RDS Proxy がプロキシごとに自動的に作成されるデフォルトのエンドポイントを削除することはできません。
プロキシを削除すると、RDS Proxy は、関連するすべてのエンドポイントを自動的に削除します。
プロキシエンドポイントを削除するにはAWS Management Console
-
ナビゲーションペインで、[プロキシ] を選択します。
-
リストから、エンドポイントを設定するプロキシを選択します。プロキシ名をクリックして、詳細ページを表示します。
-
[プロキシエンドポイント] セクションで、削除するエンドポイントを選択します。リストから 1 つ以上のエンドポイントを選択するか、1 つのエンドポイントの名前をクリックして詳細ページを表示できます。
-
プロキシの詳細ページの [プロキシエンドポイント] セクションで、[削除] を選択します。または、プロキシエンドポイントの詳細ページの [アクション] で、[削除] を選択します。
プロキシエンドポイントを削除するには、次の必須パラメータを指定して delete-db-proxy-endpoint コマンドを実行します。
-
--db-proxy-endpoint-name
次のコマンドは、my-endpoint
という名前のプロキシエンドポイントを削除します。
Linux、macOS、Unix の場合:
aws rds delete-db-proxy-endpoint \ --db-proxy-endpoint-name
my-endpoint
Windows の場合:
aws rds delete-db-proxy-endpoint ^ --db-proxy-endpoint-name
my-endpoint
RDS API でプロキシエンドポイントを削除するには、DeleteDBProxyEndpoint オペレーションを実行します。DBProxyEndpointName
パラメータのプロキシエンドポイントの名前を指定します。
プロキシエンドポイントの制限
各プロキシには、変更できるが作成または削除できないデフォルトのエンドポイントがあります。
プロキシのユーザー定義エンドポイントの最大数は 20 です。したがって、プロキシには最大 21 個のエンドポイント (デフォルトのエンドポイントとユーザーが作成する 20) を持つことができます。
追加のエンドポイントをプロキシに関連付けると、RDS Proxy は、クラスター内のどの DB インスタンスをエンドポイントごとに使用するかを自動的に決定します。Aurora カスタムエンドポイントの場合とは異なり、特定のインスタンスを選択することはできません。
リーダーエンドポイントは、Aurora マルチライタークラスターでは使用できません。