本記事では、OceanBase Cloud フラッグシップ版インスタンスのネットワーク接続設定について説明します。
前提条件
- OceanBase Cloudアカウントの登録が完了し、クラスタインスタンスとテナントが作成されていること。詳細については、クラスタインスタンスの作成およびテナントの作成を参照してください。
- アプリケーションのデプロイメント場所(ローカル開発マシン、クラウド上のECS/VMなど)とクラウドベンダーが特定されていること。これにより、適切な接続方式を選択できます。
背景
テナント作成後、アプリケーションからデータベースに直接アクセスすることはできません。通常、以下の2種類の設定が必要です:
アクセス制御:データベースに接続できるIPを制限します。
接続方式ごとのアクセス制御要件は以下のとおりです:
クラウドベンダー接続方式テナントのホワイトリストが必要かアクセス制御の説明すべて パブリックネットワーク接続 はい クライアントのエグジットIPをホワイトリストに追加 Alibaba Cloud プライベートネットワーク接続 はい アクセス制御のため、クライアントIPをテナントのホワイトリストに追加する必要があります Huawei Cloud プライベートネットワーク接続 (PrivateLink) いいえ エンドポイントのセキュリティグループによって制御されます AWS プライベートネットワーク接続 (PrivateLink) はい クライアントIPをホワイトリストに追加する必要があります Huawei Cloud ピア接続 (Peering) はい 対端VPC内のECS/VM IPセグメントをホワイトリストに追加 Azure プライベートネットワーク接続 (1セグメント) はい 1セグメント接続文字列を使用する場合は、ホワイトリストを設定する必要があります Azure プライベートネットワーク接続 (2セグメント) いいえ 設定は不要です 説明
- IPホワイトリストをサポートしない接続方式(例:Huawei Cloud PrivateLink)では、セキュリティグループが唯一のアクセス制御手段です。
- ホワイトリストをサポートする接続方式(例:AWS PrivateLink)でも、正常なアクセスにはセキュリティグループの正しい設定が必要です。
ネットワーク到達性:クライアントからデータベースアドレスへのルーティングがスムーズであること、および中間のファイアウォール/セキュリティグループが対応するポートのTCPトラフィックを許可していることを確認します。
接続方式の概要
接続方式 |
適用シナリオ |
パブリックアドレスが必要か |
設定の複雑さ |
サポートするクラウドベンダー |
|---|---|---|---|---|
| パブリックネットワーク接続 | ローカルでの開発・デバッグ、迅速なテスト、異なるクラウドベンダー間のアクセス | はい | 低 | すべて |
| プライベートネットワーク接続 | 本番環境、トラフィックをパブリックネットワークに出さない場合 | いいえ | 中~高(クラウドベンダーによる) | Alibaba Cloud、Huawei Cloud、AWS、Azure |
| ピア接続 | 同一クラウドベンダー内の異なるVPC間の相互接続 | いいえ | 中 | Huawei Cloud |
アクセス制御の説明
接続方式によって、アクセス制御の設定場所は異なります。
接続方式 |
クラウドベンダー |
アクセス制御方法 |
説明 |
|---|---|---|---|
| パブリックネットワーク接続 | すべて | OceanBase Cloudテナントのホワイトリスト | クライアントのエグジットIPをホワイトリストに追加 |
| プライベートネットワーク接続 | Alibaba Cloud | OceanBase Cloudテナントのホワイトリスト | アクセス制御のため、クライアントIPをテナントのホワイトリストに追加する必要があります |
| プライベートネットワーク接続 (PrivateLink) | Huawei Cloud | エンドポイントのセキュリティグループ | クラウドベンダーのコンソールでPrivateLinkエンドポイントのセキュリティグループを設定します |
| プライベートネットワーク接続 (PrivateLink) | AWS | OceanBase Cloudテナントのホワイトリスト | クライアントIPをホワイトリストに追加する必要があります |
| プライベートネットワーク接続 | Azure | OceanBase Cloudテナントのホワイトリスト (1セグメント)/ 設定不要 (2セグメント) | 1セグメント接続文字列を使用する場合は、ホワイトリストを設定する必要があります |
| ピア接続 | Huawei Cloud | OceanBase Cloudテナントのホワイトリスト | 対端VPC内のECS/VM IPセグメントをホワイトリストに追加 |
ポートの説明
互換モード |
デフォルトポート |
説明 |
|---|---|---|
| MySQL互換 | 3306 | JDBC、mysql/obclient CLIなどがこのポートを使用します |
| Oracle互換 | 1521 | jdbc:oceanbase://またはobclientがこのポートを使用します |
| KV互換 | 3307 | KVテナント接続ポート |
説明
実際のポートはコンソールで取得した接続文字列に準じます。異なるテナントでは異なるポートが使用される場合があります。
接続アカウント形式
コンソールの接続文字列取得ページは、選択した接続方式に応じて正しい形式の接続文字列を自動生成します。そのままコピーして使用することを推奨します。詳細については、OBClientを使用してOceanBase Cloudに接続するを参照してください。
パブリックアドレスを使用してデータベースにアクセスします。ローカルでの開発・デバッグ、迅速なテスト、または異なるクラウドベンダー間でのアクセスが必要なシナリオに適しています。詳細な操作については、パブリックアドレスを使用してデータベースに接続するを参照してください。
ステップ |
操作 |
説明 |
|---|---|---|
| 1 | パブリックアドレスの申請 | OceanBase Cloudコンソールで対象テナントのパブリックアドレスを申請します |
| 2 | テナントのホワイトリスト設定 | クライアントのエグジットIPをテナントのホワイトリストに追加します(コンソールでは「現在のブラウザIPアドレスを追加」をサポートしています) |
| 3 | SSL証書の設定 | CA証書をダウンロードし、クライアント側で設定します。SSLリンク暗号化を参照してください |
| 4 | ネットワークのエグジットルール設定 | クライアントからパブリックアドレスのポートへのTCPエグジットがブロックされていないことを確認します(下記の説明を参照)。 |
| 5 | 接続文字列の取得と接続テスト | データベースとアカウントを作成し、接続文字列をコピーしてクライアントで接続テストを実行します |
説明
- ローカル開発マシン:通常、追加の設定は不要です。接続がタイムアウトした場合は、ローカルのファイアウォールや会社のネットワークがTCP出力(例:3306、1521)を許可しているか確認してください。
- クラウド上のECS/VM:インスタンスが属するセキュリティグループで、OceanBase Cloudのパブリックアドレスに対応するポートへのTCP出力を許可する必要があります。Alibaba Cloudのユーザーはセキュリティグループルールを参照してください。
以下のチェックを行い、パブリックネットワーク接続が正常に確立されていることを確認します。
チェック項目 |
要求 |
|---|---|
| パブリックアドレス | 申請済みでコンソールに表示されている |
| テナントのホワイトリスト | クライアントのエグジットIPが追加されている |
| SSL証書 | SSL接続が必要な場合は、CA証書をダウンロードし設定済み |
| ネットワークのエグジットルール | ローカルのファイアウォールまたはECS/VMのセキュリティグループが許可している |
| データベース接続 | コンソールで生成された接続文字列を使用してテストが成功している |
クラウドベンダーのプライベートネットワークチャネルを使用してデータベースにアクセスします。本番環境のトラフィックがパブリックネットワークに出ないシナリオに適しており、クラウドベンダーによって具体的な操作手順が異なります。
Alibaba Cloud
OceanBase Cloudコンソールで直接プライベートネットワークアドレスを作成します。クラウドベンダー側で別途エンドポイントを作成する必要はありません。詳細な操作については、対応するサブドキュメントを参照してください。
ステップ |
操作 |
説明 |
|---|---|---|
| 1 | プライベートエンドポイントを作成 | OceanBase CloudコンソールでAlibaba CloudのメインアカウントID、VPC、VSwitchを入力し、プライベートネットワークアドレスを作成します |
| 2 | アクセス制御の設定 | 必要に応じてテナントのホワイトリストを設定します |
| 3 | セキュリティグループのエグジットルール設定 | ECS/VMとプライベートネットワークアドレスが同じVPCにあることを確認し、セキュリティグループでプライベートネットワークアドレスのポートへのTCP出力を許可します |
| 4 | 接続文字列の取得と接続テスト | プライベートネットワークアドレスの作成が完了したら、データベースとアカウントを選択し、接続文字列をコピーして接続テストを実行します |
以下のチェックを実施し、Alibaba Cloudのプライベートネットワーク接続が正常に確立されていることを確認します。
チェック項目 |
要求 |
|---|---|
| プライベートアドレス | OceanBase Cloudコンソールで作成済みかつ状態が正常であること |
| ネットワークの場所 | アプリケーションのECS/VMがプライベートアドレスと同じリージョン、同じVPC、同じVSwitchにあること |
| ECS/VMセキュリティグループ | プライベートアドレスのポートへのTCP出力を許可していること |
| データベース接続 | テストに成功すること |
AWS
まず、OceanBase Cloudでエンドポイントサービスを作成し、次にAWSコンソールでエンドポイントを作成して情報を入力し、最後にプライベートDNSを有効化して接続文字列を取得します。詳細な操作手順は、対応するサブドキュメントを参照してください。
ステップ |
操作 |
説明 |
|---|---|---|
| 1 | エンドポイントサービスの作成 | OceanBase CloudコンソールでAWSアカウントIDを入力し、エンドポイントサービスを作成する |
| 2 | エンドポイントの作成 | AWSコンソールでエンドポイントを作成し、OceanBase CloudサービスIDに紐づけ、VPCとサブネットを選択する |
| 3 | エンドポイント情報の入力 | VPCエンドポイントIDをOceanBase Cloudコンソールに入力する |
| 4 | プライベートDNSの有効化 | AWSコンソールでエンドポイントのプライベートDNSを有効化し、OceanBase Cloudコンソールで確認する |
| 5 | アクセス制御の設定 | クライアントIPをテナントのホワイトリストに追加する |
| 6 | セキュリティグループの出力ルールの設定 | アプリケーションのEC2セキュリティグループでエンドポイントポートへのTCP出力を許可する |
| 7 | 接続文字列の取得と接続テスト | エンドポイントが利用可能になったら、コンソールで接続文字列を取得して接続をテストする |
以下のチェックを実施し、AWSのプライベートネットワーク接続が正常に確立されていることを確認します。
チェック項目 |
要求 |
|---|---|
| エンドポイントサービス | OceanBase Cloudコンソールで作成済みかつ状態が正常であること |
| エンドポイント | AWSコンソールで作成済みかつ状態が正常であること |
| エンドポイント情報の入力 | VPCエンドポイントIDがOceanBase Cloudに入力されていること |
| プライベートDNS | AWSコンソールで有効化され、OceanBase Cloudコンソールで確認されていること |
| テナントのホワイトリスト | クライアントIPが追加されていること |
| ネットワークの場所 | アプリケーションのEC2がエンドポイントと同じリージョン、同じVPCにあること |
| EC2セキュリティグループ | プライベートアドレスのポートへのTCP出力を許可していること |
| データベース接続 | テストに成功すること |
Huawei Cloud
まず、OceanBase Cloudでエンドポイントサービスを作成し、次にクラウドベンダーのコンソールでエンドポイントを作成して情報を入力し、最後に接続文字列を取得します。詳細な操作手順は、対応するサブドキュメントを参照してください。
ステップ |
操作 |
説明 |
|---|---|---|
| 1 | エンドポイントサービスの作成 | OceanBase Cloudコンソールのネットワーク設定ページでエンドポイントサービスを作成する |
| 2 | エンドポイントの作成 | クラウドベンダーのコンソールでエンドポイントを作成し、OceanBase CloudサービスIDに紐づける |
| 3 | エンドポイント情報の入力 | エンドポイントID、IP、VPC IDをOceanBase Cloudコンソールに入力する |
| 4 | セキュリティグループルールの設定 | アプリケーションのECS/VMセキュリティグループでエンドポイントIPへのTCP出力を許可する。エンドポイントのセキュリティグループではインバウンドも許可する必要がある |
| 5 | 接続文字列の取得と接続テスト | エンドポイントが利用可能になったら、コンソールで接続文字列を取得して接続をテストする |
以下のチェックを実施し、プライベートネットワーク接続が正常に確立されていることを確認します。
チェック項目 |
要求 |
|---|---|
| エンドポイントサービス | OceanBase Cloudコンソールで作成済みかつ状態が正常であること |
| エンドポイント | クラウドベンダーコンソールで作成済みかつ状態が「利用可能」であること |
| エンドポイントの情報入力 | エンドポイント情報(ID、IP、VPC ID)がOceanBase Cloudに入力済みであること |
| ネットワークの場所 | クライアントECS/VMとエンドポイントが同一リージョン・同一VPCにあること |
| ECS/VMのセキュリティグループ | エンドポイントのIP:ポートへのTCP出方向が許可されていること |
| エンドポイントのセキュリティグループ | クライアントECS/VMのIPまたはネットワークセグメントへの入方向が許可されていること |
| データベース接続 | テストに成功したこと |
関連リンク:
クラウドベンダーのピア接続(Peering)を使用して、同一クラウドベンダー内の異なるVPC間の相互接続を実現します。設定はOceanBase Cloudコンソールから行い、クラウドベンダーのコンソールから直接開始するものではありません。詳細な操作手順については、対応するサブドキュメントを参照してください。
ステップ |
操作 |
説明 |
|---|---|---|
| 1 | OceanBase Cloudでピア接続を作成する | ネットワーク設定ページで対端VPCの情報を入力し、ピア接続を作成します |
| 2 | クラウドベンダー側でピア接続を受け入れ、ルーティングを設定する | ピア接続のリクエストを受け入れ、ルーティングテーブルにOceanBase Cloudのネットワークセグメントを指すルートを追加します |
| 3 | テナントのホワイトリストを設定する | 対端VPC内のECS/VM IPセグメントをテナントのホワイトリストに追加します |
| 4 | セキュリティグループルールを設定する | 対端VPCのネットワークセグメントおよびデータベースポートへのTCP出方向および入方向トラフィックを許可します |
| 5 | 接続文字列を取得し、接続をテストする | ピア接続が有効化された後、接続文字列を取得してテストします |
以下のチェックを行い、ピア接続が正常に確立されていることを確認します。
チェック項目 |
要求 |
|---|---|
| ピア接続 | OceanBase Cloudコンソールで作成済みで、クラウドベンダー側で受け入れられ、「接続済み」状態であること |
| ルーティングテーブル | 設定済みで、宛先がOceanBase Cloudのネットワークセグメントを指していること |
| テナントのホワイトリスト | 対端VPC内のECS/VM IPセグメントが追加されていること |
| セキュリティグループ | 対端VPCのネットワークセグメントおよびデータベースポートへのTCPトラフィックが許可されていること |
| データベース接続 | テストに成功したこと |
関連リンク:
接続性の検証とよくある質問
ネットワーク設定が完了したら、以下の方法で検証できます:
ポートプローブ(オプション):クライアントで
nc -zv <アドレス> <ポート>またはtelnet <アドレス> <ポート>を実行し、TCPポートが到達可能か確認します。コマンドが利用できない場合は、この手順をスキップして、直接データベースクライアントを使用してテストできます。データベース接続テスト:コンソールで生成された接続文字列とアカウントパスワードを使用して接続します。これが最も信頼性の高い検証方法です。
現象 |
考えられる原因 |
対処の方向性 |
|---|---|---|
| 接続タイムアウト | ホワイトリストが設定されていない、またはIPアドレスが正しくない | クライアントのエグジットIPアドレスがテナントのホワイトリストに追加されていることを確認します |
| 接続タイムアウト | セキュリティグループ/ファイアウォールによるブロック | ECS/VMのセキュリティグループのエグジットルールとエンデポイントのセキュリティグループのイングロットルールを確認します |
| 接続タイムアウト | プライベートアドレスまたはエンデポイントが準備できていない | OceanBase Cloudコンソールでプライベートアドレス/エンデポイントのステータスが正常であることを確認します |
| Connection refused | ポートエラーまたはアドレスが正しくない | コンソールの接続文字列に記載されているアドレスとポートを基準にします |
| Access denied | アカウント形式またはパスワードが間違っている | コンソールで生成された接続文字列を使用し、ユーザー名の形式とパスワードが正しいことを確認します |
| SSL関連のエラー | CA証明書が設定されていない | パブリックネットワーク接続では、CA証明書をダウンロードして設定する必要があります。SSLリンク暗号化を参照してください |