Cloud Run から Cloud SQL for PostgreSQL に接続する
Google Cloud コンソールとクライアント アプリケーションを使用して、PostgreSQL インスタンスに接続された Cloud Run にサンプルアプリをデプロイする方法を学習します。
すべてのステップを適切なタイミングで完了した場合、通常、このクイックスタートで作成されるリソースにかかる費用は 1 ドル(USD)未満です。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
- 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.
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
(
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
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Cloud Run で Cloud SQL サンプルアプリを実行するために必要な Cloud APIs を有効にします。
[API を有効にする] をクリックして、このクイックスタートで必要な API を有効にします。
これにより、次の API が有効になります。
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
- Service Networking API
次のボタンをクリックして Cloud Shell を開きます。これにより、ブラウザから Google Cloud リソースにコマンドラインで直接アクセスできます。Cloud Shell を使用することで、このクイックスタートで紹介する
gcloudコマンドを実行できます。Cloud Shell を使用して次の
gcloudコマンドを実行します。gcloud services enable compute.googleapis.com sqladmin.googleapis.com run.googleapis.com \ containerregistry.googleapis.com cloudbuild.googleapis.com servicenetworking.googleapis.com
このコマンドにより、次の API が有効になります。
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
- Service Networking API
Cloud SQL の設定
Cloud SQL インスタンスを作成する
パブリック IP
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- [PostgreSQL を選択] をクリックします。
- インスタンスの Cloud SQL エディションとして [Enterprise Plus] が選択されていることを確認します。
- [インスタンス ID] フィールドに「
quickstart-instance」と入力します。 - [パスワード] フィールドに、postgres ユーザーのパスワードを入力します。このパスワードは後で使用できるように保存してください。
- [リージョンとゾーンの可用性の選択] セクションで、[シングルゾーン] を選択します。
- [構成オプションを表示] メニューをクリックします。
- [マシンの構成] ノードを開きます。
- [マシンシェイプ] 領域で、[4 vCPU、32 GB] シェイプを選択します。
- [インスタンスを作成] をクリックし、インスタンスが初期化されて起動するまで待ちます。
コマンドを実行する前に、DB_ROOT_PASSWORD をデータベース ユーザーのパスワードに置き換えます。
必要に応じて、次のパラメータの値を変更します。
- --database-version: データベース エンジンのタイプとバージョン。指定しない場合は、API のデフォルトが使用されます。現在利用可能なバージョンを確認するには、gcloud database versions ドキュメントをご覧ください。
- --cpu: マシンに必要なコア数。
- --memory: マシンに必要なメモリ量を示す整数。サイズ単位を指定する必要があります(例: 3,072 MB、9 GB)。単位を指定しない場合、GB が使用されます。
- --region: インスタンスのリージョンのロケーション(asia-east1、us-east1 など)。指定しない場合は、デフォルトで
us-centralが使用されます。
gcloud
sql instances create コマンドを実行して、Cloud SQL インスタンスを作成します。
gcloud sql instances createquickstart-instance \ --database-version=POSTGRES_14 \ --cpu=1 \ --memory=4GB \ --region=us-central \ --root-password=DB_ROOT_PASSWORD
プライベート IP
IP アドレス範囲を割り振り、プライベート接続を作成して Cloud SQL のプライベート サービス アクセスを構成する
-
Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
defaultVPC ネットワークを選択します。- [プライベート サービス接続] タブを選択します。
- [サービスに割り当てられた IP 範囲] を選択します。
- [IP 範囲の割り当て] をクリックします。
- 割り振られた範囲の [名前] には
google-managed-services-defaultを指定します。 - IP 範囲の [自動] オプションを選択し、接頭辞の長さを
16として指定します。 - [割り当て] をクリックして、割り振る範囲を作成します。
defaultVPC ネットワークの [サービスへのプライベート接続] タブを選択します。- ネットワークとサービス プロデューサーとの間にプライベート接続を作成するには、[接続の作成] をクリックします。
- [割り当て] で [
google-managed-services-default] を選択します。 - [接続] をクリックして接続を作成します。
プライベート IP アドレスと SSL を有効にしてインスタンスを作成する
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- [PostgreSQL を選択] をクリックします。
- インスタンスの Cloud SQL エディションとして [Enterprise Plus] が選択されていることを確認します。
- [インスタンス ID] フィールドに「
quickstart-instance」と入力します。 - [パスワード] フィールドに、postgres ユーザーのパスワードを入力します。このパスワードは後で使用できるように保存してください。
- [リージョンとゾーンの可用性の選択] セクションで、[シングルゾーン] を選択します。
- [構成オプションを表示] メニューをクリックします。
- [マシンの構成] ノードを開きます。
- [マシンシェイプ] 領域で、[4 vCPU、32 GB] シェイプを選択します。
- [接続] ノードを開きます。
- プライベート IP アドレスのみを使用するインスタンスを作成するには、[パブリック IP] チェックボックスをオフにします。
- [プライベート IP] チェックボックスをオンにします。
- [ネットワーク] メニューから [デフォルト] を選択します。
- [インスタンスを作成] をクリックし、インスタンスが初期化されて起動するまで待ちます。
- [接続] をクリックします。
- [セキュリティ] で [SSL 接続のみ許可] を選択し、SSL 接続を有効にします。
- [SSL 接続のみ許可] ダイアログで [保存] をクリックし、インスタンスが再起動するのを待ちます。
IP アドレス範囲を割り振り、プライベート接続を作成して Cloud SQL のプライベート サービス アクセスを構成する
-
gcloud compute addresses createコマンドを実行して、IP アドレス範囲を割り振ります。gcloud compute addresses create
google-managed-services-default \ --global --purpose=VPC_PEERING --prefix-length=16 \ --description="peering range for Google" --network=default -
gcloud services vpc-peerings connectコマンドを実行して、割り振られた IP アドレス範囲へのプライベート接続を作成します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com \ --ranges=
google-managed-services-default --network=default \ --project=YOUR_PROJECT_ID
プライベート IP アドレスと SSL を有効にしてインスタンスを作成する
-
次のコマンドを実行する前に、DB_ROOT_PASSWORD をデータベース ユーザーのパスワードに置き換えます。
- --database-version: データベース エンジンのタイプとバージョン。指定しない場合は、API のデフォルトが使用されます。現在利用可能なバージョンを確認するには、gcloud database versions ドキュメントをご覧ください。
- --cpu: マシン内のコア数。
- --memory: マシンに搭載するメモリ量を示す整数。サイズの単位を指定できます(例: 3,072 MB、9 GB)。単位を指定しない場合、GB が使用されます。
- --region: インスタンスのリージョンのロケーション(例: asia-east1、us-east1)。指定しない場合は、デフォルトで
us-central1が使用されます。リージョンの一覧をご覧ください。 gcloud sql instances patchコマンドを実行して、インスタンスで SSL 接続のみ許可します。
必要に応じて、次のパラメータの値を変更します。
gcloud
sql instances create コマンドを実行して、プライベート IP アドレスを持つ Cloud SQL インスタンスを作成します。
gcloud sql instances createquickstart-instance \ --database-version=POSTGRES_14 \ --cpu=1 \ --memory=4GB \ --region=us-central \ --root-password=DB_ROOT_PASSWORD \ --no-assign-ip \ --network=default
gcloud sql instances patchquickstart-instance --require-ssl
データベースの作成
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- [
quickstart-instance] を選択します。 - SQL ナビゲーション メニューから [データベース] を選択します。
- [データベースを作成] をクリックします。
- [新しいデータベース] ダイアログ ボックスの [データベース名] フィールドに「
quickstart-db」と入力します。 - [作成] をクリックします。
gcloud
sql databases create コマンドを実行してデータベースを作成します。
gcloud sql databases createquickstart-db --instance=quickstart-instance
ユーザーを作成する
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
- [ユーザー アカウントを追加] をクリックします。
- [ユーザー アカウントをインスタンス instance_name に追加] ページで、次の情報を追加します。
- [ユーザー名] フィールドに「
quickstart-user」と入力します。 - [パスワード] フィールドに、データベース ユーザーのパスワードを指定します。このクイックスタートの後半で使用するので、メモしておいてください。
- [ユーザー名] フィールドに「
- [追加] をクリックします。
次のコマンドを実行する前に、次のように置き換えます。
- PASSWORD はデータベース ユーザーのパスワードに置き換えます。このクイックスタートの後半で使用するので、メモしておいてください。
gcloud sql users create コマンドを実行してリソースを作成します。
gcloud sql users createquickstart-user \ --instance=quickstart-instance \ --password=PASSWORD
ユーザー名の長さの上限は、オンプレミス PostgreSQL の場合と同じです。
サンプルアプリを Cloud Run にデプロイする
Cloud Run サービス アカウントを構成する
-
Google Cloud コンソールで、[IAM サービス アカウント] ページに移動します。
- [その他の操作] メニューをクリックし、[権限を管理] をクリックします。
- [アクセス権を付与] をクリックします。
- Cloud SQL クライアント(
roles/cloudsql.client)という名前のロールを見つけて選択します。 - ストレージ オブジェクト閲覧者(
roles/storage.ObjectViewer)という名前のロールを見つけて選択します。 - [適用] をクリックします。
- [保存] をクリックします。
-
次の
gcloudコマンドを実行して、プロジェクトのサービス アカウントのリストを取得します。gcloud iam service-accounts list
- メールアドレスCompute Engine のデフォルトのサービス アカウントをコピーします。
- 次のコマンドを実行して、Cloud SQL クライアントのロールを Compute Engine のデフォルト サービス アカウントに追加します。
gcloud projects add-iam-policy-binding
YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL " \ --role="roles/cloudsql.client" - 次のコマンドを実行して、ストレージ オブジェクト閲覧者のロールを Compute Engine のデフォルトのサービス アカウントに追加します。
gcloud projects add-iam-policy-binding
YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL " \ --role="roles/storage.ObjectViewer"
Cloud SQL サンプルアプリを構成する
Cloud SQL インスタンス、データベース、クライアント権限を持つサービス アカウントを使用して、Cloud SQL インスタンスに接続するようにサンプル アプリケーションを構成できるようになりました。
パブリック IP
パブリック IP パスの場合、Cloud Run は Unix ソケット経由で Cloud SQL Auth Proxy を使用して、暗号化と接続を行います。- Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
- [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
-
Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
gcloud builds submit --tag gcr.io/
YOUR_PROJECT_ID /run-sql
- Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
- [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
-
Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \ -Dimage=gcr.io/
YOUR_PROJECT_ID /run-sql -DskipTests
- Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
- [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
-
Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
gcloud builds submit --tag gcr.io/
YOUR_PROJECT_ID /run-sql
- Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
- [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
-
Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
gcloud builds submit --tag gcr.io/
YOUR_PROJECT_ID /run-sql
プライベート IP
プライベート IP パスの場合、アプリケーションはダイレクト VPC 下り(外向き)または VPC コネクタを介してインスタンスに直接接続します。この方法では、Cloud SQL Auth Proxy を使用せずに TCP ソケットを使用して Cloud SQL インスタンスに直接接続します。SSL サーバーとクライアント証明書を作成してダウンロードする
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
quickstart-instanceをクリックして、[概要] ページを表示します。- [接続] タブをクリックします。
- [セキュリティ] で [クライアント証明書を作成] をクリックします。
- [クライアント証明書を作成] ダイアログで、名前として「
quickstart-key」と入力し、[作成] をクリックします。 [新しい SSL 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。
SSL 証明書を使用してサンプルアプリを構築する
-
Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
Cloud Shell エディタを開く - [Cloud Shell で開く] ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
-
SSL 証明書ファイルを証明書フォルダにアップロードします。
- Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
- ローカルマシンで次のファイルを選択します。
client-key.pemclient-cert.pemserver-ca.pem- 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
-
Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
gcloud builds submit --tag gcr.io/
YOUR_PROJECT_ID /run-sql
SSL サーバーとクライアント証明書を作成してダウンロードする
Java ユーザーの場合、Java Connector はすでに安全な接続を提供しているため、SSL サーバーとクライアント証明書の作成とダウンロードは不要です。
サンプルアプリを構築する
-
Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
Cloud Shell エディタを開く - [Cloud Shell で開く] ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
-
Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \ -Dimage=gcr.io/
YOUR_PROJECT_ID /run-sql -DskipTests
SSL サーバーとクライアント証明書を作成してダウンロードする
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
quickstart-instanceをクリックして、[概要] ページを表示します。- [接続] タブをクリックします。
- [セキュリティ] で [クライアント証明書を作成] をクリックします。
- [クライアント証明書を作成] ダイアログで、名前として「
quickstart-key」と入力し、[作成] をクリックします。 [新しい SSL 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。
SSL 証明書を使用してサンプルアプリを構築する
-
Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
Cloud Shell エディタを開く - [Cloud Shell で開く] ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
-
SSL 証明書ファイルを証明書フォルダにアップロードします。
- Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
- ローカルマシンで次のファイルを選択します。
client-key.pemclient-cert.pemserver-ca.pem- 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
-
Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
gcloud builds submit --tag gcr.io/
YOUR_PROJECT_ID /run-sql
SSL サーバーとクライアント証明書を作成してダウンロードする
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
quickstart-instanceをクリックして、[概要] ページを表示します。- [接続] タブをクリックします。
- [セキュリティ] で [クライアント証明書を作成] をクリックします。
- [クライアント証明書を作成] ダイアログで、名前として「
quickstart-key」と入力し、[作成] をクリックします。 [新しい SSL 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。
SSL 証明書を使用してサンプルアプリを構築する
-
Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
Cloud Shell エディタを開く - [Cloud Shell で開く] ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
-
SSL 証明書ファイルを証明書フォルダにアップロードします。
- Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
- ローカルマシンで次のファイルを選択します。
client-key.pemclient-cert.pemserver-ca.pem- 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
-
Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
gcloud builds submit --tag gcr.io/
YOUR_PROJECT_ID /run-sql
サンプルアプリをデプロイする
サンプルを Cloud Run にデプロイする手順は、Cloud SQL インスタンスに割り当てられた IP アドレスのタイプによって異なります。
イメージの接続方法は、設定されている環境変数によって異なります。
- TCP を使用して接続するには、
INSTANCE_HOST環境変数の値を設定します。この接続方法は、環境変数として構成された証明書とポートを尊重します。 - Unix ソケットを使用して接続するには、
INSTANCE_UNIX_SOCKET環境変数の値を設定します。INSTANCE_HOST環境変数の値は設定しないでください。Unix ソケットは Java でネイティブにサポートされていません。アプリケーションが Java で記述されている場合は、Cloud SQL Java コネクタを使用する必要があります。
- Cloud SQL 言語コネクタのいずれかを使用して接続するには、
INSTANCE_CONNECTION_NAME環境変数の値を設定します。次の環境変数の値は設定しないでください。
INSTANCE_HOSTINSTANCE_UNIX_SOCKETDB_PORTDB_ROOT_CERTDB_CERTDB_KEY
3307で Cloud SQL への接続を確立します。
パブリック IP
-
Google Cloud コンソールで、[Cloud Run] ページに移動します。
-
[Create container] をクリックし、[サービス] を選択して、[Create service] フォームを表示します。
- [コンテナ イメージの URL] 入力フィールドで [選択] ボタンをクリックします。
- 前の手順で作成した
gcr.io/YOUR_PROJECT_ID/run-sqlコンテナ イメージを選択します。 - [サービス名] フィールドに「
quickstart-service」と入力します。 - [認証] セクションで、
Allow public accessオプションを選択します。これを選択する権限(Cloud Run 管理者ロール)がない場合は、サービスがデプロイされ、認証が必要になります。 - [コンテナ、変数とシークレット、接続、セキュリティ] セクションを開きます。
- [環境変数] で [変数を追加] をクリックして、次の
Environment variablesを作成します。次のように環境変数の値を設定します。 - INSTANCE_UNIX_SOCKET:
/cloudsql/YOUR_PROJECT_ID:us-central1:quickstart-instanceに設定します。 - INSTANCE_CONNECTION_NAME: Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示される、インスタンスの接続名に設定します。
- DB_NAME:
quickstart-dbに設定します。 - DB_USER:
quickstart-userに設定します - DB_PASS: 前のユーザーの作成クイックスタート手順で指定した
quickstart-userのパスワードに設定します。 -
Cloud SQL への接続を有効にします。
- [接続] タブをクリックします。
- [Cloud SQL 接続] セクションの [接続を追加] ボタンをクリックします。
- 前に作成した
quickstart-instanceをプルダウン メニューから選択します。

-
[作成] をクリックして、Cloud Run サービスを作成します。
- Cloud Run サービスをデプロイすると、[サービスの詳細] ページの一番上に、実行中のサービスの URL が表示されます。[URL] リンクをクリックして、Cloud SQL に接続された Cloud Run にデプロイされたサンプルアプリを確認します。

次のコマンドを実行する前に、次のように置き換えます。
- YOUR_PROJECT_ID: プロジェクト ID。
-
INSTANCE_CONNECTION_NAME は、 Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。
-
DB_PASS は、前のユーザーの作成クイックスタート ステップで作成した
quickstart-userのパスワードに置き換えます。 -
Cloud Run サービスがデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run のサンプルアプリを確認します。

次のように gcloud run deploy コマンドを実行して、Cloud Run サービスを作成します。環境変数は、使用する接続方法によって異なります。
gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID /run-sql \ --add-cloudsql-instancesINSTANCE_CONNECTION_NAME \ --set-env-vars INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME " \ --set-env-vars DB_NAME="quickstart-db " \ --set-env-vars DB_USER="quickstart-user " \ --set-env-vars DB_PASS="DB_PASS "
リージョンを指定するように求められたら、us-central1 に該当する数値を入力します。
プライベート IP
-
Google Cloud コンソールで、[Cloud Run] ページに移動します。
-
[Create container] をクリックし、[サービス] を選択して、[Create service] フォームを表示します。
- 既存のコンテナ イメージからデプロイするオプションを選択したままにして、[選択] をクリックし、前の手順で作成した
gcr.io/YOUR_PROJECT_ID/run-sqlコンテナ イメージを指定します。 - [サービス名] に
quickstart-serviceと入力します。 - [認証] セクションで、
Allow public accessオプションを選択します。Allow public accessオプションを選択した場合。これを選択する権限(Cloud Run 管理者ロール)がない場合は、サービスがデプロイされ、認証が必要になります。 - [コンテナ、変数とシークレット、接続、セキュリティ] セクションを開きます。
- [環境変数] で [変数を追加] をクリックして、次の環境変数を作成します。次のように環境変数の値を設定します。
DB_NAME:quickstart-dbに設定します。DB_USER:quickstart-userに設定します。DB_PASS: 前のユーザーの作成クイックスタートの手順で指定したquickstart-userのパスワードに設定します。INSTANCE_CONNECTION_NAME: Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に設定します。DB_PORT:5432に設定します。DB_ROOT_CERT:certs/server-ca.pemに設定します。DB_CERT:certs/client-cert.pemに設定します。DB_KEY:certs/client-key.pemに設定します。PRIVATE_IP:TRUEに設定します。-
Cloud SQL への接続を有効にします。
- [接続] をクリックします。
- [Cloud SQL 接続] セクションの [接続を追加] をクリックします。
- 先ほど作成した
quickstart-instanceCloud SQL インスタンスを選択します。 - [ネットワーキング] タブで、[アウトバウンド トラフィック用の VPC に接続する] を選択し、[ネットワーク] フィールドと [サブネット] フィールドの両方で [デフォルト] を選択します。
- [すべてのトラフィックを VPC にルーティングする] オプションを選択します。
-
[作成] をクリックして、Cloud Run サービスを作成します。
- Cloud Run サービスをデプロイすると、[サービスの詳細] ページの一番上に、実行中のサービスの URL が表示されます。[URL] リンクをクリックして、Cloud SQL に接続された Cloud Run にデプロイされたサンプルアプリを確認します。

次のコマンドを実行する前に、次のように置き換えます。
- YOUR_PROJECT_ID: プロジェクト ID。
- INSTANCE_CONNECTION_NAME は、 Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。
-
DB_PASS は、前のユーザーの作成クイックスタート ステップで作成した
quickstart-userのパスワードに置き換えます。 -
Cloud Run サービスがデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run のサンプルアプリを確認します。

次のように gcloud run deploy コマンドを実行して、Cloud Run サービスを作成します。環境変数は、使用する接続方法によって異なります。
gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID /run-sql \ --add-cloudsql-instancesINSTANCE_CONNECTION_NAME \ --vpc-egress=all-traffic \ --network=default \ --subnet=default \ --set-env-vars DB_NAME="quickstart-db " \ --set-env-vars DB_USER="quickstart-user " \ --set-env-vars DB_PASS="DB_PASS " \ --set-env-vars INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME "
リージョンを指定するように求められたら、us-central1 に該当する数値を入力します。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を実施します。
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
quickstart-instanceインスタンスを選択して [インスタンスの詳細] ページを開きます。- ページ上部にあるアイコンバーで、[削除] をクリックします。
- [インスタンスの削除] ダイアログ ボックスで「
quickstart-instance」と入力し、[削除] をクリックしてインスタンスを削除します。 -
Google Cloud コンソールで、[Cloud Run] ページに移動します。
quickstart-serviceサービス名の横にあるチェックボックスをオンにします。- [Cloud Run] ページの上部にある [削除] をクリックします。
省略可能なクリーンアップ手順
Compute Engine サービス アカウントに割り当てた Cloud SQL クライアントのロールを使用しない場合は、削除できます。
-
Google Cloud コンソールで、[サービス アカウント] ページに移動します。
- Compute Engine のデフォルトのサービス アカウントという名前の IAM アカウントの編集アイコン(鉛筆の形)をクリックします。
- Cloud SQL クライアントのロールを削除します。
- [保存] をクリックします。
このクイックスタートで有効にした API を使用しない場合は、無効にすることができます。
- このクイックスタートで有効にした API:
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
Google Cloud コンソールで、[API] ページに移動します。
無効にする API を選択し、[API を無効にする] ボタンをクリックします。
次のステップ
必要に応じて、Cloud SQL インスタンスの作成で詳細をご確認ください。Cloud SQL インスタンスの PostgreSQL ユーザーとデータベースの作成についても学習できます。
料金の詳細については、Cloud SQL for PostgreSQL の料金をご覧ください。
以下の詳細を確認する
また、他の Google Cloud アプリケーションから Cloud SQL インスタンスへの接続についても確認できます。