Cloud Run から Cloud SQL for MySQL に接続する
Google Cloud コンソールとクライアント アプリケーションを使用して、MySQL インスタンスに接続された 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.
-
Make sure 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 の [インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- [MySQL を選択] をクリックします。
- Enterprise Plus がインスタンスの Cloud SQL エディションとして選択されていることを確認します。
- [インスタンス ID] フィールドに「
quickstart-instance
」と入力します。 - [パスワード] フィールドに、root ユーザーのパスワードを入力します。このパスワードは後で使用できるように保存してください。
- [リージョンとゾーンの可用性の選択] セクションで、[シングルゾーン] を選択します。
- [構成オプションを表示] メニューをクリックします。
- [マシンの構成] ノードを開きます。
- [マシンシェイプ] リージョンで、[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=MYSQL_8_0 \ --cpu=1 \ --memory=4GB \ --region=us-central1 \ --root-password=DB_ROOT_PASSWORD
プライベート IP
IP アドレス範囲を割り振り、プライベート接続を作成して Cloud SQL の限定公開サービス アクセスを構成する
-
Google Cloud コンソールの [VPC ネットワーク] ページに移動します。
default
VPC ネットワークを選択します。- [プライベート サービス接続] タブを選択します。
- [サービスに割り当てられた IP 範囲] を選択します。
- [IP 範囲の割り当て] をクリックします。
- 割り振られた範囲の [名前] には
google-managed-services-default
を指定します。 - IP 範囲の [自動] オプションを選択し、接頭辞の長さを
16
として指定します。 - [割り当て] をクリックして、割り振る範囲を作成します。
default
VPC ネットワークの [サービスへのプライベート接続] タブを選択します。- ネットワークとサービス プロデューサーとの間にプライベート接続を作成するには、[接続の作成] をクリックします。
- [割り当て] で [
google-managed-services-default
] を選択します。 - [接続] をクリックして接続を作成します。
プライベート IP アドレスと SSL を有効にしてインスタンスを作成する
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- [MySQL を選択] をクリックします。
- Enterprise Plus がインスタンスの Cloud SQL エディションとして選択されていることを確認します。
- [インスタンス ID] フィールドに「
quickstart-instance
」と入力します。 - [パスワード] フィールドに、root ユーザーのパスワードを入力します。このパスワードは後で使用できるように保存してください。
- [リージョンとゾーンの可用性の選択] セクションで、[シングルゾーン] を選択します。
- [構成オプションを表示] メニューをクリックします。
- [マシンの構成] ノードを開きます。
- [マシンシェイプ] リージョンで、[4 vCPU、32 GB] シェイプを選択します。
- [接続] ノードを展開します。
- プライベート IP アドレスのみを使用するインスタンスを作成するには、[パブリック IP] チェックボックスをオフにします。
- [プライベート IP] チェックボックスをオンにします。
- [ネットワーク] メニューから [デフォルト] を選択します。
- [インスタンスを作成] をクリックし、インスタンスが初期化されて起動するまで待ちます。
- [接続] をクリックします。
- [セキュリティ] で [SSL 接続のみ許可] を選択し、SSL 接続を有効にします。
- [Enable 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=MYSQL_8_0 \ --cpu=1 \ --memory=4GB \ --region=us-central1 \ --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
に設定します。 - パスワード: データベース ユーザーのパスワードを指定します。このクイックスタートの後半で使用するので、メモしておいてください。
- [ホスト名] セクションのデフォルト値は [すべてのホストを許可] です。つまり、ユーザーは任意の IP アドレスから接続できます。
必要に応じて、[IP アドレスまたはアドレス範囲でホストを制限する] を選択し、[ホスト] セクションに IP アドレスまたはアドレス範囲を入力します。これで、ユーザーは指定した IP アドレスからのみ接続できます。
- ユーザー名:
- [追加] をクリックします。
次のコマンドを実行する前に、次のように置き換えます。
- PASSWORD はデータベース ユーザーのパスワードに置き換えます。このクイックスタートの後半で使用するので、メモしておいてください。
gcloud sql users create
コマンドを実行してリソースを作成します。
gcloud sql users createquickstart-user \ --instance=quickstart-instance \ --password=PASSWORD
Cloud SQL のユーザー名の長さの上限は、オンプレミス MySQL と同じであり、MySQL 8.0 以降では 32 文字、それより前のバージョンでは 16 文字です。
サンプルアプリを Cloud Run にデプロイする
Cloud Run サービス アカウントを構成する
-
Google Cloud コンソールの [IAM] ページに移動します。
- Compute Engine のデフォルトのサービス アカウントという名前のサービス アカウントの鉛筆アイコンをクリックします。
- [別のロールを追加] をクリックします。
- Cloud SQL クライアントという名前のロールを追加します。
- [保存] をクリックします。
-
次の
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"
Cloud SQL サンプルアプリを構成する
Cloud SQL インスタンス、データベース、クライアント権限を持つサービス アカウントを使用して、Cloud SQL インスタンスに接続するようにサンプル アプリケーションを構成できるようになりました。
パブリック IP
パブリック IP パスの場合、Cloud Run は Unix ソケット経由で Cloud SQL Auth Proxy を使用して、暗号化と接続を行います。-
Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
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 エディタでサンプルアプリのディレクトリを開きます。
-
Cloud Shell で次のコマンドを実行して、Docker コンテナをビルドし、Container Registry に公開します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。
gcloud builds submit --tag gcr.io/
YOUR_PROJECT_ID /run-sql
プライベート IP
プライベート IP パスの場合、アプリケーションはサーバーレス VPC アクセスを介してインスタンスに直接接続します。この方法では、Cloud SQL Auth Proxy を使用せずに TCP ソケットを使用して Cloud SQL インスタンスに直接接続します。SSL サーバーとクライアント証明書を作成してダウンロードする
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
quickstart-instance
をクリックして、[概要] ページを表示します。- [接続] タブをクリックします。
- [セキュリティ] で [クライアント証明書を作成] をクリックします。
- [クライアント証明書を作成] ダイアログで、名前として「
quickstart-key
」と入力し、[作成] をクリックします。 [新しい SSL 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。
プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する
-
Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。
- [名前] に「
quickstart-connector
」と入力します。 - [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
- [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
- [IP 範囲] 入力ボックスに「
10.8.0.0
」と入力します。 - [作成] をクリックして、コネクタを作成します。
SSL 証明書を使用してサンプルアプリを構築する
-
Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
Cloud Shell エディタを開く -
Open in Cloud Shell
ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリ ディレクトリを開きます。 -
SSL 証明書ファイルを証明書フォルダにアップロードします。
- Cloud Shell エディタで certs フォルダを右クリックし、[ファイルをアップロード] を選択します。
- ローカルマシンで次のファイルを選択します。
client-key.pem
client-cert.pem
server-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 ユーザーの場合、コネクタはすでに安全な接続を提供するため、SSL サーバーとクライアント証明書の作成とダウンロードは不要です。
プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する
-
Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。
- [名前] に「
quickstart-connector
」と入力します。 - [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
- [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
- [IP 範囲] 入力ボックスに「
10.8.0.0
」と入力します。 - [作成] をクリックして、コネクタを作成します。
サンプルアプリを構築する
-
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 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。
プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する
-
Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。
- [名前] に「
quickstart-connector
」と入力します。 - [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
- [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
- [IP 範囲] 入力ボックスに「
10.8.0.0
」と入力します。 - [作成] をクリックして、コネクタを作成します。
SSL 証明書を使用してサンプルアプリを構築する
-
Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
Cloud Shell エディタを開く - [Cloud Shell で開く] ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
-
SSL 証明書ファイルを証明書フォルダにアップロードします。
- Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
- ローカルマシンで次のファイルを選択します。
client-key.pem
client-cert.pem
server-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 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。
プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する
-
Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。
- [名前] に「
quickstart-connector
」と入力します。 - [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
- [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
- [IP 範囲] 入力ボックスに「
10.8.0.0
」と入力します。 - [作成] をクリックして、コネクタを作成します。
SSL 証明書を使用してサンプルアプリを構築する
-
Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
Cloud Shell エディタを開く - [Cloud Shell で開く] ダイアログで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
-
SSL 証明書ファイルを証明書フォルダにアップロードします。
- Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
- ローカルマシンで次のファイルを選択します。
client-key.pem
client-cert.pem
server-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 アドレスの種類によって異なります。
パブリック IP
-
Google Cloud コンソールで [Cloud Run] ページに移動します。
-
[Create container] をクリックし、[サービス] を選択して、[Create service] フォームを表示します。
- [コンテナ イメージの URL] 入力フィールドで [選択] ボタンをクリックします。
- 前の手順で作成した
gcr.io/YOUR_PROJECT_ID/run-sql
コンテナ イメージを選択します。 - [サービス名] に
quickstart-service
と入力します。 - [認証] セクションで、
Allow unauthenticated invocations
オプションを選択します。これを選択する権限(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_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
に該当する数値を入力します。
プライベート IP
-
Google Cloud コンソールで [Cloud Run] ページに移動します。
-
[Create container] をクリックし、[サービス] を選択して、[Create service] フォームを表示します。
- 既存のコンテナ イメージからデプロイするオプションを選択したままにして、[選択] をクリックし、前の手順で作成した
gcr.io/YOUR_PROJECT_ID/run-sql
コンテナ イメージを指定します。 - [サービス名] に
quickstart-service
と入力します。 - [認証] セクションで、
Allow unauthenticated invocations
オプションを選択します。これを選択する権限(Cloud Run 管理者ロール)がない場合は、サービスがデプロイされ、認証が必要になります。 - [コンテナ、変数とシークレット、接続、セキュリティ] セクションを開きます。
- [環境変数] で [変数を追加] をクリックして、次の環境変数を作成します。次のように環境変数の値を設定します。
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
に設定します。-
Cloud SQL への接続を有効にします。
- [接続] をクリックします。
- [Cloud SQL 接続] セクションの [接続を追加] をクリックします。
- 先ほど作成した
quickstart-instance
Cloud SQL インスタンスを選択します。 - [VPC ネットワーク] プルダウン メニューから
default: Serverless VPC Access Connector "quickstart-connector"
を選択します。 - [すべてのトラフィックを 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
のパスワードに置き換えます。 - INSTANCE_HOST: インスタンスのプライベート IP アドレスに置き換えます。Cloud SQL インスタンスの [概要] ページで、インスタンスのプライベート IP アドレスを確認します。
-
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-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-instancesINSTANCE_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
に該当する数値を入力します。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
quickstart-instance
インスタンスを選択して [インスタンスの詳細] ページを開きます。- ページ上部にあるアイコンバーで、[削除] をクリックします。
- [インスタンスの削除] ダイアログ ボックスで「
quickstart-instance
」と入力し、[削除] をクリックしてインスタンスを削除します。 -
Google Cloud コンソールで [Cloud Run] ページに移動します。
quickstart-service
サービス名の横にあるチェックボックスをオンにします。- [Cloud Run] ページの上部にある [削除] をクリックします。
省略可能なクリーンアップ手順
Compute Engine サービス アカウントに割り当てた Cloud SQL クライアントのロールを使用しない場合は、削除できます。
-
Google Cloud コンソールの [IAM] ページに移動します。
- 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 インスタンスの MySQL ユーザーとデータベースの作成についても学習できます。
料金の詳細については、Cloud SQL for MySQL の料金をご覧ください。
以下の詳細を確認してください。
また、他の Google Cloud アプリケーションから Cloud SQL インスタンスへの接続についても確認できます。