概要
Database Migration Service は、移行ジョブを使用して、移行元のデータベース インスタンスから移行先の Cloud SQL データベース インスタンスにデータを移行します。移行ジョブの作成には以下が含まれます。
- 移行ジョブの設定を定義します
- ソース データベース用に作成した接続プロファイル(ソース接続プロファイル)に関する情報を指定します
- 移行先の Cloud SQL データベース インスタンスの設定を定義し、インスタンスを作成します
- 移行元データベースと移行先データベースのインスタンス間の接続を設定します
- 移行ジョブをテストして、ジョブに指定した接続情報が有効であることを確認します
移行ジョブの設定を定義する
- Google Cloud コンソールで、[Migration jobs] ページに移動します。
- ページ上部の [移行ジョブを作成] をクリックします。
- 移行ジョブの名前を指定します。移行ジョブを識別できるわかりやすい名前を選択します。ジョブ名には機密情報や個人を特定できる情報を含めないでください。
- 自動生成された移行ジョブ ID を保持します。
- 移行元データベース エンジンを選択します。
- 移行先データベース エンジンを選択します。
移行先のリージョンを選択します。Database Migration Service インスタンスが作成される場所です。Compute Engine インスタンス、App Engine アプリ、その他のサービスなど、データを必要とするサービスのロケーションに基づいて選択する必要があります。宛先リージョンを選択すると、この選択は変更できなくなります。
移行ジョブの種類(1 回限り(スナップショットのみ)または継続的(スナップショット + 継続的な変更))を指定します。
移行ジョブに環境を準備する方法が反映されるように、自動的に生成される必須の前提条件を確認します。これらの前提条件には、移行元データベースの構成方法と移行先の Cloud SQL データベース インスタンスに接続する方法が含まれます。この手順でこれらの前提条件を完了することをおすすめしますが、移行ジョブをテストまたは開始する前にいつでも完了できます。これらの前提条件の詳細については、移行元の構成をご覧ください。
[保存して次へ] をクリックします。
ソース接続プロファイルに関する情報の指定
-
接続プロファイルを作成した場合は、既存の接続プロファイルのリストから選択します。
接続プロファイルを作成していない場合は、プルダウン リストの下部にある [接続プロファイルを作成する] をクリックして接続プロファイルを作成してから、ソース接続プロファイルを作成すると同じ手順を行います。
- [データダンプの構成のカスタマイズ] セクションで、[データダンプの構成を表示] をクリックします。
データダンプ並列処理の速度は、ソース データベースの負荷量に関連しています。次の設定を使用できます。
- 最適(推奨): ソース データベースへの負荷が最適な状態で、バランスの取れたパフォーマンスが実現します。
- 最大: ダンプ速度が最も速くなりますが、ソース データベースの負荷が増加する可能性があります。
- 最小: ソース データベースで消費されるコンピューティング リソースが最小になりますが、ダンプ スループットが低下する可能性があります。
調整されたデータダンプ並列処理設定を使用する場合は、ソース データベースで
max_replication_slots
、max_wal_senders
、max_worker_processes
パラメータを増やしてください。移行ジョブの作成の最後に 移行ジョブテストを実行して、構成を確認できます。 - [保存して次へ] をクリックします。
移行先の Cloud SQL インスタンスを定義して作成する
- [宛先インスタンスのタイプ] プルダウン メニューから [新しいインスタンス] を選択します。
既存のインスタンスに移行することもできます。 既存のインスタンスの移行ジョブをご覧ください。
- Cloud SQL インスタンスの ID を指定するか、自動生成された ID を使用します。ID には機密情報や個人を特定できる情報を含めないでください。ID は外部から閲覧可能です。インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
移行先の Cloud SQL インスタンスの英数字のパスワードを指定します。これは、インスタンスの
postgres
管理者アカウントのパスワードになります。パスワードを手動で入力するか、[生成] をクリックして Database Migration Service にパスワードを自動生成してもらいます。
- 指定したデータベース エンジンでサポートされている Database Migration Service のバージョンのリストから、移行先インスタンスのデータベース バージョンを選択します。クロスバージョンの移行サポートの詳細
- 移行先インスタンスの Cloud SQL for PostgreSQL エディションを選択します。利用できるオプションは、Cloud SQL for PostgreSQL Enterprise エディションと Cloud SQL for PostgreSQL Enterprise Plus エディションの 2 つです。
Cloud SQL for PostgreSQL エディションには、異なる一連の機能、使用可能なマシンタイプ、料金が用意されています。ニーズに適したエディションを選択するには、Cloud SQL のドキュメントをご覧ください。詳細については、Cloud SQL for PostgreSQL エディションの概要をご覧ください。
インスタンスは、移行ジョブの設定を定義したときに選択したリージョンに作成されます。そのリージョン内のゾーンを選択するか、ゾーンを [任意] に設定して Google に自動的に選択してもらいます。
高可用性を目的とするインスタンスを構成する場合は、[複数のゾーン(高可用性)] を選択します。プライマリ ゾーンとセカンダリ ゾーンの両方を選択できます。セカンダリ ゾーンがインスタンスの作成中に使用される場合は、次の条件が適用されます。
- ゾーンのデフォルトは、プライマリ ゾーンは 任意、セカンダリ ゾーンは 任意(プライマリとは異なる)です。
- プライマリ ゾーンとセカンダリ ゾーンの両方を指定する場合は、別々のゾーンにする必要があります。
- このインスタンスにプライベート IP アドレスまたはパブリック IP アドレス経由で接続するかどうかを選択します。
- VPC ピアリングまたはリバース SSH トンネル経由で接続する場合は、[プライベート IP] チェックボックスをオンにします。
- プライベート IP を有効にするには、次の条件を満たしていることを確認します。
- Service Networking API が有効になっています。Service Networking API は、 Google Cloud コンソールを使用して有効にできます。
servicenetworking.services.addPeering
IAM 権限を付与されている。- プロジェクトにプライベート サービス アクセスを構成しています。これには
compute.networkAdmin
IAM ロールが必要です。 - プロジェクトに非レガシー VPC ネットワークまたは共有 VPC ネットワークが 1 つ以上存在する。
- 共有 VPC ネットワークを使用している場合は、次の操作も必要になります。
- ホスト プロジェクトで Service Networking API を有効にします。
- ユーザーをホスト プロジェクトに追加します。
- ホスト プロジェクトの compute.networkAdmin IAM ロールをユーザーに付与します。
- ピアリングする関連付けられた VPC ネットワークを選択します。VPC ピアリングを介して移行元に接続する予定の場合は、インスタンスが存在する VPC を選択します。
- 選択した VPC にマネージド サービス ネットワークが構成されていない場合は、IP 範囲を選択して [接続] をクリックするか、自動的に選択された IP 範囲を使用して [割り振りと接続] をクリックします。
- IP 許可リストを使用して接続する場合は、[パブリック IP] チェックボックスをオンにします。
必要に応じて、[承認済みネットワーク] フィールドをクリックし、Cloud SQL インスタンスに接続するネットワークまたはプロキシを承認します。ネットワークは、指定したアドレス経由でのみ承認されます。インスタンスへの公開アクセスを構成する方法の詳細については、こちらをご覧ください。
- Cloud SQL インスタンスのマシンタイプを選択します。ディスクサイズは移行元データベースのサイズ以上である必要があります。
PostgreSQL マシンタイプの詳細を確認する。
- Cloud SQL for PostgreSQL Enterprise Plus エディションの場合: 移行先データベースでデータ キャッシュ機能を使用する場合、[データ キャッシュを有効にする] チェックボックスをオンにします。
データ キャッシュは、Cloud SQL for PostgreSQL Enterprise Plus エディションのインスタンスで使用できるオプション機能です。移行先データベースに高速ローカル ソリッド ステート ドライブを追加します。この機能を使用すると、Cloud SQL の追加費用が発生する可能性があります。データ キャッシュの詳細については、Cloud SQL ドキュメントのデータ キャッシュの概要をご覧ください。
- Cloud SQL インスタンスのストレージ タイプを指定します。 ソリッド ステート ドライブ(SSD)またはハードディスク ドライブ(HDD)を選択できます。
- Cloud SQL インスタンスのストレージ容量(GB)を指定します。
- 必要に応じて、[オプションの構成を表示] をクリックし、次のように操作します。
移行元から移行先に移行されるデータの暗号化を管理するかどうかを指定します。デフォルトでは、データは Google Cloudによって管理される鍵で暗号化されます。ご自身で暗号化を管理する場合は、顧客管理の暗号鍵(CMEK)を使用できます。手順は次のとおりです。
- [顧客管理の暗号鍵(CMEK)を使用する] チェックボックスをオンにします。
- [顧客管理の暗号鍵を選択] メニューから CMEK を選択します。
鍵が表示されない場合は、[鍵のリソース名を入力] をクリックして、使用する鍵のリソース名を指定します。たとえば、[Key resource name] フィールドに「
projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key
」と入力し、[SAVE] をクリックします。- データベース サーバーに適用する必要なフラグを追加します。可能であれば、作成した移行先の Cloud SQL インスタンスのデータベース フラグが移行元データベースのデータベース フラグと同じであることを確認します。PostgreSQL でサポートされているデータベース フラグの詳細を確認する。
- Cloud SQL インスタンスに固有のラベルを追加します。
ラベルはインスタンスの整理に役立ちます。たとえば、コストセンターや環境別にラベルを整理できます。ラベルは請求書にも記載されるため、ラベル間のコストの分散を確認できます。
[作成して続行] をクリックします。
- [移行先データベースの作成] ウィンドウで、[移行先を作成して続行] をクリックして新しいインスタンスを作成します。処理が完了するまでには数分かかることがあります。
- 宛先インスタンスの作成が完了するまで待ちます。
移行元データベースと移行先データベースのインスタンス間の接続を設定する
[接続方法] プルダウン メニューから、ネットワーク接続方法を選択します。この方法により、新しく作成された Cloud SQL インスタンスがソース データベースに接続される方法が定義されます。現在のネットワーク接続方法には、IP 許可リスト、リバース SSH トンネル、VPC ピアリングがあります。
- IP 許可リストのネットワーク接続方法を選択した場合は、宛先インスタンスの送信 IP アドレスを指定する必要があります。作成した Cloud SQL インスタンスが高可用性インスタンスの場合は、プライマリ インスタンスとセカンダリ インスタンスの両方の送信 IP アドレスを含めます。
リバース SSH トンネル ネットワーク接続方法を選択した場合は、トンネルをホストする Compute Engine VM インスタンスを選択します。
インスタンスを指定すると、ソース データベースと移行先データベース間のトンネルを設定する手順を実行するスクリプトが提供されます。スクリプトは Google Cloud CLI で実行する必要があります。
ソース データベースと Google Cloud の両方に接続できるマシンからコマンドを実行します。
- VPC ピアリング ネットワーク接続方法を選択する場合は、ソース データベースが存在する VPC ネットワークを選択します。このネットワークに接続するように Cloud SQL インスタンスが更新されます。
- 詳しくは、接続を構成するをご覧ください。
ネットワーク接続方法を選択し、その方法の追加情報を入力したら、[構成して続行] をクリックします。
移行ジョブをテストして作成する
この最後のステップでは、移行ジョブの設定、ソース、移行先、接続方法の概要を確認し、移行ジョブの設定の有効性をテストします。問題が発生した場合は、移行ジョブの設定を変更できます。すべての設定を編集できるわけではありません。[TEST JOB] をクリックして、次のことが確認されていることを確認します。
- 前提条件に基づいて、ソース データベースが正しく構成されている。
- ソース インスタンスと宛先インスタンスは相互に通信できます。
- 宛先で必要なプライベート IP アドレスまたはパブリック IP アドレスの更新が完了します。
移行ジョブが有効で、移行元と移行先のバージョンが互換性があります。
テストに失敗した場合は、フローの適切な部分で問題に対処してから、再テストに戻ることができます。
[ジョブを作成して開始] をクリックして移行ジョブを作成してすぐに開始するか、[ジョブを作成] をクリックして移行ジョブを作成してすぐに開始しないでください。
ジョブが作成時に開始されなかった場合は、[移行ジョブ] ページで [開始] をクリックして開始できます。
移行ジョブの開始時間に関係なく、移行先インスタンスの存在に対して料金が発生します。
移行ジョブは移行ジョブのリストに追加され、直接表示できます。