すべての ApsaraDB RDS for PostgreSQL インスタンスには、データベース接続用に少なくとも 1 つのエンドポイントとポート番号があります。利用可能なエンドポイントのタイプは、お使いの RDS のエディションによって異なります。これらのエンドポイントを使用した接続方法の詳細については、「ApsaraDB RDS for PostgreSQL インスタンスへの接続」をご参照ください。
-
RDS Basic Edition および RDS High-availability Edition: インスタンスエンドポイントとデータベースプロキシエンドポイント
-
RDS Cluster Edition: 読み書きエンドポイントと読み取り専用エンドポイント
RDS Basic Edition および RDS High-availability Edition
エンドポイントのタイプ
| エンドポイントタイプ | 説明 |
|---|---|
| インスタンスエンドポイント | すべての接続シナリオに適しています。内部ネットワーク経由での低レイテンシーアクセス用の内部エンドポイント (例: 同じ VPC 内の ECS インスタンスからのアクセス) と、インターネット経由でのアクセス用のパブリックエンドポイントが含まれます。 |
| データベースプロキシエンドポイント | データベースプロキシ機能が有効な場合に利用可能です。インスタンスでこの機能が有効になっている場合は、データベースプロキシエンドポイントを使用することを推奨します。これにより、読み書き分離のパフォーマンスが向上し、プライマリインスタンスの負荷が軽減されます。詳細については、「データベースプロキシとは」をご参照ください。 |
インスタンスエンドポイントとポート番号の変更
前提条件
開始する前に、次のことを確認してください。
-
インスタンス用に IP アドレスホワイトリストが設定されていること。詳細については、「IP アドレスホワイトリストの設定」をご参照ください。
-
必要に応じて、パブリックエンドポイントが申請されていること。詳細については、「パブリックエンドポイントの申請または解放」をご参照ください。
操作手順
-
「インスタンス」ページに移動します。上部メニューで、RDS インスタンスのリージョンを選択し、インスタンス ID をクリックします。
-
左側メニューで、[データベース接続] をクリックして、内部エンドポイント、パブリックエンドポイント、およびポート番号を表示します。
-
[データベース接続] セクションで、[エンドポイントの変更] をクリックします。
-
[接続タイプ] を [内部エンドポイント] または [パブリックエンドポイント] に設定します。[エンドポイント] プレフィックスと [ポート] 番号を変更し、[OK] をクリックします。
エンドポイントプレフィックスは、長さが 8~64 文字で、小文字、数字、ハイフン (-) を含めることができます。小文字で始まる必要があります。ポート番号は 1000~5999 の範囲である必要があります。RDS インスタンスがプレミアムローカル SSD で実行されている場合、ポート番号は変更できません。
データベースプロキシエンドポイントとポート番号の変更
前提条件
開始する前に、次のことを確認してください。
-
データベースプロキシ機能が有効になっていること。詳細については、「データベースプロキシ機能の有効化」をご参照ください。
操作手順
-
「インスタンス」ページに移動します。上部メニューで、RDS インスタンスのリージョンを選択し、インスタンス ID をクリックします。
-
左側メニューで、[データベースプロキシ] をクリックします。
-
[接続情報] セクションで、データベースプロキシエンドポイントを見つけ、その右側にある編集アイコンをクリックします。
-
[エンドポイント] プレフィックスと [ポート] 番号を変更し、[OK] をクリックします。
データベースプロキシエンドポイントプレフィックスは、長さが 1~40 文字で、小文字、数字、ハイフン (-) を含めることができます。小文字で始まる必要があります。ポート番号は 1000~5999 の範囲である必要があります。[エンドポイントタイプ] の値は変更できません。
よくある質問
エンドポイントまたはポート番号を変更した後、アプリケーションを更新する必要がありますか?
はい。アプリケーションのエンドポイントまたはポート番号をすぐに更新しないと、インスタンスへの接続に失敗します。
エンドポイントまたはポート番号の変更はすぐに有効になりますか?再起動は必要ですか?
変更はすぐに有効になります。インスタンスの再起動は必要ありません。
解放したエンドポイントを再利用できますか?
はい。エンドポイントが変更または解放された後、以前のエンドポイントは他の RDS インスタンスで利用可能になります。
プライマリ/セカンダリの切り替えによってエンドポイントは変更されますか?
いいえ。プライマリ/セカンダリの切り替え中もエンドポイントは変更されません。基盤となる IP アドレスのみが変更されます。アプリケーションは、変更することなく同じエンドポイントを介して接続を継続できます。
RDS Cluster Edition
RDS Cluster Edition を実行する RDS インスタンスは、RDS クラスターと呼ばれます。各クラスターは、異なるアクセスパターンに対応するために 2 種類のエンドポイントをサポートします。
エンドポイントのタイプ
| エンドポイントタイプ | 説明 |
|---|---|
| 読み書きエンドポイント | クラスターごとに 1 つ。プライマリノードにのみ接続します。プライマリ/セカンダリの切り替え中、エンドポイントは自動的に新しいプライマリノードにルーティングされます。内部エンドポイント (クラスター作成時に自動生成) とオプションのパブリックエンドポイントで構成されます。 |
| 読み取り専用エンドポイント | クラスターごとに 1 つ。トラフィックを 1 つ以上のセカンダリノードにルーティングします。ノードの追加と削除、および負荷分散のためのノードの重みの調整をサポートします。セカンダリノードの数は、常にユーザー定義の数と一致します。セカンダリノードに障害が発生した場合、自動的に再構築されます。セカンダリノードがプライマリに昇格した場合、新しいセカンダリノードが自動的に読み取り専用エンドポイントに追加されます。 |
読み書きエンドポイントの表示と管理
読み書きエンドポイントは、内部エンドポイントとパブリックエンドポイントで構成されます。内部エンドポイントは、クラスターの作成時に自動的に生成されます。ビジネス要件に基づいてパブリックエンドポイントを申請します。
-
「インスタンス」ページに移動します。上部メニューで、RDS インスタンスのリージョンを選択し、インスタンス ID をクリックします。
-
[基本情報] ページの [インスタンスのトポロジ管理] にある [データベース接続] セクションを見つけます。
-
読み書きエンドポイントの表示: [読み書きモード] カードにカーソルを合わせると、ツールチップにエンドポイントが表示されます。
-
読み書きエンドポイントの変更またはパブリックエンドポイントの申請: [編集] をクリックし、次のいずれかの操作を行います。
-
[接続の変更] をクリックして、内部エンドポイントとポート番号を変更します。
-
[VPC の変更] をクリックして、VPC と vSwitch を切り替えます。
-
[申請] をクリックして、パブリックエンドポイントを申請します。
-
-
または、[パブリックエンドポイントの申請] をクリックしてパブリックエンドポイントを申請することもできます。
読み取り専用エンドポイントの表示と管理
-
「インスタンス」ページに移動します。上部メニューで、RDS インスタンスのリージョンを選択し、インスタンス ID をクリックします。
-
[基本情報] ページの [インスタンスのトポロジ管理] にある [データベース接続] セクションを見つけ、必要に応じて操作を実行します。
読み取り専用エンドポイントの作成
クラスターが実行中である必要があります。読み取り専用エンドポイントを作成しても、既存の読み取りおよび書き込みリクエストには影響しません。クラスターごとに許可される読み取り専用エンドポイントは 1 つだけです。読み取り専用エンドポイント用に内部エンドポイントが自動的に生成され、セカンダリノード間で負荷分散が提供されます。
-
[エンドポイントの追加] をクリックします。
-
ダイアログボックスで、[内部エンドポイントプレフィックス]、[ポート]、[VPC]、および [vSwitch] を設定します。アクセスするセカンダリノードを追加し、その重みを調整します。
-
[OK] をクリックします。
読み取り専用エンドポイントの削除
読み取り専用エンドポイントを削除すると、その内部エンドポイントとパブリックエンドポイントの両方が解放され、確立されているすべての接続が中断されます。クラスターへの既存の読み取りおよび書き込みリクエストには影響しません。
-
[読み取り専用モード] カードで、[削除] をクリックします。
-
確認メッセージで、[OK] をクリックします。
読み取り専用エンドポイントの表示
[読み取り専用モード] カードにカーソルを合わせると、読み取り専用エンドポイントが表示されます。
ノードの追加または削除
クラスターが実行中である必要があります。読み取り専用エンドポイントには、少なくとも 1 つのノードが残っている必要があります。ノード構成の変更は、読み取り専用エンドポイントの内部エンドポイントとパブリックエンドポイントの両方に適用されます。
ノードの追加:
-
[読み取り専用モード] カードで [編集] をクリックし、追加するノードを選択します。
-
追加アイコンをクリックしてノードを追加します。
-
必要に応じてノードの重みを調整し、[OK] をクリックします。
ノードを追加しても、既存の永続的な接続には影響しません。新しい接続は、更新された重みに基づいて分散されます。
ノードの削除:
-
[読み取り専用モード] カードで [編集] をクリックし、削除するノードを選択します。
-
削除アイコンをクリックし、[OK] をクリックします。
ノードを削除すると、そのノードは約 30~120 秒間利用できなくなります。他のノードへの接続には影響しません。
ノードの重みの調整
クラスターが実行中である必要があります。少なくとも 1 つのノードの重みが 0 より大きい必要があります。重みの変更は、読み取り専用エンドポイントの内部エンドポイントとパブリックエンドポイントの両方に適用されます。
-
[読み取り専用モード] カードで、[編集] をクリックします。
-
ダイアログボックスでノードの重みを調整し、[OK] をクリックします。
既存の接続には影響しません。更新された重みの配分に従うのは、新しい接続のみです。
よくある質問
同じ重みを持つノードの CPU とメモリの使用率が異なるのはなぜですか?
Server Load Balancer (SLB) は接続をノード間で均等に分散しますが、個々の接続のリソース消費量は異なります。接続数が同じであっても、CPU やメモリの使用率が同じであるとは限りません。
ノードの重みを調整するとダウンタイムが発生しますか?
いいえ。既存の接続はアクティブなままです。更新された重みに従ってルーティングされるのは、新しい接続のみです。
すべてのノードの重みを 0 に設定できますか?
いいえ。少なくとも 1 つのノードの重みが 0 より大きい必要があります。
読み取り専用エンドポイントからすべてのノードを削除できますか?
いいえ。読み取り専用エンドポイントには、少なくとも 1 つのノードが残っている必要があります。
関連 API
RDS Cluster Edition を実行する ApsaraDB RDS for PostgreSQL インスタンスのエンドポイント管理に利用できる API は次のとおりです。
| API | 説明 |
|---|---|
| CreateDBInstanceEndpoint | エンドポイントを作成します |
| DescribeDBInstanceEndpoints | エンドポイントを照会します |
| ModifyDBInstanceEndpointAddress | エンドポイントアドレスを変更します |
| CreateDBInstanceEndpointAddress | パブリックエンドポイントを作成します |
| DeleteDBInstanceEndpointAddress | パブリックエンドポイントを解放します |
| DeleteDBInstanceEndpoint | エンドポイントを削除します |
| ModifyDBInstanceEndpoint | エンドポイントのノードの重みを変更します |