本記事では、OceanBase CloudでAmazon Web Services(AWS) VPCのピアリング接続およびテナントのピアリング接続アドレスを作成し、そのアドレスを使用してデータベースに接続する方法について説明します。本記事では、AWSインターナショナルリージョンのOracleテナントを例に説明します。
前提条件
- 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はアプリケーションが配置されているVPCである必要があります。
OceanBase Cloudデータベースコンソールにログインします。**インスタンス**ページで、対象インスタンスを展開し、対象テナントで 接続 > 接続文字列を取得 を選択します。
ポップアップウィンドウで VPCピアリング を選択します。
ステップ1:ピアリング接続アドレスの設定 で、データベースへのアクセスに使用するピアリング接続IDを選択し、VPCピアリングエンドポイントを作成 をクリックします。
アドレスの作成が完了するのを待ち、ページに表示された利用可能なピアリング接続アドレスとポートを確認します。
ステップ2: データベースにアクセス で、既存のデータベースとアカウントを選択するか、必要に応じてデータベースとアカウントを作成します。
注意
新しいアカウントの作成を選択した場合は、生成されたパスワードを適切に保管してください。
必要に応じて接続方式(例:OBClient)を選択し、コンソールで生成された接続文字列をコピーして、アプリケーションVPC内のクライアントで実行します。接続に成功すれば、データベースにアクセスして利用できるようになります。
次のステップ
アドレスの確認および他のアドレスタイプの使用
アドレスの作成が完了したら、テナントのダッシュボードにある トポロジー でピアリング接続アドレス情報を確認できます。
ピアリング接続では、プライマリアドレス、読み取り専用アドレス、読み書き分離アドレスをサポートしています。使用する際は、業務ニーズに応じて対応するアドレスの接続文字列を取得する必要があります。
ピアリング接続アドレスは、既存のPrivateLinkアドレスと同時に使用できます。アプリケーションが配置されているネットワークに応じて、適切なアドレスを選択できます。
アプリケーションVPCの変更またはアドレスの削除
アプリケーションVPCの変更などの理由でアドレスを再設定する必要がある場合は、以下の手順で操作できます:
OceanBase Cloudコンソールの**インスタンス**ページで、対象テナント名をクリックしてテナントのダッシュボードに入ります。
テナントのダッシュボードにある トポロジー の下で、削除ボタンをクリックして作成したピアリング接続アドレスを削除します。
アドレスの削除が完了したら、本記事の手順に従って新しいアプリケーションVPCへのピアリング接続を選択または作成し、テナントアドレスを再作成して接続を検証します。
注意
アドレスの削除は、そのアドレスを使用するアプリケーションの接続に影響します。事前に業務の切り替えを手配してください。
ピアリング接続は複数のテナントやアドレスで使用されている可能性があります。ピアリング接続自体を削除する必要がある場合は、関連するプライマリアドレス、読み取り専用アドレス、読み書き分離アドレスをすべて削除してから行ってください。関連するアドレスが存在する場合、ピアリング接続を直接削除することはできません。
接続異常のトラブルシューティング
現象 |
チェック項目 |
|---|---|
| AWSで承認待ちのリクエストが見つかりません | ログインしているAWSアカウント、選択したリージョン、およびリクエスト側と受け入れ側のVPCが今回の設定と一致しているか確認してください。 |
| ピアリング接続が作成できません | AWSアカウント、VPC ID、CIDRを確認します。両端のすべてのIPv4 CIDRが重複していないか、およびAWSピアリング接続のクォータを確認してください。 |
| ピアリング接続はActiveですが、データベース接続がタイムアウトしました | アプリケーションサブネットが実際に使用しているルートテーブル、送信先CIDR、pcx-…が正しいか確認してください。アプリケーション側のセキュリティグループ、ネットワークACL、テナントの許可リスト、および実際のデータベースポートも確認してください。これらの設定が正常でもタイムアウトする場合は、OceanBase Cloudテクニカルサポートに連絡し、サービス側の通信経路を調査してもらってください。 |
| データベースのアドレスが解決できません | そのテナントのピアリング接続アドレスを使用していることを確認し、アプリケーションVPCのDNS設定とクライアントの解決結果を確認してください。 |
| データベースに接続できますが、アカウント認証に失敗しました | コンソールで生成された完全なユーザー名、パスワード、および選択したデータベースを確認し、アカウント権限を確認してください。 |