このページでは、OceanBase Cloudのデータベースプロキシサービスの概念について説明します。
背景情報
OceanBase Cloudのデータベースプロキシは、クライアントとデータベースの間に位置し、クライアントからのリクエストを受信してバックエンドのOceanBase Cloudデータベースに転送する役割を担います。最適なルーティングを保証し、分散トランザクションを可能な限り回避します。また、マルチレプリカ環境において、単一サーバーの障害がアプリケーションに影響を与えないようにし、OceanBase Cloudデータベースの高可用性を向上させます。
OceanBase Cloudのデータベースプロキシは、接続管理、最適なルーティング、高性能転送、運用・保守の容易さ、高可用性、専用プロトコルなどの特長を備えています。以下に、よく使用される概念を紹介します。
用語 |
説明 |
|---|---|
| プロキシ接続アドレス(旧プロキシエンドポイント) | データベースプロキシ接続アドレスはデータベースプロキシの中核であり、カスタム接続アドレスアクセス戦略、接続アドレスプレフィックス、ポート番号の変更などをサポートします。データベースプロキシ接続アドレスを介してインスタンスに接続することで、データベースプロキシの高度な機能を使用できます。 |
| 接続管理 | クライアントの物理接続に対して、データベースプロキシは自身とバックエンドの複数のOBServerノードとの接続を維持し、バージョン番号に基づく増分同期方式を採用して各OBServerノード接続のセッション状態を維持することで、クライアントが各OBServerノードに効率的にアクセスできるようにします。 |
| 最適ルーティング | データベースプロキシは、ユーザーのリクエストに関連するレプリカの位置、ユーザーが設定した読み書き分離のルーティングポリシー、OceanBaseの複数地域展開における最適なリンク、およびOceanBase各マシンの状態と負荷状況を十分に考慮し、ユーザーのリクエストを最適なOBServerノードにルーティングすることで、OceanBase全体の高性能な運用を最大限に保証します。 |
| 高性能転送 | データベースプロキシはMySQLプロトコルと完全に互換性があり、OceanBase独自のプロトコルもサポートしています。マルチスレッド非同期フレームワークと透過的なストリーミング転送の設計を採用することで、データの高性能転送を保証すると同時に、自身のマシンリソース消費を最小限に抑えます。 |
| 容易な運用保守 | データベースプロキシ自体はステートレスであり、無制限の水平スケーリングをサポートし、複数のOceanBaseクラスタへの同時アクセスをサポートします。OceanBase Cloudコンソールを通じてデータベースプロキシの状態をリアルタイムで監視できるため、運用保守が簡単で便利になります。 |
| 高可用性 | データベースプロキシの高可用性は2つの部分に分けられます。一つは、自身の高可用性を保証し、プロキシサービスを継続的に提供することです。もう一つは、データベースプロキシがOceanBase高可用性システムの中核をなす構成要素であり、ユーザーに対してダウンタイムやアップグレードなどの状況を隠蔽し、OceanBase Cloudデータベースサービスの安定性と迅速な復旧を保証することです。 |
| 専用プロトコル | データベースプロキシとOBServerノードは、デフォルトでOceanBase専用プロトコルを採用しています。例えば、パケットのCRCチェックを追加してOBServerノードとのリンクの正確性を保証したり、Oracle互換のデータ型とインタラクションモデルをサポートするために転送プロトコルを強化したりしています。 |
プロキシの種類
OceanBase Cloudは、共有仕様と専用仕様の2種類のプロキシサービス仕様を提供します。
共有仕様:データベースプロキシサービスインスタンスは他の顧客とコンピュートリソースを共有し、顧客の実際のインスタンスサイズに基づいて関連するデータベースプロキシインスタンス仕様が固定的に割り当てられます。トラフィックが比較的固定され平均的なビジネスに適しています。
専用仕様:データベースプロキシサービスインスタンスはコンピュートリソースを単独で占有し、顧客は実際のビジネス要件に応じてデータベースプロキシのリソース仕様をいつでも拡張できます。アクセス量の多いビジネスに適しています。専用仕様のプロキシサービスが有効になると、システムは使用されたリソース量に基づいて1時間単位で課金します。
2種類の仕様の主な違いは、次のとおりです。
比較項目 |
共有仕様 |
専用仕様 |
|---|---|---|
| 課金タイプ | 無料 | 従量課金 |
| リソースタイプ | CPU物理リソースを共有 | CPU物理リソースを専有し、より安定したパフォーマンスを発揮します。 |
| デプロイアーキテクチャ | 高可用性クラスタデプロイアーキテクチャ、障害の円滑な移行を保証。 | 高可用性クラスタデプロイアーキテクチャ、障害の円滑な移行を保証。 |
| インスタンス仕様 | 2C~8Cまでの設定をサポート | 2C~64Cまでの設定をサポート |
| 読み書き分離 | サポート | サポート |
| トランザクション分割 | サポート | サポート |
| 接続保持 | サポート | サポート |
| シームレスな拡張 | サポート。拡張時に、プロキシは新しい仕様のノードに自動的に切り替わります。 | サポート。拡張時に、プロキシは新しい仕様のノードに自動的に切り替わります。 |
| SSL暗号化 | サポート | サポート |
Serverlessデータベースプロキシクラスタ
説明
- Serverlessデータベースプロキシクラスタ機能は現在、ベータテスト中の機能であり、許可リスト制となっています。利用を希望する場合は、OceanBaseサポートチームにお問い合わせください。現在はAWSチャネルのみ対応しており、今後他のクラウドでも順次対応予定です。
- 現在、共有仕様と専用仕様からは 構成変更 ボタンを押してServerless仕様に切り替えることができますが、Serverless仕様から専用・共有仕様への切り替えは、現在対応していません。
Serverlessデータベースプロキシクラスタとは
ODP Serverlessは、OceanBaseデータベースプロキシのServerless版です。ビジネストラフィックの実際の負荷に応じて、ODPのコンピュートリソースを自動的に調整し、クラスタ仕様を手動で計画する必要は一切ありません。ODP Serverlessは、負荷の変動が大きく、トラフィックのピークとオフピークを事前に予測しにくいビジネスシナリオに適しています。例えば、eコマースプラットフォームの大規模セール、SaaSのマルチテナントビジネス、定期レポートタスクなどが該当します。
Serverlessデータベースプロキシクラスタとは異なり、共有仕様および専用仕様のデータベースプロキシでは、プロキシクラスタの仕様を手動で設定する必要があります。リソースのボトルネックや冗長が発生した場合には、手動でプロキシクラスタを拡張または縮小する必要があります。これは、負荷の傾向が比較的安定している、またはプロキシクラスタのコンピュートリソースの一部を固定したいビジネスシナリオに適しています。
弾性スケーリング機能以外において、Serverlessデータベースプロキシクラスタは、災害復旧性や接続数の制限など、その他の属性において非Serverlessプロキシクラスタと差異はありません。
Serverlessデータベースプロキシクラスタの料金について
ODP Serverlessは現在無料でご利用いただけます。ODP Serverlessを有効化すると、ODP Serverlessの弾性計算機能およびプロキシクラスタ仕様に対して、追加の料金は一切かかりません。ただし、ODP Serverless自体は無料であっても、AWS上ではプライベートネットワークリクエストに対するアベイラビリティゾーン間トラフィック料金をお支払いいただく必要があります。
Serverlessデータベースプロキシクラスタの弾性スケーリングの仕組み
ODP Serverlessは、突発的な負荷検出と垂直方向の弾性リソース推奨メカニズムを組み合わせ、プロキシクラスタのリソース要件を継続的に評価します。システムが連続する複数の検出サイクルにわたって、現在の仕様ではビジネス負荷を満たせないと判断した場合、自動的にスケールアップをトリガーし、プロキシクラスタのCPUおよびメモリ仕様を段階的に引き上げます。各調整後、システムは再度リソース負荷を評価します。現在の仕様が依然として不足している場合は、プロキシクラスタが合理的で安定した運用状態に戻るまで、引き続きスケールアップを行います。
プロキシクラスタの初期仕様 (Base Capacity)
Serverlessプロキシクラスタが初めて作成されるクラスタ仕様です。初期仕様は、テナント仕様 × ユニット数 × 1/4 に等しくなります。例えば、テナント仕様が4C 2 Unitの場合、Serverlessプロキシクラスタの初期仕様は 4C × 2/4 = 2C となります。
プロキシクラスタの弾性上限 (Max Capacity) と下限 (Min Capacity)
ODPが突発的なトラフィックに対して自動的に拡張可能な最大CPU仕様、およびトラフィックの低迷期に維持する最小CPU仕様です。弾性上限は、OceanBaseフル機能レプリカノード仕様の1/4に等しくなります。例えば、16Cのマルチデータセンターで2-2-2構成のOceanBaseクラスタをデプロイした場合、単一のServerlessプロキシクラスタの弾性上限は 16C × 6/4 = 24C となります。弾性下限は1Cです。
弾性スケーリングがクライアント接続に与える影響
通常、Serverlessデータベースプロキシクラスタでは、ノード仕様の拡大・縮小にインプレース方式を採用するため、スケーリングはクライアント接続に影響しません。まれにインプレース方式を採用できず、プロキシクラスタノードの新規作成や削除が必要になることがあります。この場合、削除されるデータベースプロキシノード上の既存接続は切断されます。ノードを削除する場合は、削除予定日の3日前にメールとサイト内通知でお知らせします。日程の変更をご希望の場合はお問い合わせください。クライアント側で自動再試行メカニズムを設定し、インプレース方式以外のスケールアップに伴う接続断の影響を軽減することを推奨します。