Cloud Run から Cloud SQL for MySQL に接続する

Google Cloud コンソールとクライアント アプリケーションを使用して、MySQL インスタンスに接続された Cloud Run にサンプルアプリをデプロイする方法を学習します。

すべてのステップを適切なタイミングで完了した場合、通常、このクイックスタートで作成されるリソースにかかる費用は 1 ドル(USD)未満です。


このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。

ガイドを表示


始める前に

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Cloud Run で Cloud SQL サンプルアプリを実行するために必要な Cloud APIs を有効にします。
    コンソールgcloud

    [API を有効にする] をクリックして、このクイックスタートで必要な 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 を開く

    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

コンソールgcloud
  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. [インスタンスを作成] をクリックします。
  3. [MySQL を選択] をクリックします。
  4. Enterprise Plus がインスタンスの Cloud SQL エディションとして選択されていることを確認します。
  5. [インスタンス ID] フィールドに「quickstart-instance」と入力します。
  6. [パスワード] フィールドに、root ユーザーのパスワードを入力します。このパスワードは後で使用できるように保存してください。
  7. [リージョンとゾーンの可用性の選択] セクションで、[シングルゾーン] を選択します。
  8. [構成オプションを表示] メニューをクリックします。
  9. [マシンの構成] ノードを開きます。
  10. [マシンシェイプ] リージョンで、[4 vCPU、32 GB] シェイプを選択します。
  11. [インスタンスを作成] をクリックし、インスタンスが初期化されて起動するまで待ちます。

コマンドを実行する前に、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 create quickstart-instance \
--database-version=MYSQL_8_0 \
--cpu=1 \
--memory=4GB \
--region=us-central1 \
--root-password=DB_ROOT_PASSWORD
コンソールgcloud

IP アドレス範囲を割り振り、プライベート接続を作成して Cloud SQL の限定公開サービス アクセスを構成する

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. default VPC ネットワークを選択します。
  3. [プライベート サービス接続] タブを選択します。
  4. [サービスに割り当てられた IP 範囲] を選択します。
  5. [IP 範囲の割り当て] をクリックします。
  6. 割り振られた範囲の [名前] には google-managed-services-default を指定します。
  7. IP 範囲の [自動] オプションを選択し、接頭辞の長さを 16 として指定します。
  8. [割り当て] をクリックして、割り振る範囲を作成します。
  9. default VPC ネットワークの [サービスへのプライベート接続] タブを選択します。
  10. ネットワークとサービス プロデューサーとの間にプライベート接続を作成するには、[接続の作成] をクリックします。
  11. [割り当て] で [google-managed-services-default] を選択します。
  12. [接続] をクリックして接続を作成します。

プライベート IP アドレスと SSL を有効にしてインスタンスを作成する

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. [インスタンスを作成] をクリックします。
  3. [MySQL を選択] をクリックします。
  4. Enterprise Plus がインスタンスの Cloud SQL エディションとして選択されていることを確認します。
  5. [インスタンス ID] フィールドに「quickstart-instance」と入力します。
  6. [パスワード] フィールドに、root ユーザーのパスワードを入力します。このパスワードは後で使用できるように保存してください。
  7. [リージョンとゾーンの可用性の選択] セクションで、[シングルゾーン] を選択します。
  8. [構成オプションを表示] メニューをクリックします。
  9. [マシンの構成] ノードを開きます。
  10. [マシンシェイプ] リージョンで、[4 vCPU、32 GB] シェイプを選択します。
  11. [接続] ノードを展開します。
  12. プライベート IP アドレスのみを使用するインスタンスを作成するには、[パブリック IP] チェックボックスをオフにします。
  13. [プライベート IP] チェックボックスをオンにします。
  14. [ネットワーク] メニューから [デフォルト] を選択します。
  15. [インスタンスを作成] をクリックし、インスタンスが初期化されて起動するまで待ちます。
  16. [接続] をクリックします。
  17. [セキュリティ] で [SSL 接続のみ許可] を選択し、SSL 接続を有効にします。
  18. [Enable SSL] ダイアログで、[有効にして再起動] をクリックし、インスタンスが再起動するのを待ちます。

