【正解】C
【0からの解説】
①前提知識:
AlloyDB for PostgreSQL は Google Cloud 上のフルマネージドな PostgreSQL 互換データベースです。これに対し
AlloyDB Omni は、同じ AlloyDB のエンジン(列指向エンジンによる分析クエリの高速化、自動メモリ管理など)を、オンプレミスや他クラウドなど
任意の環境で自分で実行できるダウンロード版です。PostgreSQL 互換なので、標準の PostgreSQL ツールや拡張機能がそのまま使え、特定ベンダーへのロックインを避けられます(オープンソースのポータビリティ)。AlloyDB Omni には
Kubernetes オペレーターが提供されており、データベース クラスタのマニフェストでスタンバイ数を指定するだけで HA 構成を作れます。オペレーターはプライマリとスタンバイを定期的にヘルスチェックし、プライマリの障害を検知すると自動でスタンバイを昇格させる
自動フェイルオーバーを行い、故障したスタンバイの自動再作成(ヒーリング)や、計画的なスイッチオーバーも管理します。
②要件と制約の整理:(1)
オンプレミスにとどまる=Google Cloud のマネージド AlloyDB には移せない。(2) データ レジデンシー規制=データを自社データセンター内に保持する。(3) OLTP と OLAP の両立=AlloyDB の列指向エンジンが有効。(4)
HA と自動フェイルオーバーを維持=障害時に人手を介さず切り替わる仕組みが必要。
③正解の理由:Kubernetes 上に AlloyDB Omni のデータベース クラスタを構築し、AlloyDB Omni Kubernetes オペレーターで HA を有効化すれば、オンプレミスのままデータを国外に出さずに、AlloyDB エンジンによる OLTP / OLAP の両立と、オペレーター管理の自動フェイルオーバーをすべて満たせます。Oracle からの移行は、スキーマとコードを PostgreSQL 互換に変換(Ora2Pg などのツールや Database Migration Service の変換機能で生成した DDL を活用)したうえで Omni に移します。4 つの要件をすべて満たすのは C だけです。
【誤りの選択肢】
A:スタンドアロン VM に単一の Omni をデプロイするだけでは HA と自動フェイルオーバーがありません。さらに DR 先を Google Cloud 上の AlloyDB for PostgreSQL にすると、データがオンプレミス外に複製されるため「オンプレミスにとどまる」「データ レジデンシー」の要件に反するおそれがあります。
B:Database Migration Service で Google Cloud 上の AlloyDB for PostgreSQL に移行すると、データベースはクラウドに移ります。「オンプレミスにとどまる」という最初の要件を満たしません。
D:単一 VM 上の Docker コンテナは、その VM 自体が単一障害点になります。コンテナ単体の AlloyDB Omni では、オペレーターによるヘルスチェック・自動昇格・スタンバイの自動ヒーリングといった仕組みが提供されず、HA を組むには Patroni などを自前で構築・運用する必要があります。自動フェイルオーバーを確実かつ低い運用負荷で実現するという点で、Kubernetes オペレーターを使う C に劣ります。
【参考】
AlloyDB Omni のドキュメントOracle から AlloyDB for PostgreSQL への移行の概要 | Database Migration Service for heterogeneous Oracle to AlloyDB for PostgreSQL