業務データ、リアルタイム分析、AIワークロード——これまでバラバラだったものをひとつのデータベースに。OceanBase AI Database 詳細はこちら ->
業務データ、リアルタイム分析、AIワークロード——これまでバラバラだったものをひとつのデータベースに。OceanBase AI Database 詳細はこちら -> ->
DX(デジタルトランスフォーメーション)が進むなか、事業継続は技術上の課題にとどまらず、経営戦略に関わる重要なテーマとなっています。ECサイトが大型セール中に1時間停止すれば、多額の売上を失う可能性があります。金融機関のシステム停止は規制当局による厳しい処分につながり、SaaSのサービス停止は顧客の大量解約を招くおそれがあります。
データは、こうした事業の中核をなす資産です。大規模な障害が発生しても事業を継続できるかどうかは、データベースの災害対策(DR)に大きく左右されます。
多くの企業が、すべてのリソースを単一のクラウドベンダーに集約しています。しかし、この構成には明確なリスクがあります。どのプロバイダーも100%の可用性を保証できるわけではなく、リージョン規模の障害やネットワークの停止は起こり得ます。また、特定のプロバイダーに過度に依存すると、契約交渉や将来の構成変更を自社主導で進めにくくなります。業種によっては、規制によりデータの保管先を複数拠点に分散することが求められます。
ここで押さえておきたいのは、高可用性(HA) と 災害対策(DR) では、対処する障害の規模が異なるという点です。
本記事ではDRに焦点を当て、OceanBaseが提供する各種構成の仕組みと選び方を解説します。
DR構成を評価する際には、次の3つの指標が重要になります。
OceanBaseは、バックアップによる基本的なデータ保護から、高度な事業継続対策まで、幅広いDR構成を提供しています。それぞれ、復旧時間、データ保護の水準、コスト、構築・運用の複雑さが異なります。
比較項目 | バックアップからの復旧 | リージョン間のプライマリ/スタンバイ構成 | クラウド間のアクティブ/アクティブ構成 |
|---|---|---|---|
| 主な用途 | 非基幹システム、過去データのバックアップ、開発・テスト環境 | 基幹業務システムなど、復旧時間の要件が中程度のシステム | 高い可用性が求められる重要システム |
| 目標復旧時間(RTO) | 数時間〜数日 | 分単位 | 秒〜分単位 |
| 目標復旧時点(RPO) | 時間単位(バックアップ間隔に依存) | ミリ秒〜秒単位(同期方式に依存) | 秒単位(リアルタイムの双方向同期を使用) |
| コスト | 最も低い(主にストレージ費用) | 中程度(スタンバイクラスターの稼働費用が必要) | 高い(両環境を稼働させるためのリソースが必要) |
| 構築・運用の複雑さ | 比較的シンプル(基本的なバックアップと復元) | 中程度(データ同期が必要) | 高い(双方向同期と競合検出が必要) |
障害への対応範囲という観点では、OceanBaseのDR構成は次の3段階に分けられます。
これらは段階的に保護を強化するための構成です。多くの企業では、業務の重要度に応じて保護レベルを分けています。最重要システムにはアクティブ/アクティブ構成、重要システムにはプライマリ/スタンバイ構成、それ以外にはバックアップからの復旧を採用することで、保護の水準とコストのバランスを取ります。
どの業務にも最適なDR構成があるわけではありません。業務ごとの要件に合わせて選ぶことが重要です。
ここからは、それぞれの仕組みを詳しく見ていきます。
定期的にバックアップを取得し、必要なときに復元するという方法です。リアルタイムのデータ保護を目的とするものではありませんが、最小限のコストで基本的なデータ保護を実現できます。
クラウドデータベースサービスのOceanBase Cloudは、次のバックアップ・復元機能を提供しています。
この方式は、開発・テスト環境、社内管理システム、過去データのアーカイブに適しています。また、より高度なDR構成を補完する最後の復旧手段としても役立ちます。
クラウド間のプライマリ/スタンバイ構成では、プライマリが業務を処理し、スタンバイがリアルタイムにデータを同期します。 プライマリが読み書きを処理する一方、スタンバイはデータ同期によってプライマリとの整合性を維持します。
プライマリに障害が発生した場合は、スタンバイが数分以内に業務を引き継ぎます。プライマリとスタンバイを異なるクラウドに配置することで、クラウド単位の障害に備えられます。
OceanBase Cloudのクラウド間プライマリ/スタンバイ機能は、次の仕組みを備えています。
プライマリとスタンバイで共通の接続エンドポイントを提供します。通常時はプライマリに接続し、障害による切り替え後は、スタンバイから昇格した新しいプライマリに接続するように名前解決先が自動的に更新されます。
アプリケーション側で接続先アドレスを変更せずにアクセスを再開できるため、DR対応に伴うアプリケーションの改修を大幅に抑えられます。
業務要件に応じて、ネットワーク経由でログを直接転送する方式と、アーカイブログを経由する方式を選択できます。
比較項目 | ネットワーク経由の直接転送 | アーカイブログ経由の転送 |
|---|---|---|
| プライマリ/スタンバイ間の同期遅延 | ミリ秒単位 | 秒単位 |
| スタンバイへの読み取りリクエストの振り分け | 対応 | 非対応 |
| コスト | 比較的高い(クラウド間のプライベート接続を利用) | 比較的低い(クラウドをまたいでオブジェクトストレージにアクセス) |
1つのプライマリに対して、1つまたは複数のスタンバイを配置できます。
クラウドAにプライマリ、クラウドBにスタンバイを配置する1対1の構成は、標準的なDR用途に適しています。複数のスタンバイを配置する構成では、冗長性をさらに高めながら、複数リージョンのDR要件にも同時に対応できます。
障害発生時のフェイルオーバーと、計画的に役割を切り替えるスイッチオーバーに対応しています。
どちらの場合も、共通エンドポイントと連携して、トラフィックを新しいプライマリへ自動的に振り分けます。
この構成は、オンライン教育やECなど、サービス停止の影響が大きいオンラインサービスに適しています。企業の基幹ERP・CRM、秒単位の復旧までは求められないものの分単位での復旧が必要な業務、リージョンをまたぐDR対策が必要な金融・保険システムにも適用できます。
アクティブ/アクティブ構成の特長は、2つのクラウド環境で同時に業務を処理し、障害時にも利用者に意識させることなく切り替えられる点です。
OceanBase Cloudは、AWS、Google Cloud、Alibaba Cloud、Tencent Cloudなどのクラウドベンダーへのインスタンスのデプロイに対応し、クラウドをまたぐアクティブ/アクティブ構成の基盤を提供します。
プライマリ/スタンバイ構成と異なり、アクティブ/アクティブ構成では両拠点が読み書きを処理し、リアルタイムの双方向同期によってデータの整合性を維持します。一方のクラウド環境に障害が発生すると、もう一方がすべての業務トラフィックをシームレスに引き継ぎます。
金融取引、オンライン決済、リアルタイム通信など、高い事業継続性が求められる業務では、アクティブ/アクティブ構成が有力な選択肢の一つとなります。
OceanBase Cloudでは、クラウド間ネットワーク、データ同期、競合処理を中心に、この構成を支える仕組みを最適化しています。
異なるクラウドを接続するには、専用線、インターネット、クラウドの広域ネットワークサービスなどが必要です。OceanBase Cloudでは、クラウド間ゲートウェイサービスを通じて、ネットワークの構築、監視、運用をプラットフォーム側で行います。
ユーザーが同期元と同期先のクラウドベンダーおよびリージョンを選択すると、データ同期タスクが必要なネットワークサービスを自動的に判定します。ユーザー自身がクラウド間ネットワークの構築方法を意識する必要はありません。
クラウド間のネットワーク遅延が転送性能に与える影響を抑えるため、OceanBase Cloudではコンポーネントの配置を最適化しています。ログ解析コンポーネントは同期元と同じクラウド・リージョンに、データ書き込みコンポーネントは同期先のリージョンに配置します。
同期元の解析コンポーネントで同期対象外のデータの大部分を除外し、不要なデータ転送を抑えます。また、書き込みコンポーネントを同期先の近くに配置することで、ネットワーク遅延による書き込み性能の問題を回避します。
クラウド間ゲートウェイの通信は、AES-128-GCMを用いてネットワーク層で暗号化します。ゲートウェイ間のセッション鍵は、OMSのプライベートネットワーク内にある安全な制御用トンネルを通じて配布し、定期的にローテーションすることで、クラウド間のデータ転送の安全性を確保します。
両拠点で読み書きを行うには、リアルタイムの双方向同期が必要です。OceanBase Cloudのデータ同期機能は、MySQL、Oracle、OceanBaseを対象に、異種データベース間の双方向同期に対応しています。
双方向同期で課題となるのが、レプリケーションループです。一方で発生した更新を他方に適用すると、その適用によって新たなログが生成されます。このログを再び同期対象にすると、同じ更新が元のデータベースに送り返されてしまいます。
OceanBase Cloudでは、データベースごとに異なる方法でループを防止します。
thread_id を使って同期による更新を識別し、ログ解析時に自動的に除外します。両拠点で同じ一意キーを持つデータに対して同時に書き込みや更新を行うと、競合が発生する可能性があります。
OceanBase Cloudの双方向レプリケーションでは、こうした競合をリアルタイムに検出し、あらかじめ設定した方針に従って処理します。同期先のデータを上書きする、競合した更新を適用せず同期先のデータを保持する、競合を記録して手動で対応する、といった方法を選択できます。競合の記録はダウンロードでき、原因調査に利用できます。
クラウド間のアクティブ/アクティブ構成は、単一クラウド内でPaxosにより実現される高可用性を基盤としています。3レプリカ構成は、単一クラウド内のノード障害に対し、RPO=0、RTO<8秒で自動フェイルオーバーを実現します。クラウド間のアクティブ/アクティブ構成は、そのうえでクラウドベンダー単位の障害に対応します。
両者は互いを補完し、ノード単位からクラウド単位までをカバーする高可用性の仕組みを構成します。
主な用途は、金融の基幹取引、決済・清算システム、オンライン決済、リアルタイム通信など、無停止での運用が求められる業務です。また、規制上、クラウド間のDR対策が必須となる金融機関にも適しています。
3つのDR構成には、それぞれ適した役割があります。バックアップからの復旧は、最小限の費用で基本的なデータ保護を実現し、コストを優先する場面に適しています。リージョン間のプライマリ/スタンバイ構成は、適切な費用で確かな保護を確保し、費用対効果を重視する構成です。クラウド間のアクティブ/アクティブ構成は、必要なリソースを投入することで最高水準の保護を実現し、遵守が求められるコンプライアンス要件に対応します。
導入にあたっては、次の4点が重要です。
OceanBaseは、Paxosに基づく分散アーキテクチャとテナント単位のプライマリ/スタンバイ技術を基盤に、バックアップからの復旧からアクティブ/アクティブ構成まで、幅広いDR対策を提供します。シンプルで経済的な構成から、より高度な保護を実現する構成まで、業務要件に応じて選択できます。