IP アドレス範囲を割り振り、プライベート接続を作成して Cloud SQL の限定公開サービス アクセスを構成する

  1. 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
  2. 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 を有効にしてインスタンスを作成する

  1. 次のコマンドを実行する前に、DB_ROOT_PASSWORD をデータベース ユーザーのパスワードに置き換えます。

  2. 必要に応じて、次のパラメータの値を変更します。

    • --database-version: データベース エンジンのタイプとバージョン。指定しない場合は、API のデフォルトが使用されます。現在利用可能なバージョンを確認するには、gcloud database versions ドキュメントをご覧ください。
    • --cpu: マシン内のコア数。
    • --memory: マシンに搭載するメモリ量を示す整数。サイズの単位を指定できます(例: 3,072 MB、9 GB)。単位を指定しない場合、GB が使用されます。
    • --region: インスタンスのリージョンのロケーション(例: asia-east1、us-east1)。指定しない場合は、デフォルトで us-central1 が使用されます。リージョンの一覧をご覧ください。

    gcloud sql instances create コマンドを実行して、プライベート IP アドレスを持つ Cloud SQL インスタンスを作成します。

     gcloud sql instances create quickstart-instance \
    --database-version=MYSQL_8_0 \
    --cpu=1 \
    --memory=4GB \
    --region=us-central1 \
    --root-password=DB_ROOT_PASSWORD \
    --no-assign-ip \
    --network=default
  3. gcloud sql instances patch コマンドを実行して、インスタンスで SSL 接続のみ許可します。

  4. gcloud sql instances patch quickstart-instance --require-ssl

データベースの作成

コンソールgcloud
  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. [quickstart-instance] を選択します。
  3. SQL ナビゲーション メニューから [データベース] を選択します。
  4. [データベースを作成] をクリックします。
    1. [データベースの作成] ダイアログ ボックスの [データベース名] フィールドに「quickstart-db」と入力します。文字セットと照合の値はそのままにします。
    2. [作成] をクリックします。

gcloud sql databases create コマンドを実行してデータベースを作成します。

gcloud sql databases create quickstart-db --instance=quickstart-instance

ユーザーを作成する

コンソールgcloud
  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. SQL ナビゲーション メニューから [ユーザー] を選択します。
  4. [ユーザー アカウントを追加] をクリックします。
    • [ユーザー アカウントをインスタンス instance_name に追加] ページで、次の情報を追加します。
      • ユーザー名: quickstart-user に設定します。
      • パスワード: データベース ユーザーのパスワードを指定します。このクイックスタートの後半で使用するので、メモしておいてください。
      • [ホスト名] セクションのデフォルト値は [すべてのホストを許可] です。つまり、ユーザーは任意の IP アドレスから接続できます。

        必要に応じて、[IP アドレスまたはアドレス範囲でホストを制限する] を選択し、[ホスト] セクションに IP アドレスまたはアドレス範囲を入力します。これで、ユーザーは指定した IP アドレスからのみ接続できます。

  5. [追加] をクリックします。

次のコマンドを実行する前に、次のように置き換えます。

  1. PASSWORD はデータベース ユーザーのパスワードに置き換えます。このクイックスタートの後半で使用するので、メモしておいてください。

gcloud sql users create コマンドを実行してリソースを作成します。

gcloud sql users create quickstart-user \
--instance=quickstart-instance \
--password=PASSWORD

Cloud SQL のユーザー名の長さの上限は、オンプレミス MySQL と同じであり、MySQL 8.0 以降では 32 文字、それより前のバージョンでは 16 文字です。

サンプルアプリを Cloud Run にデプロイする

Cloud Run サービス アカウントを構成する

Cloud Run で使用するサービス アカウントが、Cloud SQL に接続する権限を持つ Cloud SQL Client ロールを持つように構成します。
コンソールgcloud
  1. Google Cloud コンソールの [IAM] ページに移動します。

    [IAM] に移動

  2. Compute Engine のデフォルトのサービス アカウントという名前のサービス アカウントの鉛筆アイコンをクリックします。
  3. [別のロールを追加] をクリックします。
  4. Cloud SQL クライアントという名前のロールを追加します。
  5. [保存] をクリックします。
  1. 次の gcloud コマンドを実行して、プロジェクトのサービス アカウントのリストを取得します。
    gcloud iam service-accounts list
  2. Compute Engine サービス アカウントメールアドレスをコピーします。
  3. 次のコマンドを実行して、Cloud SQL クライアントのロールを Compute Engine サービス アカウントに追加します。
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/cloudsql.client"

