Amazon RDS Proxy エンドポイントの操作 - Amazon Relational Database Service

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 間エンドポイントを作成してアクセスする方法について説明します。

  1. 2 つの VPC を作成するか、Aurora と RDS が機能するように既に使用している 2 つの VPC を選択します。各 VPC には、インターネットゲートウェイ、ルートテーブル、サブネット、セキュリティグループなど、独自のネットワークリソースが関連付けられている必要があります。VPC が 1 つしかない場合は、Amazon RDS の開始方法 で別の VPC をセットアップして正常に RDS を使用できるようにする手順をご覧ください。Amazon EC2 コンソールで既存の VPC を調べて、相互に接続するリソースの種類を確認することもできます。

  2. 接続する Aurora DB クラスターまたは RDS インスタンスに関連付けられた DB プロキシを作成します。「RDS Proxy の作成」 の手順に従います。

  3. RDS コンソールのプロキシの [詳細] ページの [プロキシエンドポイント] セクションで、[エンドポイントの作成] を選択します。「プロキシエンドポイントの作成」 の手順に従います。

  4. クロス VPC エンドポイントを読み取り/書き込み可能にするか、読み取り専用にするかを選択します。

  5. Aurora DB クラスターまたは RDS インスタンスと同じ VPC のデフォルトを受け入れる代わりに、別の VPC を選択します。この VPC は、プロキシが存在する VPC と同じ AWS リージョンに存在する必要があります。

  6. これで、Aurora DB クラスターまたは RDS インスタンスと同じ VPC からサブネットとセキュリティグループのデフォルトを受け入れるのではなく、新しい選択を行います。選択した VPC のサブネットとセキュリティグループに基づいて、これらを作成します。

  7. Secrets Manager シークレットの設定を変更する必要はありません。各エンドポイントがどの VPC にあるかに関係なく、プロキシのすべてのエンドポイントで同じ認証情報が機能します。

  8. 新しいエンドポイントが Available (利用可能) 状態に達するのを待ちます。

  9. 完全なエンドポイント名を書き留めます。これは、データベースアプリケーションの接続文字列の一部として指定する、Region_name.rds.amazonaws.com で終わる値です。

  10. エンドポイントと同じ VPC 内のリソースから新しいエンドポイントにアクセスします。このプロセスをテストする簡単な方法は、この VPC 内に新しい EC2 インスタンスを作成することです。次に、EC2 インスタンスにログインし、mysql または psql コマンドを実行して、接続文字列のエンドポイント値を使用して接続できます。

プロキシエンドポイントの作成

プロキシエンドポイントを作成するには

  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[プロキシ] を選択します。

  3. 新しいエンドポイントを作成するプロキシの名前をクリックします。

    そのプロキシの詳細ページが表示されます。

  4. [プロキシエンドポイント] セクションで、[プロキシエンドポイントの作成] を選択します。

    [プロキシエンドポイントの作成] ウィンドウが表示されます。

  5. [プロキシエンドポイント名] に、選択したわかりやすい名前を入力します。

  6. [ターゲットロール] で、エンドポイントを読み取り/書き込みにするか、読み取り専用にするかを選択します。

    読み取り/書き込みエンドポイントを使用する接続では、データ定義言語 (DDL) ステートメント、データ操作言語 (DML) ステートメント、クエリなど、あらゆる種類の操作を実行できます。これらのエンドポイントは、常に Aurora クラスターのプライマリインスタンスに接続します。アプリケーションでエンドポイントを 1 つだけ使用する場合は、読み取り/書き込みエンドポイントを一般的なデータベース操作に使用できます。読み取り/書き込みエンドポイントは、管理操作、オンライントランザクション処理 (OLTP) アプリケーション、および抽出変換ロード (ETL) ジョブにも使用できます。

    読み取り専用エンドポイントを使用する接続では、クエリのみを実行できます。Aurora クラスターに複数のリーダーインスタンスがある場合、RDS Proxy はエンドポイントへの接続ごとに異なるリーダーインスタンスを使用できます。そうすれば、クエリを多用するアプリケーションは、Aurora のクラスタリング機能を利用できます。リーダー DB インスタンスを追加することで、クラスターにクエリキャパシティーを追加できます。読み取り専用接続では、クラスターのプライマリインスタンスでオーバーヘッドが発生することはありません。このようにすると、レポートおよび分析クエリによって、OLTP アプリケーションの書き込み操作の速度が低下することはありません。

  7. Virtual Private Cloud (VPC) では、プロキシまたはそれに関連付けられたデータベースに通常アクセスするのと同じ EC2 インスタンスまたは他のリソースからエンドポイントにアクセスする場合は、デフォルトを選択します。このプロキシに対してクロス VPC アクセスを設定する場合は、デフォルト以外の VPC を選択します。クロス VPC アクセスの詳細については、「Aurora へのアクセスと VPC 間の RDS データベース」を参照してください。

  8. Subnets では、RDS Proxy がデフォルトで関連するプロキシと同じサブネットを入力します。VPC のアドレス範囲の一部のみがエンドポイントに接続できるように、エンドポイントへのアクセスを制限する場合は、選択肢から 1 つ以上のサブネットを削除します。

  9. [VPC セキュリティグループ] で、既存のセキュリティグループを選択することも、新しいセキュリティグループを作成することもできます。RDS Proxy は、デフォルトで、関連付けられたプロキシと同じセキュリティグループを入力します。プロキシのインバウンドルールとアウトバウンドルールがこのエンドポイントに適切な場合は、デフォルトの選択肢のままにしておくことができます。

    新しいセキュリティグループを作成することにした場合は、このページでセキュリティグループの名前を指定します。その後、EC2 コンソールからセキュリティグループ設定を編集します。

  10. [プロキシエンドポイントの作成] を選択します。

