独自に作成することも、特定の移行ジョブのコンテキストで作成することも可能です。いずれの場合も、すべての接続プロファイルは [接続プロファイル] ページで確認、変更でき、移行ジョブ間で再利用できます。
ソース接続プロファイルを独自に作成すると、ソースのアクセス情報を持っているユーザーと移行ジョブを作成したユーザーが異なる場合に役立ちます。また、複数の移行ジョブでソース接続プロファイル定義を再利用することもできます。
ソース接続プロファイルを作成する手順は次のとおりです。
コンソール
- Google Cloud コンソールで、[接続プロファイル] ページに移動します。
- [プロファイルの作成] をクリックします。
- [Create a connection profile] ページの [Profile role] リストから、[Source] を選択します。
- [データベース エンジン] リストから、移行元データベース エンジンを選択します。
- [接続プロファイル名] フィールドに、接続プロファイルの読み取り可能な名前を入力します。この値は、接続プロファイルのリストに表示されます。
- 自動生成された接続プロファイル ID を保持します。
- ホスト名またはIP アドレスを入力します。
ソース データベースが Google Cloudでホストされている場合、またはリバース SSH トンネルを使用して宛先データベースをソース データベースに接続する場合は、ソース データベースのプライベート(内部)IP アドレスを指定します。このアドレスには、Cloud SQL の移行先からアクセスできます。詳細については、 VPC ピアリングを使用して接続を構成するをご覧ください。
IP 許可リストなどの他の接続方法の場合は、パブリック IP アドレスを指定します。
- MySQL では、ホスト名が 60 文字に制限されています。Amazon RDS データベースのホスト名は通常、60 文字を超えます。移行するデータベースがこれに該当する場合は、DNS リダイレクトを構成して、ドメイン名を RDS DB インスタンスのドメイン名に関連付ける CNAME レコードを作成します。DNS CNAME の設定の詳細については、Google Cloud または AWS Route53 をご覧ください。
- ホストへのアクセスに使用するポートを入力します。MySQL のデフォルト ポートは 3306 です。
- 宛先データベースのユーザー名とパスワードを入力します。ユーザー アカウントには、データにアクセスするために必要な権限が必要です。詳細については、 移行元データベースを構成するをご覧ください。
- ページの [接続プロファイルのリージョン] セクションで、接続プロファイルを保存するリージョンを選択します。
省略可: パブリック ネットワーク上で(IP 許可リストを使用して)接続している場合は、ソース データベースと宛先データベース間の接続に SSL/TLS 暗号化を使用することをおすすめします。
[接続を保護する] セクションの [暗号化タイプ] リストで、次のいずれかの SSL/TLS 構成オプションを選択します。
- なし: Cloud SQL の宛先インスタンスは、暗号化なしでソース データベースに接続します。データベースで暗号化された接続が必要な場合は、このオプションを使用しないことをおすすめします。
- 基本: Cloud SQL の宛先インスタンスは、暗号化を使用してソース データベースに接続しますが、認証局(CA)は検証しません。
TLS 認証: Cloud SQL の宛先インスタンスがソース データベースに接続すると、インスタンスはソースを認証し、インスタンスが正しいホストに安全に接続していることを確認します。これにより、中間者(PITM)攻撃を防ぐことができます。TLS 認証の場合、ソースはインスタンスを認証しません。
TLS 認証を使用するには、外部サーバーの証明書に署名した CA の x509 PEM でエンコードされた証明書を指定する必要があります。
- mTLS 認証: 宛先インスタンスがソースに接続すると、インスタンスはソースを認証し、ソースはインスタンスを認証します。
mTLS 認証は最も強力なセキュリティを提供します。ただし、Cloud SQL 宛先インスタンスの作成時にクライアント証明書と秘密鍵を提供したくない場合は、TLS 認証を使用できます。
mTLS 認証を使用するには、宛先接続プロファイルを作成するときに次の項目を指定する必要があります。
- ソース データベース サーバーの証明書に署名した CA の証明書(CA 証明書)。
- インスタンスがソース データベース サーバーに対する認証に使用する証明書(クライアント証明書)。
- クライアント証明書に関連付けられた秘密鍵(クライアント鍵)。
[作成] をクリックします。
[接続プロファイル] ページが表示され、新しく作成された接続プロファイルが表示されます。
gcloud
このサンプルでは、オプションの --no-async
フラグを使用して、すべてのオペレーションが同期的に実行されます。そのため、一部のコマンドは完了するまでに時間がかかることがあります。--no-async
フラグをスキップして、コマンドを非同期で実行できます。その場合は、gcloud database-migration operations describe
コマンドを使用して、オペレーションが成功したかどうかを確認する必要があります。
後述のコマンドデータを使用する前に、次のように置き換えます。
- CONNECTION_PROFILE_ID は、接続プロファイルの機械読み取り可能な識別子に置き換えます。
- REGION は、接続プロファイルを保存するリージョンの ID に置き換えます。
- HOST_IP_ADDRESS は、Database Migration Service が移行元のデータベース インスタンスに到達できる IP アドレスに置き換えます。この値は、移行に使用する 接続方法によって異なる場合があります。
- PORT_NUMBER は、ソース データベースが受信接続を受け入れているポート番号に置き換えます。MySQL のデフォルト ポートは 3306 です。
- USERNAME は、Database Migration Service が移行元データベース インスタンスに接続するデータベース ユーザー アカウントの名前に置き換えます。
- PASSWORD は、データベース ユーザー アカウントのパスワードに置き換えます。
- (省略可)CONNECTION_PROFILE_NAME は、接続プロファイルのわかりやすい名前に置き換えます。この値は、 Google Cloud コンソールに表示されます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration connection-profiles \ create mysql CONNECTION_PROFILE_ID \ --no-async \ --region=REGION \ --host=HOST_IP_ADDRESS \ --port=PORT_NUMBER \ --username=USERNAME \ --password=PASSWORD \ --display-name=CONNECTION_PROFILE_NAME
Windows(PowerShell)
gcloud database-migration connection-profiles ` create mysql CONNECTION_PROFILE_ID ` --no-async ` --region=REGION ` --host=HOST_IP_ADDRESS ` --port=PORT_NUMBER ` --username=USERNAME ` --password=PASSWORD ` --display-name=CONNECTION_PROFILE_NAME
Windows(cmd.exe)
gcloud database-migration connection-profiles ^ create mysql CONNECTION_PROFILE_ID ^ --no-async ^ --region=REGION ^ --host=HOST_IP_ADDRESS ^ --port=PORT_NUMBER ^ --username=USERNAME ^ --password=PASSWORD ^ --display-name=CONNECTION_PROFILE_NAME
次のようなレスポンスが返されます。
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]