本記事では、OceanBase CloudでAmazon Web Services(AWS) VPCのピアリング接続およびテナントのピアリング接続アドレスを作成し、そのアドレスを使用してデータベースに接続する方法について説明します。
前提条件
- OceanBase Cloudアカウントの登録が完了し、クラスタインスタンスとテナントが作成されていること。詳細については、クラスタインスタンスの作成およびテナントの作成を参照してください。対象インスタンスが配置されているリージョンでピアリング接続アドレス機能が有効になっており、コンソールに対応する作成画面への入口が表示されていること。
- AWSアカウントが登録済みであり、対象VPCを参照し、ピアリング接続リクエストを承認し、ルートテーブルを設定する権限が付与されていること。
- AWSでアプリケーションが配置されているVPCを選択または作成していること。アプリケーションVPCのリージョンは、OceanBase Cloudインスタンスのリージョンと一致している必要があります。
- アプリケーションVPCが属する**AWS アカウント ID、VPC ID、およびIPv4 CIDR**を取得し、アプリケーションが配置されているサブネットおよび実際に関連付けられているルートテーブルを確認していること。
- アプリケーションVPCのIPv4 CIDRが、OceanBase Cloudコンソールが提供するローカルOceanBase VPCのIPv4 CIDRと重複しないこと。VPCが複数のIPv4 CIDRに関連付けられている場合は、すべてのセグメントを確認する必要があります。詳細については、AWS VPCピアリング接続の制限を参照してください。
- クライアントがデータベースにアクセスするために使用するIPアドレスまたは必要なネットワークセグメントをテナントの許可リストに追加し、アプリケーション側のセキュリティグループ、ネットワークACLなどのネットワークポリシーが対象データベースのアドレスとポートへのアクセスを許可していることを確認していること。許可リストの設定については、IPアドレス許可リストの設定を参照してください。
説明
ピアリング接続は、アプリケーションVPCとOceanBase Cloudのサービス側ネットワークを接続するために使用されます。ピアリング接続アドレスは、特定のテナントにアクセスするために使用されます。初回使用時は、まずピアリング接続の設定を完了し、その後テナントアドレスを作成する必要があります。
ピアリング接続の初回使用
現在のプロジェクトで利用可能なピアリング接続がない場合は、まずピアリング接続を作成し、その後既存の利用可能なピアリング接続の手順に従ってテナントアクセスアドレスを作成してください。
ステップ1:OceanBase Cloudでピアリング接続を作成する
OceanBase Cloudクラウドデータベースコンソールにログインし、対象インスタンスが属するプロジェクトに切り替え、左側のナビゲーションバーで**ネットワーク**をクリックします。
ネットワーク設定ページで、**ピアリング接続を作成**をクリックします。
ポップアップダイアログで、以下の説明に従って**ステップ1:ピアリング接続を構成を完了し、作成**をクリックします。
構成パラメータ説明1. クラウドベンダーを選択 **AWS**を選択します。 ローカルOceanBase VPC 対象OceanBase Cloudインスタンスが存在するリージョンを選択し、ページで提供されているローカルVPC情報を使用します。ローカルVPCのIPv4 CIDRを記録しておいてください。後のアプリケーション側のルーティング設定で使用します。 ピアアプリケーションVPC **ピアアプリケーションVPC**エリアで以下のパラメータを設定します: - AWSアカウントID:アプリケーションVPCが属する12桁のAWSアカウントIDを入力します。AWS管理コンソールの右上隅のアカウントメニューで確認できます。
- ピアVPC ID:アプリケーションが配置されているVPCのIDを入力します。AWS VPCコンソールのYour VPCs(あなたのVPC)ページで確認できます。
- ピアCIDR:このアプリケーションVPCのIPv4 CIDRを入力します。例:
10.20.0.0/16。このネットワークセグメントは、ローカルOceanBase VPCのセグメントと重複してはなりません。
ピアリング接続リクエストの作成が完了するのを待ち、ローカルOceanBase VPC IDとピアアプリケーションVPC IDを記録します。
説明
本記事における「ローカル」とはOceanBase Cloudが提供するOceanBase VPCを、「ピア」とはお客様のアプリケーションVPCを指します。ピア情報の入力やルーティングの設定時には、この対応関係に基づいて確認してください。
ステップ2:AWSでピアリング接続リクエストを承認する
アプリケーションVPCが属するAWSアカウントを使用して、Amazon VPCコンソールにログインし、アプリケーションVPCが存在するリージョンを選択します。
左側のナビゲーションバーで**Peering connections(ピアリング接続)**を選択します。
状態がPending acceptance(承認待ち)のリクエストを見つけ、リクエスト側VPCがローカルOceanBase VPC、受け入れ側VPCがお客様のアプリケーションVPCであることを確認します。このリクエストのAWSピアリング接続IDを記録してください。その形式は
pcx-で始まります。その接続を選択し、**Actions(操作) > Accept request(リクエストを承認)**を選択して承認を確認します。
接続リストを更新し、接続状態が**Active(アクティブ)**に変わったことを確認します。
詳細な操作については、AWS:VPCピアリング接続の承認または拒否を参照してください。
ステップ3:アプリケーション側のルーティングを設定し、確認を完了する
OceanBase Cloudでピアリング接続を作成するためのガイドページで、ローカルOceanBase VPCのIPv4 CIDRをコピーします。
AWS VPCコンソールに戻り、**Route tables(ルートテーブル)**を選択し、アプリケーションが配置されているサブネットが実際に使用しているルートテーブルを見つけます。
**Routes(ルート) > Edit routes(ルートの編集) > Add route(ルートの追加)**を選択し、以下の情報を入力して保存します。
パラメータ説明Destination(宛先) OceanBase CloudコンソールからコピーしたローカルOceanBase VPC CIDRを入力します。 Target(ターゲットリソース) **Peering connection(ピアリング接続)**を選択し、ステップ2で記録したAWSピアリング接続ID( pcx-…)を選択します。ルートが有効になっており、状態がBlackholeではないことを確認します。アプリケーションが複数のサブネットに分散している場合は、これらのサブネットが実際に使用しているルートテーブルを一つずつ確認し、必要なルートを追加します。
OceanBase Cloudコンソールに戻り、**ステップ3:接続を承認し、ルートを追加するで完了**をクリックし、そのピアリング接続が利用可能であることを確認します。
説明
サブネットがカスタムルートテーブルに明示的に関連付けられている場合は、そのカスタムルートテーブルを変更する必要があります。明示的に関連付けられていない場合、サブネットはVPCのメインルートテーブルを使用します。アプリケーションのサブネットが使用していないルートテーブルにルートを追加しても、アプリケーションはデータベースにアクセスできません。詳細については、AWS:VPCピアリング接続のルートテーブルを更新するを参照してください。
ピアリング接続がActive状態になり、OceanBase Cloudでの設定が完了した後、テナントのピアリング接続アドレスを作成し、アプリケーションVPCからデータベース接続を検証する必要があります。
利用可能なピアリング接続が既に存在する場合
利用可能なピアリング接続が既に存在する場合は、それを再利用してテナントのアクセスアドレスを作成できます。選択した接続は、対象インスタンスが属するプロジェクトに含まれている必要があり、クラウドベンダーとリージョンはインスタンスと一致し、ピアVPCはアプリケーションが配置されているVPCである必要があります。
OceanBase Cloudデータベースコンソールにログインします。インスタンスページで、対象インスタンスを展開し、対象テナントで接続 > **接続文字列を取得**を選択します。
ポップアップウィンドウで、**VPCピアリング**を選択します。
**ステップ1:ピアリング接続アドレスの設定で、データベースへのアクセスに使用するピアリング接続IDを選択し、VPCピアリングエンドポイントを作成**をクリックします。
アドレスの作成が完了するのを待ち、ページに表示された利用可能なピアリング接続アドレスとポートを確認します。
**ステップ2: データベースにアクセス**で、既存のデータベースとアカウントを選択するか、必要に応じてデータベースとアカウントを作成します。
注意
新しいアカウントの作成を選択した場合は、生成されたパスワードを適切に保管してください。
接続方式(例:MySQL CLI)を選択し、コンソールで生成された接続文字列をコピーして、アプリケーションVPC内のクライアントで実行します。接続に成功すると、データベースにアクセスして利用できるようになります。
次のステップ
アドレスの確認と他のアドレスタイプの使用
アドレスの作成が完了すると、テナントのダッシュボードにある**トポロジー**でピアリング接続アドレス情報を確認できます。
ピアリング接続では、プライマリアドレス、読み取り専用アドレス、読み書き分離アドレスをサポートしています。使用時には、業務ニーズに応じて対応するアドレスの接続文字列を取得する必要があります。
ピアリング接続アドレスは、既存のPrivateLinkアドレスと同時に使用できます。アプリケーションが配置されているネットワークに応じて、適切なアドレスを選択できます。
アプリケーションVPCの変更またはアドレスの削除
アプリケーションVPCの変更などの理由でアドレスの再設定が必要な場合は、以下の手順で操作できます:
**インスタンス**ページで、対象テナント名をクリックして、テナントのダッシュボードに入ります。
**トポロジー**で削除するピアリング接続アドレスを見つけ、アドレス情報を確認した後、削除ボタンをクリックします。
アドレスの削除が完了したら、本記事の手順に従って、新しいアプリケーションVPCに接続するピアリング接続を選択または作成し、テナントアドレスを再作成して接続を検証します。
注意
アドレスの削除は、そのアドレスを使用しているアプリケーションの接続に影響します。事前に業務の切り替えを手配してください。
ピアリング接続は、複数のテナントやアドレスによって使用されている可能性があります。ピアリング接続自体を削除する必要がある場合は、関連するプライマリアドレス、読み取り専用アドレス、読み書き分離アドレスをすべて削除してから行ってください。関連するアドレスが存在する場合は、ピアリング接続を直接削除することはできません。
接続異常のトラブルシューティング
現象 |
チェック項目 |
|---|---|
| AWSで承認待ちのリクエストが見つからない | ログインしているAWSアカウント、選択したリージョン、およびリクエスト側と受け入れ側のVPCが今回の設定と一致しているか確認してください。 |
| ピアリング接続が作成できない | AWSアカウント、VPC ID、CIDRを確認します。両端のすべてのIPv4 CIDRが重複していないか、およびAWSピアリング接続のクォータを確認してください。 |
| ピアリング接続はActiveですが、データベース接続がタイムアウトする | アプリケーションサブネットが実際に使用しているルートテーブル、送信先CIDR、pcx-…が正しいか確認してください。また、アプリケーション側のセキュリティグループ、ネットワークACL、テナントの許可リスト、および実際のデータベースポートも確認してください。これらの設定が正常でもタイムアウトする場合は、OceanBase Cloudテクニカルサポートに連絡し、サービス側の通信経路を調査してもらってください。 |
| データベースのアドレスが解決できない | そのテナントのピアリング接続アドレスを使用していることを確認し、アプリケーションVPCのDNS設定とクライアントの解決結果を確認してください。 |
| データベースに接続できるが、アカウント認証に失敗する | コンソールで生成された完全なユーザー名、パスワード、および選択したデータベースを確認し、アカウント権限を確認してください。 |