データベースを Cloud SQL for MySQL に移行する
このクイックスタートでは、Database Migration Service を使用して Cloud SQL for MySQL にデータを移行する方法について説明します。新しい Cloud SQL インスタンスに移行することも、Database Migration Service の外部で作成された既存のインスタンスに移行することもできます。また、移行元からすべてのデータベースを移行することも、移行する特定のデータベースのみを選択することもできます。このクイックスタートで作成されるリソースにかかる費用は、クリーンアップを含む手順を適切なタイミングで完了した場合、通常 1 ドル(USD)未満です。
始める前に
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Database Migration Service API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。 - ユーザー アカウントにデータベース移行管理者のロールが割り当てられていることを確認します。
要件
Database Migration Service は、さまざまな移行元データベース オプションと接続方法を提供します。さまざまなソースは、一部の接続方法でのほうが、他の接続方法よりもよく機能します。このクイックスタートでは、ネットワークを構成して受信ファイアウォール ルールを追加できる環境でスタンドアロンの MySQL データベースを使用していることを前提としています。移行元データベースは、オンプレミスまたはクラウド プロバイダにできます。ユーザーの具体的な環境を把握できないため、ネットワーキング構成に関する詳細なステップは提供できません。
このクイックスタートでは、[移行元データベース エンジン] に [MySQL] を選択し、ネットワーク方式として [IP 許可リスト] を選択します。
ソース接続プロファイルの作成
接続プロファイルを作成すると、移行元データベースに関する情報を含むレコードが作成されます。Database Migration Service は、接続プロファイルの情報を使用して、移行元データベースから移行先の Cloud SQL データベース インスタンスにデータを移行します。コンソールで、Database Migration Service の [接続プロファイル] ページに移動します。 Google Cloud
[プロファイルを作成] をクリックします。
[接続プロファイルの作成] ページの [プロファイル ロール] リストから、[ソース] を選択します。
[データベース エンジン] リストから、移行元データベースの次のいずれかの分類タイプを選択します。
- スタンドアロンの MySQL インスタンス(MySQL)
- 既存の Cloud SQL for MySQL インスタンス(Cloud SQL for MySQL)
- MySQL 用の Amazon RDS インスタンス(Amazon RDS for MySQL)
このクイックスタートでは、[MySQL] を選択します。
- 次の情報を指定します。
- [接続プロファイル名] フィールドに、移行元データベースの接続プロファイルの名前(
My Connection Profileなど)を入力します。 - 自動生成された接続プロファイル ID を保持します。
- 接続情報を入力します。
- 自己ホスト型のデータベースからレプリケーションを行う場合は、ホストにアクセスするためのホスト名または IP アドレス (ドメインまたは IP)とポート を入力します。(デフォルトの MySQL ポートは 3306 です)。
- Cloud SQL データベースからレプリケーションを行う場合は、プルダウン リストから Cloud SQL インスタンスを選択します。
- 移行元インスタンスを認証するためのユーザー名 とパスワード を入力します。
- (省略可)パブリック ネットワーク経由で機密情報を転送する場合(IP 許可リストを使用)、移行元データベースと移行先データベース間の接続にSSL/TLS 暗号化を使用することをおすすめします。それ以外の場合は、デフォルト値の [なし] のままにします。
- [接続プロファイル名] フィールドに、移行元データベースの接続プロファイルの名前(
ページの [接続プロファイル リージョン] セクションで、接続プロファイルを保存するリージョンを選択します。
- [作成] をクリックします。
移行ジョブの作成
Database Migration Service は、移行ジョブを使用して、移行元のデータベース インスタンスから移行先の Cloud SQL データベース インスタンスにデータを移行します。移行ジョブの作成には、次の手順が含まれます。
- ジョブの設定の定義
- 移行元データベース用に作成した接続プロファイル(ソース接続プロファイル)の選択
- 移行先の Cloud SQL データベース インスタンスの設定の定義
- 移行元データベースと移行先データベースのインスタンス間の接続の設定
- 移行ジョブをテストして、ジョブに指定した接続情報が有効であることを確認する
移行ジョブの設定を定義する
コンソールで、Database Migration Service の [移行ジョブ] ページに移動します。 Google Cloud
[移行ジョブを作成] をクリックします。
[移行ジョブ名] フィールドに、移行ジョブの名前(
My Migration Jobなど)を入力します。自動生成された移行ジョブ ID を保持します。
[移行元データベース エンジン] プルダウン リストを開き、移行元データベースの分類タイプを選択します。Database Migration Service では、移行先のデータベース エンジン が自動的に選択されます。
移行先インスタンスを作成する移行先リージョン を選択します。
移行元データベースで進行中の変更を移行先の Cloud SQL データベース インスタンスに移行するため、[移行ジョブタイプ] を [継続的] に設定します。
移行ジョブに環境を準備する方法が反映されるように、自動的に生成される必須の前提条件を確認します。これらの前提条件には、移行元データベースを構成する方法と移行先の Cloud SQL データベース インスタンスに接続する方法が含まれます。この手順でこれらの前提条件を完了することをおすすめしますが、移行ジョブをテストまたは開始する前であればいつでも完了できます。これらの前提条件の詳細については、移行元を構成するをご覧ください。
[保存して続行] をクリックします。
ソース接続プロファイルに関する情報の指定
[移行元接続プロファイルを選択する] プルダウン リストを開き、作成した接続プロファイルを選択します。
[保存して続行] をクリックします。
移行先の Cloud SQL インスタンスの設定を定義する
Cloud SQL インスタンスの移行先インスタンス ID を指定します。デフォルトでは、移行ジョブ ID がこのフィールドに事前入力されます。この名前を保持することも、別の名前を入力することもできます。
移行先の Cloud SQL インスタンスの英数字のパスワードを指定します。これは、インスタンスの
root管理者アカウントのパスワードになります。手動でパスワードを入力するか、[生成] をクリックして Database Migration Service に自動的に作成させることができます。
指定したデータベース エンジン用にサポートされている Cloud SQL のバージョンのリストから、移行先インスタンスのデータベースのバージョン を選択します。
新しい Cloud SQL インスタンスに必要な Google Cloud ゾーン を選択します(または [任意] のままにします)。
このクイックスタートでは、ネットワーク方式として IP 許可リストを使用するため、[パブリック IP] チェックボックスをオンにします。この方法は、Cloud SQL インスタンスの送信 IP アドレスからの接続を受け入れるように移行元データベース サーバーを構成することで機能します。
Cloud SQL インスタンスのマシンタイプ を選択します。ディスクサイズは移行元データベースのサイズ以上である必要があります。
Cloud SQL インスタンスのストレージ タイプ とストレージ容量 を定義します。
[作成して続行] をクリックして、新しいインスタンスを作成します。
次のダイアログ ボックスで [移行先を作成して続行] をクリックします。 インスタンスの作成が完了するまで数分かかる場合があります。
接続を設定する
- 移行元データベースと移行先データベース間の接続を確立するために使用するネットワーク方式を選択します。
このクイックスタートでは、[接続方法] リストを使用して、ネットワーク方式として [IP 許可リスト] を選択します。
IP 許可リストは、移行元データベースと移行先データベースのデータへのアクセスを信頼できるユーザーのみに制限 、制御するためにしばしば使用されるセキュリティ機能です。IP 許可リストを使用すると、ユーザーがこのデータにアクセスできる信頼できる IP アドレスまたは IP 範囲のリストを作成します。また、IP 許可リストを使用するには、移行先の Cloud SQL インスタンスからの受信 接続に対する、移行元データベースまたはファイアウォールを開く必要があります。
IP アドレスが [移行先の送信 IP アドレス] フィールドに表示されるまで数分かかる場合があります。
- このフィールドに移行元 IP アドレスが事前入力されていない場合は、コンソールから Cloud SQL
インスタンスの送信 IP アドレスをコピーし、それを使用して、移行元データベース サーバーがこの IP アドレスからの接続を受け入れるようにネットワーク ファイアウォールを構成してください。
- ファイアウォール ルールで、移行先の Cloud SQL インスタンスの接続 IP アドレスからポート 3306 での接続を許可する受信(または上り)ルールを作成します。
- [構成して続行] をクリックして、接続プロファイルの構成を完了します。
移行ジョブをテストして作成する
移行ジョブに選択した設定を確認します。
[ジョブをテスト] をクリックして、移行元が正しく構成されていること、移行元インスタンスと移行先インスタンスが相互に通信可能であること、移行ジョブが有効であることを確認します。
[テストに合格しました] ステータスが表示されていることを確認します。
テストに失敗した場合は、フローの適切な部分で問題に対処してから、再テストに戻ることができます。
[ジョブを作成して開始] をクリックして、移行ジョブを作成してすぐに開始します。
次のダイアログ ボックスで [開始] をクリックします。
[移行ジョブ] ページで、移行ジョブのステータスが [開始中] であることを確認します。数分後、ステータスが [実行中] に変わっていることを確認します。
移行ジョブを確認する
このセクションでは、Database Migration Service が移行ジョブを使用して、移行元のデータベース インスタンスから移行先の Cloud SQL データベース インスタンスにデータを移行したことを確認します。
- の [SQL インスタンス] ページに移動します Google Cloud console。
- 移行ジョブのリードレプリカ エントリをクリックします。
- ページ右上に表示される [Cloud Shell をアクティブにする] アイコンをクリックします。
- Google Cloud Shell のプロンプトで、Enter キーを押します。
- 省略可: [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
- 移行先の Cloud SQL データベース インスタンスに接続します。
- At the [Enter password] prompt, enter the password that you either provided or that Database Migration Service generated for you in [Define settings for the destination Cloud SQL instance].
- mysql プロンプトで
show databases;と入力してデータベースを一覧表示し、移行元データベース インスタンスが表示されていることを確認します。 - mysql プロンプトで
use source_database_instance_name;と入力します。これは、このデータベース インスタンスに関連付けられているテーブルを表示するためです。 - mysql プロンプトで
show tables;と入力して、このインスタンスのテーブルを表示します。 - mysql プロンプトで
select * from table_name;と入力して、移行元データベース インスタンスのテーブルから複製された情報を表示します。 - 表に正しい情報が表示されていることを確認します。
これにより、Database Migration Service がデータを移行したことが確認できます。
移行ジョブを昇格させる
移行ジョブをプロモートする準備ができました。その結果、移行先の Cloud SQL データベース インスタンスが、移行元のデータベース インスタンスをプライマリ データベースとして置き換えます。
[移行ジョブ] ページに戻ります。
プロモートする移行ジョブをクリックします。[移行ジョブの詳細] ページが表示されます。
レプリケーションの遅延がゼロになるまで待ちます。
移行元データベースへの書き込みをすべて停止します 。
移行ジョブをプロモートすると、移行先の Cloud SQL データベースがプライマリ データベースになるため、移行元データベースへのすべての書き込みを停止する必要があります。 スクリプトを使用して、書き込みが停止したことを確認できます。 レプリケーションの遅延がゼロになるまで待ちます。
プロモートする移行ジョブをクリックします。このジョブのステータスは [実行中] になっているはずです。
[プロモート] をクリックして、移行ジョブをプロモートします。
次のダイアログ ボックスで [プロモート] をもう一度クリックします。
移行ジョブのステータスが [プロモート処理中] であることを確認します。数分後、ステータスが [完了] に変わっていることを確認します。
新しい Cloud SQL データベース インスタンスを使用できるようになりました。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、 次の手順を実施します。
- コンソールを使用して、不要な移行ジョブ、接続プロファイル、Cloud SQL インスタンス、プロジェクトを削除します。 Google Cloud
次のステップ
- 接続プロファイルを管理する方法の詳細を確認する 。
- 移行ジョブのステータス の詳細を確認する。
- 移行ジョブの指標の詳細を確認する 。