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

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

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

始める前に

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Trusted Cloud project.

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

    コンソール

    [API を有効にする] をクリックして、このクイックスタートで必要な API を有効にします。

    API を有効にする

    これにより、次の API が有効になります。

    • Compute Engine API
    • Cloud SQL Admin API
    • Cloud Run API
    • Container Registry API
    • Cloud Build API
    • Service Networking API

    gcloud

    次のボタンをクリックして Cloud Shell を開きます。これにより、ブラウザから Trusted 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 インスタンスを作成する

データベースの作成

コンソール

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

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

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

gcloud

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

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

ユーザーを作成する

コンソール

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

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

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. SQL ナビゲーション メニューから [ユーザー] を選択します。
  4. [ユーザー アカウントを追加] をクリックします。
  5. [ユーザー アカウントをインスタンス instance_name に追加] ページで、次の情報を追加します。
    • [ユーザー名] フィールドに「quickstart-user」と入力します。
    • [パスワード] フィールドに、データベース ユーザーのパスワードを指定します。このクイックスタートの後半で使用するので、メモしておいてください。
  6. [追加] をクリックします。

gcloud

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

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

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

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

Cloud SQL のユーザー名の長さの上限は、オンプレミス PostgreSQL の場合と同じです。

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

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

Cloud Run で使用するサービス アカウントが、Cloud SQL に接続する権限を持つ Cloud SQL Client ロールを持つように構成します。

コンソール

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

    [IAM] に移動

  2. Compute Engine のデフォルトのサービス アカウントという名前のサービス アカウントの鉛筆アイコンをクリックします。
  3. [別のロールを追加] をクリックします。
  4. Cloud SQL クライアントという名前のロールを追加します。
  5. [保存] をクリックします。

gcloud

  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 インスタンスに接続するようにサンプル アプリケーションを構成できるようになりました。

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

サンプルを 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_HOST
    • INSTANCE_UNIX_SOCKET
    • DB_PORT
    • DB_ROOT_CERT
    • DB_CERT
    • DB_KEY
    これらの値は使用されません。コネクタはすでに Cloud SQL Auth プロキシ サーバーを使用して安全な接続を提供しており、このサーバーはポート 3307 で Cloud SQL への接続を確立します。

クリーンアップ

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

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

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

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

    [Cloud Run] に移動

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

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

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

  1. Trusted 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. Trusted Cloud コンソールで、[API] ページに移動します。

    [API] に移動

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

次のステップ

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

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

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

以下の詳細を確認する

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