概要
Database Migration Service は、移行ジョブを使用して、移行元のデータベース インスタンスから移行先の AlloyDB データベース インスタンスにデータを移行します。プライベート IP 接続の場合、Database Migration Service で作成された AlloyDB for PostgreSQL クラスタに移行するときは、プライベート サービス アクセス方法のみを使用できます。移行先クラスタで Private Service Connect を使用する場合は、まず Database Migration Service の外部に AlloyDB for PostgreSQL の移行先を作成してから、既存のインスタンスに移行するフローに沿って操作します。
移行ジョブの作成には、次の操作が含まれます。
- 移行ジョブの設定を定義します
- ソース データベース用に作成した接続プロファイル(ソース接続プロファイル)に関する情報を指定する
- 移行先の AlloyDB データベース インスタンスの設定を定義し、インスタンスを作成する
- 移行元データベースと移行先データベースのインスタンス間の接続を設定する
- 移行ジョブをテストして、ジョブに指定した接続情報が有効であることを確認します
Database Migration Service ウィザードを使用すると、移行ジョブを作成できます。このウィザードは、移行元データベース、移行先データベース、接続方法に関する情報を指定する複数のペインで構成されています。ウィザードでは、移行ジョブの作成を完了する前にテストすることもできます。各ペインへの入力方法については、このページのさまざまなセクションをご覧ください。
移行ジョブの設定を定義する
- Google Cloud コンソールの [移行ジョブ] ページに移動します。
- ページの上部にある [移行ジョブを作成] をクリックします。
移行ジョブの名前を指定します。
移行ジョブを識別しやすいフレンドリ名を選択します。ジョブ名に機密情報や個人を特定できる情報を含めないでください。
自動生成された移行ジョブ ID を保持します。
移行元データベース エンジンを選択します。
移行先エンジンとして AlloyDB for PostgreSQL を選択します。
移行先のリージョンを選択します。これは、Database Migration Service インスタンスが作成される場所です。Compute Engine インスタンス、App Engine アプリ、その他のサービスなど、データを必要とするサービスの場所に基づいて選択する必要があります。移行先のリージョンを選択すると、この選択は変更できません。
移行ジョブのタイプとして [継続的](スナップショット + 進行中の変更)を選択します。
移行ジョブに環境を準備する方法が反映されるように、自動的に生成される必須の前提条件を確認します。これらの前提条件には、移行元データベースの構成方法と移行先の AlloyDB データベース インスタンスに接続する方法が含まれます。この手順でこれらの前提条件を完了することをおすすめしますが、移行ジョブをテストまたは開始する前であればいつでも完了できます。これらの前提条件の詳細については、移行元を構成するをご覧ください。
[保存して次へ] をクリックします。
ソース接続プロファイルに関する情報の指定
-
接続プロファイルを作成した場合は、既存の接続プロファイルのリストから選択します。
接続プロファイルを作成していない場合は、プルダウン リストの下部にある [接続プロファイルの作成] をクリックして作成してから、ソース接続プロファイルの作成と同じ手順を行います。
AlloyDB 移行用に専用の接続プロファイルを作成することをおすすめします。
- [データダンプの構成をカスタマイズする] セクションで、[データダンプの構成を表示] をクリックします。
データダンプの並列処理の速度は、移行元のデータベースの負荷量に関連しています。次の設定を使用できます。
- 最適(推奨): バランスの取れたパフォーマンスと、ソース データベースへの最適な負荷。
- 最大: ダンプ速度が最も速くなりますが、その結果としてソース データベースの負荷が増加する可能性があります。
- 最小: ソース データベースで使用されるコンピューティング リソースの量は最小限ですが、ダンプ スループットが遅くなる可能性があります。
調整されたデータダンプの並列処理設定を使用する場合は、ソース データベースの
max_replication_slots
、max_wal_senders
、max_worker_processes
パラメータを必ず増やしてください。構成を確認するには、移行ジョブの作成の最後に 移行ジョブのテストを実行します。 - [保存して次へ] をクリックします。
宛先 AlloyDB インスタンスを定義して作成する
移行ジョブ用に新しい移行先の AlloyDB クラスタを作成します。クラスタは AlloyDB の最上位のリソースです。移行プロセス中に作成するデータベースに対する読み取り/書き込みアクセス用の単一のプライマリ インスタンスが含まれています。
宛先クラスタを作成するには:
- クラスタタイプを選択します。Database Migration Service は現在、高可用性の AlloyDB クラスタをサポートしています。読み取りプールを使用せずに、リージョン内の複数のゾーンからデータを提供できます。
- [続行] をクリックします。
- クラスタを構成します。
- [クラスタ ID] フィールドに、クラスタの ID を入力します。
- [パスワード] フィールドに、デフォルトの
postgres
ユーザーのパスワードを入力します。データベースにログインするには、パスワードが必要です。 - [ネットワーク] フィールドで次の操作を行います。
- ネットワーク パスを選択して、移行接続の設定時に使用可能なリソースを定義します。クラスタを構成するには、プライベート IP ネットワーク パスが必要です。VPC ピアリングを使用して移行元データベースに接続する場合は、移行元データベースが存在する VPC を選択します。
- ネットワークが プライベート サービス アクセス用に構成されていない場合は、[接続を設定] をクリックして、接続構成ウィザードの手順に沿って操作します。
- 選択した VPC にマネージド サービス ネットワークが構成されていない場合は、IP 範囲を選択して [接続] をクリックするか、自動的に選択された IP 範囲を使用して [割り振りと接続] をクリックします。
- 省略可: [暗号化] セクションで、移行元から移行先に移行されたデータの暗号化を管理するかどうかを指定します。デフォルトでは、データは Google Cloudが管理する鍵で暗号化されます。
ご自身で暗号化を管理する場合は、顧客管理の暗号鍵(CMEK)を使用できます。鍵は AlloyDB クラスタと同じロケーションにあることが必要です。たとえば、us-west1 にあるクラスタは、us-west1 の鍵のみを使用できます。
- [顧客管理の暗号鍵(CMEK)を使用する] ラジオボタンを選択します。
- [顧客管理の暗号鍵を選択] メニューから、CMEK を選択します。
鍵が表示されない場合は、[鍵のリソース名を入力] をクリックして、使用する鍵のリソース名を指定します。たとえば、[鍵のリソース名] フィールドに「
projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key
」と入力し、[保存] をクリックします。 - [続行] をクリックします。
- プライマリ インスタンスを構成します。プライマリ インスタンスは、クラスタのコンピューティング容量を決定し、読み取り / 書き込みオペレーションをサポートします。
- [インスタンス ID] フィールドに、プライマリ インスタンスの ID を入力します。
- マシンタイプを選択します。
- IP 許可リスト接続方法を使用する場合は、[アウトバウンド パブリック IP を有効にする] チェックボックスをオンにします。
- 省略可: インスタンスのフラグを設定します。フラグを使用してインスタンスをカスタマイズできます。サポートされているフラグについては、AlloyDB のドキュメントをご覧ください。フラグごとに次の操作を行います。
- [フラグを追加] をクリックします。
- [新しいデータベース フラグ] リストからフラグを選択します。
- フラグの値を指定します。
- [完了] をクリックします。
- [保存して次へ] をクリックします。
- [移行先を作成して続行] をクリックして選択を確定します。
- 宛先インスタンスの作成が完了するまで待ちます。
移行元データベースと移行先データベースのインスタンス間の接続を設定する
[接続方法] プルダウン メニューから、ネットワーク接続方法を選択します。この方法により、新しく作成された AlloyDB インスタンスがソース データベースに接続される方法が定義されます。現在のネットワーク接続方法には、IP 許可リスト、VPC ピアリング、リバース SSH トンネル、クラウドでホストされている VM を経由した TCP プロキシなどがあります。
- IP 許可リスト ネットワーク接続方法を選択した場合は、移行先インスタンスのアウトバウンド IP アドレスを指定する必要があります。プライマリ インスタンスとセカンダリ インスタンスの両方の送信 IP アドレスをコピーし、それらを使用して、移行元がこれらのアドレスからの接続を受け入れるように、移行元データベース サーバーと
pg_hba.conf
ファイルでネットワーク ファイアウォールを構成します。 リバース SSH トンネル ネットワーク接続方法を選択した場合は、トンネルをホストする Compute Engine VM インスタンスを選択します。
インスタンスを指定すると、移行元データベースと移行先データベースの間にトンネルを設定する手順を実行するスクリプトが提供されます。Google Cloud CLI でスクリプトを実行する必要があります。
移行元データベースと Google Cloud の両方に接続できるマシンからコマンドを実行します。
- VPC ピアリング ネットワーク接続方法を選択した場合は、移行元データベースが存在する VPC ネットワークを選択します。このネットワークに接続するために Cloud SQL インスタンスが更新されます。
クラウドでホストされる VM の接続方式を使用した TCP プロキシを選択した場合は、TCP プロキシをホストする新しい Compute Engine VM インスタンスに必要な詳細情報を入力します。
詳細を指定すると、 Google Cloud コンソールに、移行元データベースと移行先データベースの間にプロキシを設定する手順を実行するスクリプトが表示されます。更新された Google Cloud CLI を搭載したマシンでスクリプトを実行する必要があります。
スクリプトを実行すると、新しく作成された VM のプライベート IP が出力されます。IP を入力して、[構成して続行] をクリックします。
- 接続を構成する方法の詳細を確認する。
ネットワーク接続方法を選択し、その方法に関する追加情報を入力したら、[構成して続行] をクリックします。
移行データベースの構成
移行するデータベースを選択できます。
- [移行するデータベース] リストから、次のいずれかのオプションを選択します。
- すべてのデータベース: ソースに存在するすべてのデータベースを選択します。
- 特定のデータベース: 移行元に存在するすべてのデータベースから特定のデータベースを選択できます。
特定のデータベースを移行する場合は、表示されたリストをフィルタして、Database Migration Service で移行先に移行するデータベースを選択できます。
リストが表示されず、データベース検出エラーが表示された場合は、[再読み込み] をクリックします。データベース検出が失敗した場合、ジョブはすべてのデータベースを移行します。移行ジョブの作成を続行し、接続エラーは後で修正できます。
- [保存して次へ] をクリックします。
移行ジョブをテストして作成する
この最後の手順では、移行ジョブの設定、移行元、移行先、接続方法の概要を確認し、移行ジョブの設定の有効性をテストします。問題が発生した場合は、移行ジョブの設定を変更できます。すべての設定を編集できるわけではありません。[TEST JOB] をクリックして、次のことを確認します。
- 前提条件に基づいて、移行元データベースが正しく構成されている。
- 移行元インスタンスと移行先インスタンスが相互に通信できる。
- 宛先で必要なプライベート IP アドレスの更新が完了している。
移行ジョブは有効で、移行元と移行先のバージョンに互換性があります。
テストに失敗した場合は、フローの適切な部分で問題に対処してから、再テストに戻ることができます。
テストが失敗しても移行ジョブは作成できますが、ジョブの開始後に実行中に失敗する可能性があります。
[ジョブを作成して開始] をクリックして移行ジョブを作成してすぐに開始するか、[ジョブを作成] をクリックして移行ジョブを作成し、すぐに開始しないようにします。
ジョブが作成時に開始されていない場合は、[移行ジョブ] ページで [開始] をクリックして開始できます。
移行ジョブの開始時期に関係なく、移行先インスタンスが存在する間は料金が発生します。
移行ジョブが移行ジョブリストに追加され、直接表示できます。