このクイックスタートでは、Database Migration Service を使用して Cloud SQL for PostgreSQL にデータを移行する方法について説明します。このクイックスタートで作成されるリソースにかかる費用は、クリーンアップを含む手順を適切なタイミングで完了した場合、通常 1 ドル(USD)未満です。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Database Migration Service API.
- ユーザー アカウントにデータベース移行管理者のロールが割り当てられていることを確認します。
要件
Database Migration Service は、さまざまな移行元のデータベース オプションと接続方法を提供します。さまざまなソースは、一部の接続方法でのほうが、他のものよりもよく機能します。このクイックスタートでは、ネットワークを構成して受信ファイアウォール ルールを追加できる環境で、スタンドアロンの PostgreSQL データベースを使用していることを前提としています。移行元データベースは、オンプレミスまたはクラウド プロバイダにできます。お客様の具体的な環境を把握できないため、ネットワーキング構成に関する詳細なステップは提供できません。
このクイックスタートでは、[移行元データベース エンジン] に [PostgreSQL] を選択し、ネットワーキング方法として [IP 許可リスト] を選択します。
ソース接続プロファイルの作成
接続プロファイルを作成すると、ソース データベースに関する情報を含むレコードが作成されます。Database Migration Service は、接続プロファイルの情報を使用して、移行元データベースから移行先の Cloud SQL データベース インスタンスにデータを移行します。Google Cloud コンソールで、Database Migration Service の [接続プロファイル] ページに移動します。
[プロファイルを作成] をクリックします。
[Create a connection profile] ページの [Profile role] リストから、[Source] を選択します。
[データベース エンジン] リストから、ソース データベースの次のいずれかの分類タイプを選択します。
- スタンドアロンの PostgreSQL インスタンス(PostgreSQL)
- 既存の Cloud SQL for PostgreSQL インスタンス(Cloud SQL for PostgreSQL)
- PostgreSQL 用の Amazon RDS インスタンス(Amazon RDS for PostgreSQL)
このクイックスタートでは、[PostgreSQL] を選択します。
- 次の情報を指定します。
- [接続プロファイル名] フィールドに、移行元データベースの接続プロファイルの名前(
My Connection Profile
など)を入力します。 - 自動生成された接続プロファイル ID を保持します。
- 接続情報を入力します。
- 自己ホスト型のデータベースからレプリケーションを行う場合は、ホストにアクセスするためのホスト名または IP アドレス(ドメインまたは IP)とポートを入力します。(デフォルトの PostgreSQL ポートは 5432 です)。
- Cloud SQL データベースからレプリケーションを行う場合は、プルダウン リストから Cloud SQL インスタンスを選択します。
- 移行元インスタンスへの認証用に、ユーザー名とパスワードを入力します。
- (省略可)パブリック ネットワーク経由で(IP 許可リストを使用して)機密情報を転送する場合は、移行元データベースと移行先データベース間の接続に SSL/TLS 暗号化を使用することをおすすめします。それ以外の場合は、デフォルト値の [None] のままにします。
- [接続プロファイル名] フィールドに、移行元データベースの接続プロファイルの名前(
ページの [接続プロファイルのリージョン] セクションで、接続プロファイルを保存するリージョンを選択します。
- [作成] をクリックします。
移行ジョブの作成
Database Migration Service は、移行ジョブを使用して、移行元のデータベース インスタンスから移行先の Cloud SQL データベース インスタンスにデータを移行します。移行ジョブの作成には以下が含まれます。
- ジョブの設定の定義
- 移行元データベース用に作成した接続プロファイル(ソース接続プロファイル)を選択します。
- 移行先の Cloud SQL データベース インスタンスの設定の定義
- 移行元データベースと移行先データベースのインスタンス間の接続を設定します
- 移行ジョブをテストして、ジョブに指定した接続情報が有効であることを確認します
移行ジョブの設定を定義する
Google Cloud コンソールで、Database Migration Service の [Migration jobs] ページに移動します。
[CREATE MIGRATION JOB] をクリックします。
[移行ジョブ名] フィールドに、移行ジョブの名前(
My Migration Job
など)を入力します。自動生成された移行ジョブ ID を保持します。
[移行元データベース エンジン] プルダウン リストを開き、移行元データベースの分類タイプを選択します。
宛先インスタンスを作成する宛先のリージョンを選択します。
[移行ジョブタイプ] を [継続的] に設定します。これは、移行元データベースで進行中の変更を移行先の Cloud SQL データベース インスタンスに移行するためです。
移行ジョブに環境を準備する方法が反映されるように、自動的に生成される必須の前提条件を確認します。これらの前提条件には、移行元データベースの構成方法と移行先の Cloud SQL データベース インスタンスに接続する方法が含まれます。この手順でこれらの前提条件を完了することをおすすめしますが、移行ジョブをテストまたは開始する前にいつでも完了できます。これらの前提条件の詳細については、移行元の構成をご覧ください。
[保存して続行] をクリックします。
ソース接続プロファイルに関する情報の指定
[移行元接続プロファイルを選択する] プルダウン リストを開き、作成した接続プロファイルを選択します。
[保存して続行] をクリックします。
移行先の Cloud SQL インスタンスの設定を定義する
Cloud SQL インスタンスの宛先インスタンス ID を指定します。デフォルトでは、このフィールドに移行ジョブ ID が事前に入力されています。この名前をそのまま使用することも、別の名前を入力することもできます。
移行先の Cloud SQL インスタンスの英数字のパスワードを指定します。これは、インスタンスの
postgres
管理者アカウントのパスワードになります。パスワードを手動で入力するか、[生成] をクリックして Database Migration Service に自動生成を依頼します。
指定したデータベース エンジン用にサポートされている Cloud SQL のバージョンのリストから、移行先インスタンスのデータベースのバージョンを選択します。
新しい Cloud SQL インスタンスに必要な Google Cloud ゾーンを選択します(または「任意」のままにします)。
このクイックスタートでは、ネットワーク方式として IP 許可リストを使用するため、[パブリック IP] チェックボックスをオンにします。この方法は、Cloud SQL インスタンスの送信 IP アドレスからの接続を受け入れるようにソース データベース サーバーを構成することで機能します。
Cloud SQL インスタンスのマシンタイプを選択します。ディスクサイズは移行元データベースのサイズ以上である必要があります。
Cloud SQL インスタンスのストレージ タイプとストレージ容量を定義します。
[作成して続行] をクリックして、新しいインスタンスを作成します。
次のダイアログ ボックスで [移行先を作成して続行] をクリックします。インスタンスの作成が完了するまで数分かかる場合があります。
接続を設定する
- 移行元データベースと移行先データベース間の接続を確立するために使用するネットワーク方式を選択します。このクイックスタートでは、[接続方法] リストを使用して、ネットワーク方式として [IP 許可リスト] を選択します。
- このフィールドにソース IP アドレスが事前入力されていない場合は、コンソールから Cloud SQL インスタンスの送信 IP アドレスをコピーし、この IP アドレスからの接続を受け入れるように移行元データベース サーバーのネットワーク ファイアウォールを構成します。
- この IP アドレスからの接続を受け入れるように、
pg_hba.conf
ファイルまたは Amazon RDS セキュリティ グループを更新します。 - ファイアウォール ルールで、宛先の Cloud SQL インスタンスの接続 IP アドレスからのポート 5432 での接続を許可するインバウンド(上り(内向き))ルールを作成します。
- この IP アドレスからの接続を受け入れるように、
- [構成して続行] をクリックして、接続プロファイルの構成を完了します。
移行ジョブをテストして作成する
移行ジョブに選択した設定を確認します。
[テストジョブ] をクリックして、移行元が正しく構成されていること、移行元と移行先のインスタンスが相互に通信可能であること、移行ジョブが有効であることを確認します。
[テストが正常に完了しました] ステータスが表示されていることを確認します。
テストに失敗した場合は、フローの適切な部分で問題に対処してから、再テストに戻ることができます。
[ジョブを作成して開始] をクリックして、移行ジョブを作成してすぐに開始します。
次のダイアログ ボックスで [開始] をクリックします。
[移行ジョブ] ページで、移行ジョブのステータスが [開始中] であることを確認します。数分後、ステータスが [実行中] に変わっていることを確認します。
移行ジョブを確認する
このセクションでは、Database Migration Service が移行ジョブを使用して、移行元のデータベース インスタンスから移行先の Cloud SQL データベース インスタンスにデータを移行したことを確認します。
- Google Cloud コンソールで [SQL インスタンス] ページに移動します。
- 移行ジョブのリードレプリカ エントリをクリックします。
- ページの右上に表示される [Cloud Shell をアクティブにする] アイコンをクリックします。
- Google Cloud Shell プロンプトで Enter キーを押します。
- 省略可: [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
- 宛先の Cloud SQL データベース インスタンスに接続します。
- [パスワードを入力する] プロンプトで、移行先の Cloud SQL インスタンスの設定を定義するで指定したパスワードまたは Database Migration Service によって生成されたパスワードを入力します。
- postgres プロンプトで
\list
と入力してデータベースを一覧表示し、移行元データベース インスタンスが表示されていることを確認します。 - このデータベース インスタンスに関連付けられているテーブルを表示するため、postgres プロンプトで
\connect SOURCE_DB_NAME
と入力します。プロンプトの名前がpostgres
から SOURCE_DB_NAME に変わります。 - SOURCE_DB_NAME プロンプトで
\dt
と入力して、このインスタンスのテーブルを表示します。 - SOURCE_DB_NAME プロンプトで、このインスタンスのテーブル内のデータへのアクセス権限をこのユーザーに付与するため、「
GRANT cloudsqlexternalsync to USER;
」と入力します。 - SOURCE_DB_NAME プロンプトで
SELECT * from TABLE_NAME;
と入力して、移行元データベース インスタンスのテーブルから複製された情報を表示します。 - 表に正しい情報が表示されていることを確認します。
これにより、Database Migration Service がデータを移行したことを確認できます。
移行ジョブを昇格させる
これで、移行ジョブをプロモートできます。その結果、移行先の Cloud SQL データベース インスタンスが、移行元のデータベース インスタンスに代わってプライマリ データベースになります。
[移行ジョブ] ページに戻ります。
プロモートする移行ジョブをクリックします。[移行ジョブの詳細] ページが表示されます。
レプリケーションの遅延がゼロに近づくまで待ちます。
移行元データベースへのすべての書き込みを停止します。
レプリケーションの遅延がゼロになるまで待ちます。
プロモートする移行ジョブをクリックします。このジョブのステータスは「実行中」になります。
[PROMOTE] をクリックして、移行ジョブをプロモートします。
次のダイアログ ボックスでもう一度 [昇格] をクリックします。
移行ジョブのステータスが [Promote in progress] であることを確認します。数分後、ステータスが [完了] に変わっていることを確認します。
新しい Cloud SQL データベース インスタンスを使用できるようになりました。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の操作を行います。
- Google Cloud コンソールを使用して、移行ジョブ、接続プロファイル、Cloud SQL インスタンス、プロジェクトを、不要な場合は削除します。
次のステップ
- 詳しくは、接続プロファイルを管理する方法をご覧ください。
- 詳しくは、移行ジョブのステータスをご覧ください。
- 詳しくは、移行ジョブの指標をご覧ください。