プロキシエンドポイントを作成するには、AWS CLI create-db-proxy-endpoint コマンドを使用します。

以下の必須パラメータを含めます。

  • --db-proxy-name value

  • --db-proxy-endpoint-name value

  • --vpc-subnet-ids list_of_ids. サブネット ID はスペースで区切ります。VPC 自体の ID は指定しません。

また、次のオプションパラメータを含めることができます。

  • --target-role { READ_WRITE | READ_ONLY }このパラメータのデフォルトは です。READ_WRITEREAD_ONLY 値は、1 つ以上のリーダー DB インスタンスを含む Aurora プロビジョンドクラスターにのみ影響します。プロキシが RDS インスタンス、またはライター DB インスタンスのみを含む Aurora クラスターに関連付けられている場合、READ_ONLY を指定することはできません。

  • --vpc-security-group-ids value。セキュリティグループ ID はスペースで区切ります。このパラメータを省略すると、RDS Proxy は VPC にデフォルトのセキュリティグループを使用します。RDS Proxy は、--vpc-subnet-ids パラメータとして指定したサブネット ID に基づいて VPC を決定します。

次の例では、my-endpoint という名前のプロキシエンドポイントを作成します。

Linux、macOS、Unix の場合:

aws rds create-db-proxy-endpoint \ --db-proxy-name my-proxy \ --db-proxy-endpoint-name my-endpoint \ --vpc-subnet-ids subnet_id subnet_id subnet_id ... \ --target-role READ_ONLY \ --vpc-security-group-ids security_group_id ]

Windows の場合:

aws rds create-db-proxy-endpoint ^ --db-proxy-name my-proxy ^ --db-proxy-endpoint-name my-endpoint ^ --vpc-subnet-ids subnet_id_1 subnet_id_2 subnet_id_3 ... ^ --target-role READ_ONLY ^ --vpc-security-group-ids security_group_id

プロキシエンドポイントを作成するには、RDS API CreateProxyEndpoint アクションを使用します。

プロキシエンドポイントの表示

プロキシエンドポイントの詳細を表示するには

  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[プロキシ] を選択します。

  3. リストから、エンドポイントを表示するプロキシを選択します。プロキシ名をクリックして、詳細ページを表示します。

  4. で、プロキシエンドポイントセクションで、表示するエンドポイントを選択します。名前をクリックすると、詳細ページが表示されます。

  5. 関心のある値を持つパラメータを調べます。次のようなプロパティを確認できます。

    • エンドポイントが読み取り/書き込み可能か読み取り専用か。

    • データベース接続文字列で使用するエンドポイントアドレス。

    • エンドポイントに関連付けられた 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 つまたは複数のプロキシエンドポイントを変更するには

  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[プロキシ] を選択します。

  3. リストから、エンドポイントを変更するプロキシを選択します。プロキシ名をクリックして、詳細ページを表示します。

  4. [プロキシエンドポイント] セクションで、変更するエンドポイントを選択します。リストから選択するか、名前をクリックして詳細ページを表示できます。

  5. プロキシの詳細ページの [プロキシエンドポイント] セクションで、[編集] を選択します。または、プロキシエンドポイントの詳細ページの [アクション] で、[編集] を選択します。

  6. 変更するパラメータの値を変更します。

  7. [Save changes] (変更を保存) をクリックします。

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-name new-endpoint-name

Windows の場合:

aws rds modify-db-proxy-endpoint ^ --db-proxy-endpoint-name my-endpoint ^ --new-db-proxy-endpoint-name new-endpoint-name

プロキシエンドポイントを変更するには、RDS API の ModifyDBProxyEndpoint 操作を使用します。

プロキシエンドポイントの削除

次の手順に従って、コンソールを使用してプロキシのエンドポイントを削除できます。

注記

RDS Proxy がプロキシごとに自動的に作成されるデフォルトのエンドポイントを削除することはできません。

プロキシを削除すると、RDS Proxy は、関連するすべてのエンドポイントを自動的に削除します。

プロキシエンドポイントを削除するにはAWS Management Console

  1. ナビゲーションペインで、[プロキシ] を選択します。

  2. リストから、エンドポイントを設定するプロキシを選択します。プロキシ名をクリックして、詳細ページを表示します。

  3. [プロキシエンドポイント] セクションで、削除するエンドポイントを選択します。リストから 1 つ以上のエンドポイントを選択するか、1 つのエンドポイントの名前をクリックして詳細ページを表示できます。

  4. プロキシの詳細ページの [プロキシエンドポイント] セクションで、[削除] を選択します。または、プロキシエンドポイントの詳細ページの [アクション] で、[削除] を選択します。

プロキシエンドポイントを削除するには、次の必須パラメータを指定して 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 マルチライタークラスターでは使用できません。

SSL モード REQUIRED および VERIFY_CA を使用して、作成したプロキシエンドポイントに接続できます。SSL モード VERIFY_IDENTITY を使用して作成したエンドポイントに接続することはできません。