Cloud SQL サンプルアプリを構成する

Cloud SQL インスタンス、データベース、クライアント権限を持つサービス アカウントを使用して、Cloud SQL インスタンスに接続するようにサンプル アプリケーションを構成できるようになりました。

パブリック IP

パブリック IP パスの場合、Cloud Run は Unix ソケット経由で Cloud SQL Auth Proxy を使用して、暗号化と接続を行います。
GoJavaNode.jsPython
  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。

    Cloud Shell エディタを開く
  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。[YOUR-PROJECT-ID] は、プロジェクト ID に置き換えます。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql
  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。

    Cloud Shell エディタを開く

  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. 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
  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。

    Cloud Shell エディタを開く

  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql
  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
    Cloud Shell エディタを開く
  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql
プライベート IP パスの場合、アプリケーションはサーバーレス VPC アクセスを介してインスタンスに直接接続します。この方法では、Cloud SQL Auth Proxy を使用せずに TCP ソケットを使用して Cloud SQL インスタンスに直接接続します。
GoJavaNode.jsPython

SSL サーバーとクライアント証明書を作成してダウンロードする

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. quickstart-instance をクリックして、[概要] ページを表示します。
  3. [接続] タブをクリックします。
  4. [セキュリティ] で [クライアント証明書を作成] をクリックします。
  5. [クライアント証明書を作成] ダイアログで、名前として「quickstart-key」と入力し、[作成] をクリックします。
  6. [新しい SSL 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。

プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する

  1. Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。

    サーバーレス VPC コネクタを作成する

  2. [名前] に「quickstart-connector」と入力します。
  3. [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
  4. [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
  5. [IP 範囲] 入力ボックスに「10.8.0.0」と入力します。
  6. [作成] をクリックして、コネクタを作成します。

SSL 証明書を使用してサンプルアプリを構築する

  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。

    Cloud Shell エディタを開く
  2. Open in Cloud Shell ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリ ディレクトリを開きます。
  3. SSL 証明書ファイルを証明書フォルダにアップロードします。
    1. Cloud Shell エディタで certs フォルダを右クリックし、[ファイルをアップロード] を選択します。
    2. ローカルマシンで次のファイルを選択します。
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
  4. Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。[YOUR-PROJECT-ID] は、プロジェクト ID に置き換えます。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql

SSL サーバーとクライアント証明書を作成してダウンロードする

Java ユーザーの場合、コネクタはすでに安全な接続を提供するため、SSL サーバーとクライアント証明書の作成とダウンロードは不要です。

プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する

  1. Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。

    サーバーレス VPC コネクタを作成する

  2. [名前] に「quickstart-connector」と入力します。
  3. [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
  4. [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
  5. [IP 範囲] 入力ボックスに「10.8.0.0」と入力します。
  6. [作成] をクリックして、コネクタを作成します。

サンプルアプリを構築する

  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
    Cloud Shell エディタを開く
  2. [Cloud Shell で開く] ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. 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 サーバーとクライアント証明書を作成してダウンロードする

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. quickstart-instance をクリックして、[概要] ページを表示します。
  3. [接続] タブをクリックします。
  4. [セキュリティ] で [クライアント証明書を作成] をクリックします。
  5. [クライアント証明書を作成] ダイアログで、名前として「quickstart-key」と入力し、[作成] をクリックします。
  6. [新しい SSL 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。

プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する

  1. Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。

    サーバーレス VPC コネクタを作成する

  2. [名前] に「quickstart-connector」と入力します。
  3. [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
  4. [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
  5. [IP 範囲] 入力ボックスに「10.8.0.0」と入力します。
  6. [作成] をクリックして、コネクタを作成します。

SSL 証明書を使用してサンプルアプリを構築する

  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
    Cloud Shell エディタを開く
  2. [Cloud Shell で開く] ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. SSL 証明書ファイルを証明書フォルダにアップロードします。
    1. Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
    2. ローカルマシンで次のファイルを選択します。
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
  4. Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql

SSL サーバーとクライアント証明書を作成してダウンロードする

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. quickstart-instance をクリックして、[概要] ページを表示します。
  3. [接続] タブをクリックします。
  4. [セキュリティ] で [クライアント証明書を作成] をクリックします。
  5. [クライアント証明書を作成] ダイアログで、名前として「quickstart-key」と入力し、[作成] をクリックします。
  6. [新しい SSL 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。

プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する

  1. Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。

    サーバーレス VPC コネクタを作成する

  2. [名前] に「quickstart-connector」と入力します。
  3. [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
  4. [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
  5. [IP 範囲] 入力ボックスに「10.8.0.0」と入力します。
  6. [作成] をクリックして、コネクタを作成します。

SSL 証明書を使用してサンプルアプリを構築する

  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
    Cloud Shell エディタを開く
  2. [Cloud Shell で開く] ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. SSL 証明書ファイルを証明書フォルダにアップロードします。
    1. Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
    2. ローカルマシンで次のファイルを選択します。
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
  4. 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 アドレスの種類によって異なります。

パブリック IP

コンソールgcloud
  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. [Create container] をクリックし、[サービス] を選択して、[Create service] フォームを表示します。

  3. [コンテナ イメージの URL] 入力フィールドで [選択] ボタンをクリックします。
    1. 前の手順で作成した gcr.io/YOUR_PROJECT_ID/run-sql コンテナ イメージを選択します。
  4. [サービス名] に quickstart-service と入力します。
  5. [認証] セクションで、Allow unauthenticated invocations オプションを選択します。これを選択する権限(Cloud Run 管理者ロール)がない場合は、サービスがデプロイされ、認証が必要になります。
  6. [コンテナ、変数とシークレット、接続、セキュリティ] セクションを開きます。
  7. [環境変数] で [変数を追加] をクリックして、次の 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 のパスワードに設定します。
  8. Cloud SQL への接続を有効にします。

    • [接続] タブをクリックします。
    • [Cloud SQL 接続] セクションの [接続を追加] ボタンをクリックします。
    • 前に作成した quickstart-instance をプルダウン メニューから選択します。

    Cloud SQL 接続を追加する

  9. Cloud Run サービスを作成するには、[作成] をクリックします。

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

    デプロイされたサンプルアプリを表示する

  1. 次のコマンドを実行する前に、次のように置き換えます。

    • YOUR_PROJECT_ID: プロジェクト ID。
    • INSTANCE_CONNECTION_NAME は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。

    • DB_PASS は、前のユーザーの作成クイックスタート ステップで作成した quickstart-user のパスワードに置き換えます。

    次のように gcloud run deploy コマンドを実行して、Cloud Run サービスを作成します。

    gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID/run-sql \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME \
      --set-env-vars INSTANCE_UNIX_SOCKET="/cloudsql/INSTANCE_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 に該当する数値を入力します。

  2. Cloud Run サービスがデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run のサンプルアプリを確認します。

    デプロイされたサンプルアプリを表示する

コンソールgcloud
  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. [Create container] をクリックし、[サービス] を選択して、[Create service] フォームを表示します。

  3. 既存のコンテナ イメージからデプロイするオプションを選択したままにして、[選択] をクリックし、前の手順で作成した gcr.io/YOUR_PROJECT_ID/run-sql コンテナ イメージを指定します。
  4. [サービス名] に quickstart-service と入力します。
  5. [認証] セクションで、Allow unauthenticated invocations オプションを選択します。これを選択する権限(Cloud Run 管理者ロール)がない場合は、サービスがデプロイされ、認証が必要になります。
  6. [コンテナ、変数とシークレット、接続、セキュリティ] セクションを開きます。
  7. [環境変数] で [変数を追加] をクリックして、次の環境変数を作成します。次のように環境変数の値を設定します。
    • DB_NAME: quickstart-db に設定します。
    • DB_USER: quickstart-user に設定します。
    • DB_PASS: 前のユーザーの作成クイックスタートの手順で指定した quickstart-user のパスワードに設定します。
    • INSTANCE_CONNECTION_NAME: Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。
    • DB_PORT: 3306 に設定します。
    • INSTANCE_HOST: Cloud SQL インスタンスの概要ページの説明に従って、インスタンスのプライベート IP アドレスに設定します。
    • DB_ROOT_CERT: certs/server-ca.pem に設定します。
    • DB_CERT: certs/client-cert.pem に設定します。
    • DB_KEY: certs/client-key.pem に設定します。
    • PRIVATE_IP: TRUE に設定します。
  8. Cloud SQL への接続を有効にします。

    1. [接続] をクリックします。
    2. [Cloud SQL 接続] セクションの [接続を追加] をクリックします。
    3. 先ほど作成した quickstart-instance Cloud SQL インスタンスを選択します。
    4. [VPC ネットワーク] プルダウン メニューから default: Serverless VPC Access Connector "quickstart-connector" を選択します。
    5. [すべてのトラフィックを VPC コネクタ経由でルーティングする] オプションを選択します。
  9. [作成] をクリックして、Cloud Run サービスを作成します。

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

    デプロイされたサンプルアプリを表示する

  1. 次のコマンドを実行する前に、次のように置き換えます。

    • YOUR_PROJECT_ID: プロジェクト ID。
    • INSTANCE_CONNECTION_NAME は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。

    • DB_PASS は、前のユーザーの作成クイックスタート ステップで作成した quickstart-user のパスワードに置き換えます。
    • INSTANCE_HOST: インスタンスのプライベート IP アドレスに置き換えます。Cloud SQL インスタンスの [概要] ページで、インスタンスのプライベート IP アドレスを確認します。

    次のように gcloud run deploy コマンドを実行して、Cloud Run サービスを作成します。

    gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID/run-sql \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME \
      --vpc-connector="quickstart-connector" --vpc-egress=all-traffic \
      --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" \
      --set-env-vars DB_PORT="3306" \
      --set-env-vars INSTANCE_HOST="INSTANCE_HOST" \
      --set-env-vars DB_ROOT_CERT="certs/server-ca.pem" \
      --set-env-vars DB_CERT="certs/client-cert.pem" \
      --set-env-vars DB_KEY="certs/client-key.pem" \
      --set-env-vars PRIVATE_IP="TRUE"

    Java コネクタによってすでに安全な接続が提供されているので、Java ユーザーは、以下のように、INSTANCE_HOST、DB_ROOT_CERT、DB_CERT、DB_KEY、PRIVATE_IP --set-env-vars フラグを指定せずに、gcloud run deploy コマンドを実行して Cloud Run サービスを作成する必要があります。

    gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID/run-sql \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME \
      --vpc-connector="quickstart-connector" --vpc-egress=all-traffic \
      --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" \
      --set-env-vars DB_PORT="3306"

    リージョンを指定するように求められたら、us-central1 に該当する数値を入力します。

  2. Cloud Run サービスがデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run のサンプルアプリを確認します。

    デプロイされたサンプルアプリを表示する

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. quickstart-instance インスタンスを選択して [インスタンスの詳細] ページを開きます。
  3. ページ上部にあるアイコンバーで、[削除] をクリックします。
  4. [インスタンスの削除] ダイアログ ボックスで「quickstart-instance」と入力し、[削除] をクリックしてインスタンスを削除します。
  5. Google Cloud コンソールで [Cloud Run] ページに移動します。

    [Cloud Run] に移動

  6. quickstart-service サービス名の横にあるチェックボックスをオンにします。
  7. [Cloud Run] ページの上部にある [削除] をクリックします。

省略可能なクリーンアップ手順

Compute Engine サービス アカウントに割り当てた Cloud SQL クライアントのロールを使用しない場合は、削除できます。

  1. Google Cloud コンソールの [IAM] ページに移動します。

    [IAM] に移動

  2. Compute Engine のデフォルトのサービス アカウントという名前の IAM アカウントの編集アイコン(鉛筆の形)をクリックします。
  3. Cloud SQL クライアントのロールを削除します。
  4. [保存] をクリックします。

このクイックスタートで有効にした API を使用しない場合は、無効にすることができます。

  • このクイックスタートで有効にした API:
    • Compute Engine API
    • Cloud SQL Admin API
    • Cloud Run API
    • Container Registry API
    • Cloud Build API
  1. Google Cloud コンソールの [API] ページに移動します。

    [API] に移動

  2. 無効にする API を選択し、[API を無効にする] ボタンをクリックします。

次のステップ

必要に応じて、Cloud SQL インスタンスの作成で詳細をご確認ください。

Cloud SQL インスタンスの MySQL ユーザーデータベースの作成についても学習できます。

料金の詳細については、Cloud SQL for MySQL の料金をご覧ください。

以下の詳細を確認してください。

また、他の Google Cloud アプリケーションから Cloud SQL インスタンスへの接続についても確認できます。