Oracle DB から Cloud SQL / AlloyDB へ移行する際の考慮ポイント
はじめに
こんにちは。
クラウドエースの中野(大)と申します。
今回は、オンプレミス環境の Oracle DB を Google Cloud の DB サービスである Cloud SQL / AlloyDB へ移行する際の考慮すべきポイントについて解説していこうと思います。
前提条件
本記事では、オンプレミス環境の Oracle DB から Cloud SQL / AlloyDB への移行を前提とします。
他の DB エンジンやクラウドサービスの移行については記載しないため、あらかじめご了承ください。
また、アプリケーション側の改修とテスト、システム移行計画については本記事では考慮せず、インフラと DB スキーマやデータの移行についてのみを観点として解説していきます。
この記事の位置付け
以下のような方への参考になればと思います。
-
Oracle DB を Cloud SQL / AlloyDB へ移行する際の考慮ポイントについて知りたい
-
DB を移行する際の移行観点について知りたい
Cloud SQL / AlloyDB の紹介
まずは Cloud SQL / AlloyDB について簡単に紹介しようと思います。
Cloud SQL Enterprise
Google Cloud リリース初期からある Google Cloud の DB サービスです。PostgreSQL の他に MySQL , Microsoft SQL Server といった DB エンジンも選択することができます。
Cloud SQL Enterprise Plus
2023 年にリリースされた Cloud SQL Enterprise の上位性能 DB サービスです。
Cloud SQL Enterprise の機能に加え、書き込みスループットが Cloud SQL Enterprise と比べ 2 倍向上します。
また、可用性 SLA は 99.99%、10 秒未満の計画ダウンタイム、35 日間のポイントインタイムリカバリのログ保持により、高い可用性が実現されています。
Cloud SQL Enterprise と Cloud SQL Enterprise Plus の詳細な比較については、弊社のこちらのコラムをご確認ください。
AlloyDB for PostgreSQL
PostgreSQL 完全互換フルマネージドデータベースで、バックアップ、レプリケーション、パッチ適用、容量管理などの管理タスクを自動化し、適応型アルゴリズムと機械学習を使用して PostgreSQL のバキューム管理、ストレージとメモリの管理、データ階層化、分析の高速化を実現しているため、アプリケーションの構築に専念することができます。
また、メンテナンスを含めて 99.99% の SLA を提供しています。
標準の PostgreSQL と比べ、書き込み処理は 4 倍高速で、分析クエリは最大 100 倍高速です。
Google Cloud への移行ツール Database Migration Service
Oracle DB を Google Cloud の DB サービスへ移行する際は、Database Migration Service (以下、DMS) を使用することをお勧めします。ここでは DMS について簡単に説明しようと思います。
DMS は、Google Cloud が提供する DB 移行サービスです。Oracle DB から PostgreSQL への移行のような異種間 DB 移行にも対応しており、ダウンタイムを最小限に抑えながら移行をすることが可能です。
また、本記事で紹介している Google Cloud DB サービスの Cloud SQL Enterprise,Cloud SQL Enterprise Plus , AlloyDB for PostgreSQL も移行先として対応しています。
本記事では、移行ツールとして DMS を使用する前提で記載させていただきます。他の移行ツールを使用しての移行については考慮しないため、あらかじめご了承ください。
移行時の考慮ポイント
以下に 4 つほど私が思う DB 移行時の考慮ポイントついて挙げます。
ランニングコストを考慮した DB サービスの選定
オンプレミス環境とは異なり、多額なサーバの導入初期費用は発生しませんが、クラウド環境上の DB を動作させる際にはランニングコストが発生します。
各 Google Cloud の DB サービスには設定できる最低スペックが定められているため、最低スペックで各 DB を構築した際のスペックと月額費用について表で記載します。
サービス名 | vCPU | メモリ(GB) | ストレージ容量(GB) | 月額費用($) |
---|---|---|---|---|
Cloud SQL Enterprise | 1 | 3.75 | 10 | 142.44 |
Cloud SQL Enterprise Plus | 2 | 16 | 10 | 650.48 |
AlloyDB for PostgreSQL | 2 | 16 | - ※1 | 629.63 + α |
※1: AlloyDB for PostgreSQL は、自動的にスケールアップまたはスケールダウンするリージョンストレージシステムを使用します。そのため、使用したストレージに対してのみ料金が発生します。
各 DB サービスによってばらつきはありますが、最低スペックを高めに設定する必要がある Cloud SQL Enterprise Plus と AlloyDB for PostgreSQL は価格が大きくなってしまう印象です。
しかし、Oracle DB とは異なり、PostgreSQL はオープンソース RDBMS で、DB を使用する際のライセンス費用を払う必要はないため、発生する費用としてはクラウド環境上の DB を動作させるためのランニングコストのみです。
また、Google Cloud には 1 年間、3 年間の確約利用割引制度があるため、長く DB を使用する計画がある場合は、この制度を活用することでランニングコストを下げることも可能です。
性能を考慮した DB サービスの選定
3 種ほど Google Cloud の DB サービスを挙げさせていただきましたが、結局のところどの DB サービスを使用すればよいのかという点です。
ここで、3 種の DB サービスの性能について簡単な比較表を記載します。
項目 | Cloud SQL Enterprise | Cloud SQL Enterprise Plus | AlloyDB for PostgreSQL |
---|---|---|---|
PostgreSQL 対応バージョン | 9.6,10,11,12,13,14,15 | 14,15 | 14,15 |
可用性 SLA (%) | 99.95 | 99.99 | 99.99 |
オンライン分析処理(OLAP) | 標準の PostgreSQL と同等以上 | 標準の PostgreSQL と同等以上 | 標準の PostgreSQL に比べて最大 100 倍 |
スケール時のダウンタイム | 数分 | 数分(Enterprise よりは短い) | 数秒 |
メンテナンス時のダウンタイム | 30 秒以内 | 10 秒未満 | 数秒 |
ポイントインタイムリカバリログの保持期間 | 最長 7 日 | 最長 35 日 | 最長 35 日 |
比較表より、可用性を高く保ち、かつダウンタイムを短く抑えたい場合に関しては Cloud SQL Enterprise Plusを選択し、そこに加え分析処理を高速にしたい場合は AlloyDB for PostgreSQL を選択すると良いと思います。
また、記事執筆時点の 2024 年 4 月では、PostreSQL のバージョンは 14 と 15 しか対応していない点には注意しなければなりません。
上記以外の場合に関しては、ランニングコストも抑えられることから Cloud SQL Enterprise の選択で問題ないと思います。
DB のスキーマ変換の作業時間
ここが一番の考慮ポイントだと思います。
PostgreSQL ではサポートされていないオブジェクトタイプなどを Oracle DB から変換する必要があるため、この部分が移行にあたって最も時間が必要な部分だと思います。
ここで有用となる Google Cloud のサービスが、先で説明した Database Migration Service(DMS)です。
DMS を使用することで、DB を移行する際に一部の DB スキーマを自動で変換することが可能です。さらに、一部の手動で変換が必要なスキーマについては、DMS のコンバージョンワークスペースという機能を使用することでスキーマの変換を実施することが可能です。そのため、これまでのように全て手動でスキーマの変換を実施するよりも大幅に作業時間を短縮することができます。
コンバージョンワークスペースについては Google Cloud Japan の ryutaza さんのこちらのブログに実際の使用方法などが詳しく記載されています。
移行作業にあたっての想定作業時間
上記項目に付随する部分ではありますが、移行作業を実施する前に作業時間を見積もる必要があると思います。ただ、見積もり方法が分からない、見積もったが莫大な作業時間となってしまったなどで作業時間の見積もり段階で諦めてしまうこともあると思います。
そこで活用することができるものとして、移行元の Oracle DB 環境へ実行することでスキーマの変換作業時間を見積もるツールです。ツールを使用することで簡単にスキーマの変換作業時間の見積もりをすることができます。
使用した結果、事前に自分たちで見積もった変換作業時間よりも短い結果となる場合や、簡単に変換作業時間を予測することができます。
一例として、使用前に Google Cloud の担当者へ問い合わせる必要はありますが、Google Cloud のアセスメントツール Database Migration Assessment があります。
まとめ
DB を移行する際の考慮ポイントについて解説しました。
私自身、Oracle DB から Cloud SQL / AlloyDB への移行はハードルが高いと感じていましたが、実際に調査してみると意外と手間をかけずに解決できる部分が多いと感じました。
また、先で説明したように、Oracle DB から Cloud SQL / AlloyDB へ移行することで、クラウド環境上の DB を動作させるためのランニングコストのみで DB を運用することが可能です。
オンプレミス環境の Oracle DB を Cloud SQL / AlloyDB への移行を検討している方への参考になれば幸いです。
Discussion