このページでは、Linux または Compute Engine の Linux インスタンスを実行しているクライアント マシンから、Cloud SQL Auth Proxy Docker イメージを使用して、sqlcmd クライアントを Cloud SQL インスタンスに接続する方法について説明します。
始める前に
次の作業を完了している必要があります。
- gcloud CLI がインストールされていること。詳細
- gcloud CLI の承認。詳細
- gcloud CLI のデフォルト プロジェクトの設定。詳細
- Cloud SQL インスタンスでのデータベース ユーザーの構成。詳細
Cloud SQL Auth Proxy Docker イメージを使用して sqlcmd クライアントを接続する
Cloud SQL Auth Proxy Docker イメージを使用して接続するには:
-
Enable the Cloud SQL Admin API.
- Compute Engine インスタンスを使用している場合は、インスタンスを準備します。
-
Compute Engine インスタンスのプロパティを表示します。
gcloud compute instances describe [GCE_INSTANCE_NAME]
- インスタンスで有効になっているスコープを確認します。
スコープを使用した認証には、次のスコープが両方とも必要です。
https://www.googleapis.com/auth/sqlservice.admin
https://www.googleapis.com/auth/devstorage.read_write
または、
https://www.googleapis.com/auth/cloud-platform
スコープを使用してすべての Google Cloud Platform API を有効にします。Compute Engine インスタンスに適切なスコープがない場合は、インスタンスを更新して適切なスコープを含めることができます。詳細については、Compute Engine のドキュメントをご覧ください。
- Linux インスタンスへの接続に記載されている手順に沿って、インスタンスへのターミナル接続を開きます。
-
Compute Engine インスタンスのプロパティを表示します。
- Compute Engine インスタンスまたはクライアント マシンに sqlcmd クライアントがまだインストールされていない場合はインストールします。
Debian、Ubuntu
Debian / Ubuntu の場合は、該当する SQL Server コマンドライン ツールをインストールするをご覧ください。
CentOS / RHEL
CentOS / RHEL の場合は、該当する SQL Server コマンドライン ツールをインストールするをご覧ください。
openSUSE
openSUSE の場合は、該当する SQL Server コマンドライン ツールをインストールするをご覧ください。
他のプラットフォーム
SQL サーバーをインストールするためのランディング ページと、SQL Server のダウンロード ページをご覧ください。
- 必要な場合は、Docker クライアントをインストールします。
curl https://get.docker.com | sh sudo usermod -aG docker $USER
コンテナに最適化された Compute Engine インスタンスを使用している場合は、Docker クライアントはすでにインストールされています。
-
Google Container Registry から Cloud SQL Auth Proxy Docker イメージをインストールします。
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.14.0
- Cloud SQL Auth Proxy Docker イメージをローカルマシン上(Compute Engine インスタンスではなく)で実行している場合や、Compute Engine インスタンスに適切なスコープがない場合は、Google Cloud Platform サービス アカウントを作成します。
- Google Cloud コンソールで、[サービス アカウント] ページに移動します。
- Cloud SQL インスタンスを含むプロジェクトを選択します。
- [サービス アカウントを作成] をクリックします。
- [サービス アカウント名] フィールドに、サービス アカウントのわかりやすい名前を入力します。
- [サービス アカウント ID] を一意のわかりやすい値に変更し、[作成して続行] をクリックします。
-
[ロールを選択] フィールドをクリックして、以下のいずれかのロールを選択します。
- [Cloud SQL] > [Cloud SQL クライアント]
- [Cloud SQL] > [Cloud SQL 編集者]
- [Cloud SQL] > [Cloud SQL 管理者]
- [完了] をクリックして、サービス アカウントの作成を完了します。
- 新しいサービス アカウントの操作メニューをクリックし、[鍵を管理] を選択します。
- [鍵を追加] プルダウン メニューをクリックして、[新しい鍵を作成] をクリックします。
-
鍵のタイプが JSON であることを確認し、[作成] をクリックします。
秘密鍵ファイルがマシンにダウンロードされます。秘密鍵ファイルは、別の場所に移動できます。安全な場所に鍵ファイルを保管してください。
Cloud SQL Auth Proxy の起動時に、鍵ファイルへのパスを「PATH_TO_KEY_FILE」として指定します。
- Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
-
インスタンスを選択して [インスタンスの詳細] ページを開き、インスタンス接続名をコピーします。
例:
myproject:us-central1:myinstance
。 -
Cloud SQL Auth Proxy を起動します。
言語や環境に応じて、TCP ソケットまたは Unix ソケットのどちらかを使用して Cloud SQL Auth Proxy を起動できます。Unix ソケットは、Java プログラミング言語で作成されたアプリケーションや Windows 環境ではサポートされていません。
TCP ソケット
docker run -d \ -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \ -p 127.0.0.1:1433:1433 \ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.14.0 \ --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
Compute Engine インスタンスによって提供される認証情報を使用している場合は、
--credentials-file
パラメータと-v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json
の行を含めないでください。Cloud SQL Auth Proxy がローカルホストの外部に公開されないように、常に
127.0.0.1
に -p の接頭辞を指定します。インスタンス パラメータに含まれる「0.0.0.0」は、Docker コンテナの外側からポートにアクセスできるようにするために必要です。Unix ソケット
docker run -d -v /cloudsql:/cloudsql \ -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.14.0 // --unix-socket=/cloudsql \ --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
Compute Engine インスタンスによって提供される認証情報を使用している場合は、
--credentials-file
パラメータと-v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json
の行を含めないでください。コンテナ最適化イメージを使用している場合は、
/cloudsql
の代わりに書き込み可能なディレクトリを使用します。たとえば、次のようにします。-v /mnt/stateful_partition/cloudsql:/cloudsql
複数のインスタンスをカンマで区切って指定できます。また、Compute Engine メタデータを使用して接続対象のインスタンスを動的に決定することもできます。プロキシ パラメータの詳細については、こちらをご覧ください。
- クライアントを起動します。
使用する接続文字列は、Cloud SQL Auth Proxy の起動時に TCP ソケットを使用したか、Docker を使用したかによって異なります。
TCP ソケット
- sqlcmd クライアントを起動します。
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
TCP ソケットを使用して接続する場合、Cloud SQL Auth Proxy には
127.0.0.1
経由でアクセスします。 - プロンプトが表示されたら、パスワードを入力します。
- sqlcmd プロンプトが表示されます。
- sqlcmd クライアントを起動します。
Cloud SQL Auth Proxy Docker イメージを最新の状態に保つ
Cloud SQL Auth Proxy Docker イメージは、Cloud SQL Auth Proxy の特定のバージョンに基づいています。Cloud SQL Auth Proxy の新しいバージョンが利用可能になったら、Cloud SQL Auth Proxy Docker イメージの新しいバージョンを pull して、環境を最新の状態に保ってください。Cloud SQL Auth Proxy の最新バージョンは Cloud SQL Auth Proxy GitHub リリースページで確認できます。また、プロキシの今後のリリースについては、Google Groups Cloud SQL のお知らせフォーラムで通知されます。
次のステップ
- Cloud SQL Auth Proxy の詳細を確認します。
- Cloud SQL Auth Proxy の接続に関する問題のトラブルシューティングのヘルプを参照します。
- ユーザーとデータベースを作成します。
- アプリケーションからインスタンスに接続するためのオプションについて確認します。
- Docker について確認します。
- Google Container Registry について学習します。
- サポート用オプションについて確認します。