Cloud SQL インスタンスへのアクセスを構成する
このドキュメントでは、Virtual Private Cloud ピアリングの設定、Cloud SQL プロキシのインストール、異なる Google Cloud プロジェクト間での内部 Cloud SQL IP アドレスへの接続の詳細な手順について説明します。この設定により、Cloud SQL インスタンスと次のコネクタ間のセキュリティが強化され、効率的な通信が実現します。
このドキュメントでは、BigQuery Data Transfer Service コネクタ プロジェクトでのネットワーク アタッチメントの作成についても説明します。
始める前に
次のものがあることを確認してください。
- BigQuery Data Transfer Service コネクタを使用する Google Cloud プロジェクトと、Cloud SQL インスタンスを使用する別の Google Cloud プロジェクトへのアクセス。
- Google Cloud プロジェクト内の既存の MySQL または PostgreSQL データベース。
- VPC の作成、ファイアウォール ルールの作成、ソフトウェアのインストールを行うための適切な権限。
VPC ピアリングを設定する
VPC ピアリングを設定するには、BigQuery Data Transfer Service コネクタ プロジェクトから VPC ピアリングを作成し、Cloud SQL データベース プロジェクトで BigQuery Data Transfer Service プロジェクトへの VPC ピアリングを作成し、ルートとファイアウォール ルールを構成する必要があります。
BigQuery Data Transfer Service コネクタ プロジェクトから VPC ピアリングを作成する
Google Cloud コンソールで、BigQuery Data Transfer Service コネクタ プロジェクトの [VPC ネットワーク ピアリング] ページに移動します。
[Create peering connection] をクリックします。
[名前] フィールドに、ピアリング構成の名前を入力します。
[VPC ネットワーク] で、BigQuery Data Transfer Service コネクタ プロジェクトでピアリングする VPC ネットワークを選択します。
[ピアリングした VPC ネットワーク] で [別のプロジェクト] オプションを選択します。
[プロジェクト ID] に、Cloud SQL プロジェクトのプロジェクト ID を入力します。
[VPC ネットワーク名] に、Cloud SQL プロジェクトの VPC ネットワークの名前を入力します。
[作成] をクリックします。
Cloud SQL データベース プロジェクトに VPC ピアリングを作成する
Cloud SQL データベース プロジェクトから BigQuery Data Transfer Service プロジェクトへの VPC ピアリングを作成するには、次の操作を行います。
Google Cloud コンソールで、BigQuery Data Transfer Service コネクタ プロジェクトの [VPC ネットワーク ピアリング] ページに移動します。
[Create peering connection] をクリックします。
[名前] フィールドに、ピアリング構成の名前を入力します。
Cloud SQL データベース プロジェクトでピアリングする VPC ネットワークを選択します。
[ピア プロジェクト ID] に、BigQuery Data Transfer Service プロジェクトのプロジェクト ID を入力します。
[ピアリングされた VPC ネットワーク] に、BigQuery Data Transfer Service コネクタ プロジェクトの VPC ネットワークの名前を入力します。
[作成] をクリックします。
ルートとファイアウォール ルールを構成する
前の手順でピアリング接続を構成するときにインポート / エクスポート ルートを選択しなかった場合は、次の手順で選択します。
BigQuery Data Transfer Service コネクタ プロジェクトの [ルート] ページに移動します。
ピアリングされた VPC 環境間のトラフィックを許可するルートが存在することを確認します。
[ファイアウォール ポリシー] ページに移動します。
ピアリングされたネットワーク間で必要なポート(MySQL の場合はポート 3306、PostgreSQL の場合はポート 5432 など)でトラフィックを許可するファイアウォール ルールを作成します。
BigQuery Data Transfer Service コネクタ プロジェクトに必要なカスタム ファイアウォール ルールを、Cloud SQL データベース ホスト型プロジェクトに追加します。
前の手順と同様に、Cloud SQL インスタンスを使用してプロジェクトのルートとファイアウォール ルールを構成します。
Cloud SQL Proxy を設定する
SSH を使用して、BigQuery Data Transfer Service コネクタ プロジェクトの仮想マシン(VM)インスタンスに接続します。
ターミナルで Cloud SQL Proxy をダウンロードします。
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
ダウンロードしたファイルの権限を更新します。
chmod +x cloud_sql_proxy
Cloud SQL Proxy を実行します。
./cloud_sql_proxy -instances=NAME=tcp:3306 or 5432 &
NAME
は、Cloud SQL インスタンス接続の名前に置き換えます。
内部 Cloud SQL IP アドレスに接続する
- 接続には Cloud SQL インスタンスの内部 IP アドレスを使用します。
- 適切な認証情報とデータベースの詳細を指定して、内部 IP アドレスに接続するようにアプリケーションまたはツールを構成します。
別の Google Cloud プロジェクトから接続する場合は、前にデプロイしたプロキシ VM の内部 IP アドレスを使用します。このソリューションでは、トランザタビリティ ピアリングの問題を解決します。
ネットワーク アタッチメントを作成する
BigQuery Data Transfer Service コネクタ プロジェクトでネットワーク アタッチメントを作成するには、次の操作を行います。
Google Cloud コンソールで、[ネットワーク アタッチメント] ページに移動します。
[ネットワーク アタッチメントを作成] をクリックします。
ネットワーク アタッチメントの名前を指定します。
適切な VPC ネットワークを選択します。
[リージョン] に、BigQuery Data Transfer Service コネクタが配置されているリージョンを指定します。
[サブネットワーク] で、設定に適したオプションを選択します。
[ネットワーク アタッチメントの作成] をクリックします。
接続をテストする
Cloud SQL Proxy を使用する VM が Cloud SQL インスタンスに接続できることを確認します。
mysql -u USERNAME -p -h IP_ADDRESS
次のように置き換えます。
USERNAME
: データベース ユーザーのユーザー名IP_ADDRESS
: Cloud SQL インスタンスの IP アドレス
BigQuery Data Transfer Service コネクタ プロジェクト内のアプリケーションが、内部 IP を使用して Cloud SQL インスタンスに接続できることを確認します。
トラブルシューティング
ネットワーク構成の設定で問題が発生した場合は、次の操作を行います。
- VPC ピアリングが確立され、ルートが正しく構成されていることを確認します。
- ファイアウォール ルールで必要なポートのトラフィックが許可されていることを確認します。
- Cloud SQL Proxy のログをチェックしてエラーがないか確認し、正しく実行されていることを確認します。
- ネットワーク アタッチメントが正しく構成され、接続されていることを確認します。