1. データベースのインスタンスが増えると、運用はどう変わるのか 事業が成長し、マイクロサービスの導入が進むと、注文、ユーザー、在庫、レポートなどのサービスごとに、独立したデータベースが必要になることがあります。開発、テスト、ステージング、本番の各環境に加え、顧客やチャネルごとにデータを分離する必要も出てきます。その結果、わずか1〜2年で、インスタンス数が十数個から100を超える規模に増えることもあります。これらを個別に管理していると、監視、変更作業、原因調査、復旧にかかる負担も増していきます。 アラートが増え、重要な問題を見つけにくくなる。100個のインスタンスで監視システム、アラートルール...


分散データベースで高可用性を設計する際、2ノードのプライマリ・スタンバイのような偶数レプリカ構成には根本的な弱点があります。ノード障害やネットワーク分断が起きると過半数を確保できず、安全に新しいリーダーを選べなくなるためです。 この問題への一般的な対策は、3つ目の参加者を加えて投票総数を奇数にすることです。そうすれば、スプリットブレインを防ぎながら合意形成を進めやすくなります。 ただし、この3つ目の参加者が必ずしも完全なデータレプリカである必要はありません。必要なのは、投票に参加し、障害時にクラスタの合意形成を支えることです。OceanBase 4.xでは、この役割を「アービトレーションサービ...


OceanBase クラウドデータベース セキュリティ機能のご紹介 高度なセキュリティ体系に依拠し、開発から運用までの多層防御を構築 基幹事業(コアビジネス)をクラウドデータベースに委ねるにあたり、企業に必要なのは単なる「セキュリティ機能のリスト」ではなく、「持続的に稼働する保障メカニズム」です。具体的には、リリース前に可能な限り脆弱性を発見し、運用中に脅威をタイムリーに識別し、侵害発生時には影響をコントロールでき、データアクセスが常に保護されている状態を実現することです。 OceanBase は、数多くの大手金融機関や大規模決済基盤をはじめとする、ミッションクリティカルな金融コアビジネスシー...
