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