Cloud Run から接続する

このクイックスタートでは、 Google Cloud コンソールとクライアント アプリケーションを使用して、Cloud Run サービスにサンプル アプリケーションをデプロイするプロセスについて説明します。このサンプル アプリケーションは、Cloud Run を AlloyDB for PostgreSQL に接続します。

サンプル アプリケーション コード

このクイックスタートのサンプル アプリケーション コードは、GoogleCloudPlatform/alloydb-auth-proxy GitHub リポジトリの examples/go ディレクトリにあります。

このアプリケーションは Go プログラミング言語で記述されており、票を集めるためのツールとして機能します。メインロジックは main.go ファイルに含まれており、このファイルはウェブサーバーを起動してユーザー リクエストを処理します。

データベース接続は、Cloud Run サービスの作成時に設定する環境変数を使用して構成されます。これらの変数は、データベース名、ユーザー、パスワード、インスタンスの IP アドレスなど、AlloyDB インスタンスへの接続方法をアプリケーションに指示します。コードはこれらの変数を使用して、AlloyDB データベースへの安全な接続を確立します。

コード リポジトリ

alloydb-auth-proxy リポジトリには、AlloyDB インスタンスに安全に接続するためのツールである AlloyDB Auth Proxy が含まれています。リポジトリには、このクイックスタートで使用する Go アプリケーションなど、関連するライブラリと例も含まれています。

Cloud Run から AlloyDB に接続するために、alloydb-auth-proxy プロジェクト全体は必要ありません。cloudshell_open コマンドは、便宜上リポジトリ全体のクローンを作成しますが、このクイックスタートのコンテナのビルドに使用されるファイルは examples/go ディレクトリにのみあります。

始める前に

  1. 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Cloud Run で AlloyDB for PostgreSQL サンプル アプリケーションを実行するために必要な Cloud APIs を有効にします。

    API を有効にする

    1. [プロジェクトを確認] の手順で、変更するプロジェクトの名前を確認して [次へ] をクリックします。

    2. [API を有効にする] の手順で、[有効にする] をクリックして、次の機能を有効にします。

      • AlloyDB API
      • Cloud Run Admin API
      • Compute Engine API
      • Cloud Build API
      • Container Registry API
      • Service Networking API
      • Cloud Resource Manager API
  4. AlloyDB クラスタとプライマリ インスタンスがあることを確認します。詳細については、クラスタとそのプライマリ インスタンスを作成するをご覧ください。
  5. インスタンスに接続してデータベースを作成する

    1. 新しく作成したクラスタの [概要] ページを開いていない場合は、 Google Cloud コンソールで [クラスタ] ページに移動します。

      [クラスタ] に移動

    2. クラスタの [概要] ページを表示するには、「my-cluster」というクラスタ名をクリックします。

    3. ナビゲーション メニューで [AlloyDB Studio] をクリックします。

    4. [AlloyDB Studio にログインする] ページの [データベース] リストで、[postgres] を選択します。

    5. [ユーザー] プルダウン リストで [postgres] を選択します。

    6. [パスワード] フィールドに、クラスタとそのプライマリ インスタンスを作成するで作成したパスワードを入力します。

    7. [認証] をクリックします。[エクスプローラ] ペインに、データベースに登録されているオブジェクトのリストが表示されます。

    8. [エディタ 1] タブで、データベースを作成します。

      CREATE DATABASE quickstart_db;
      
    9. [実行] をクリックします。[結果] ペインに Statement executed successfully メッセージが表示されるまで待ちます。

    プロジェクト ID を探す

    1. Google Cloud コンソールで [ダッシュボード] ページに移動します。

      ダッシュボードに移動

    2. [プロジェクト情報] カードでプロジェクト ID を確認します。

    3. プロジェクト ID をメモします。このクイックスタートのこの後のステップで必要になります。

    Artifact Registry にサンプル アプリケーションのイメージを登録する

    1. Google Cloud コンソールで Cloud Shell を開きます。

      Cloud Shell を開く

    2. Cloud Shell エディタで、次のコマンドを使用して、GitHub からサンプルのアプリケーション コードを含むリポジトリのクローンを作成します。

      cloudshell_open --repo_url \
      "https://github.com/GoogleCloudPlatform/alloydb-auth-proxy" \
      --dir \
      "examples/go" \
      --force_new_clone
    3. Artifact Registry に Docker イメージ用のリポジトリを作成します。

      gcloud artifacts repositories create cloud-run-source-deploy --location us-central1 --repository-format=docker --project PROJECT_ID

      PROJECT_ID は、プロジェクトの ID に置き換えます。

    4. [Cloud Shell の承認] ダイアログで、[承認] をクリックします。この手順をすでに行っている場合は、このプロンプトが表示されません。

    5. Docker コンテナをビルドして Artifact Registry に公開するには、次のコマンドを使用します。

       gcloud builds submit --tag  us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy/run-sql --project PROJECT_ID

      PROJECT_ID は、プロジェクトの ID に置き換えます。

      このクイックスタートのサンプル アプリケーション コードは、GoogleCloudPlatform/alloydb-auth-proxy GitHub リポジトリの examples/go ディレクトリにあります。前の手順の cloudshell_open コマンドは、このリポジトリのクローンを自動的に作成して、正しいディレクトリを開きます。

    新しいインスタンスの IP アドレスを確認する

    1. Google Cloud コンソールで、[クラスタ] ページに移動します。

      [クラスタ] に移動

    2. テーブルで、リソース名my-primary の行を見つけます。

    3. その行のプライベート IP アドレスをメモします。このクイックスタートのこの後のステップで必要になります。

      IP アドレスは 172.19.209.2:5432 のような形式になります。

    Cloud Run のサービスを作成する

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

      Cloud Run に移動

    2. [サービス] タブで、[コンテナをデプロイ] をクリックします。

    3. [サービスの作成] ページで、[既存のコンテナ イメージから 1 つのリビジョンをデプロイする] オプションを選択します。

    4. [コンテナ イメージの URL] フィールドをクリックして、[選択] をクリックします。

    5. [コンテナ イメージの選択] ペインで、次の手順を行います。

      1. [Artifact Registry] タブを選択します。
      2. us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy を開きます。
      3. run-sql を開きます。
      4. 最新のイメージを選択します。
      5. [選択] をクリックします。
    6. [サービス名] フィールドに「quickstart-service」と入力します。

    7. [リージョン] リストで、[us-central1 (Iowa)] がデフォルトで選択されていることを確認します。

    8. [認証] セクションで、[公開アクセスを許可する] を選択します。

    9. [CPU の割り当てと料金] セクションで、[リクエストの処理中にのみ CPU を割り当てる] が選択されていることを確認します。

    10. [コンテナ、ボリューム、ネットワーキング、セキュリティ] セクションを開きます。

    11. [コンテナ] タブで [変数とシークレット] タブを選択し、次の操作を行います。

      1. [環境変数] セクションで、[変数を追加] をクリックします。

      2. Name フィールドと Value フィールドに次のように入力します。

        • DB_NAME: quickstart_db
        • DB_USER: postgres
        • DB_PASS: クラスタの作成時に入力したパスワード。
        • DB_PORT: 5432
        • INSTANCE_HOST: 新しいインスタンスの IP アドレスを確認するで確認したクラスタのプライマリ インスタンスの IP アドレス。ポート番号は含めないでください。たとえば、172.19.209.2:5432 ではなく 172.19.209.2 に設定します。
    12. [コンテナ] タブから [ネットワーキング] タブに切り替えて、次の操作を行います。

      1. [アウトバウンド トラフィック用の VPC に接続する] チェックボックスをオンにします。

      2. [VPC に直接トラフィックを送信する] オプションを選択します。

      3. [ネットワーク] プルダウン リストで、[default] 値を選択します。

      4. [サブネット] プルダウン リストで、[default] 値が選択されていることを確認します。

    13. [作成] をクリックして、Cloud Run サービスを作成します。

      Cloud Run サービスがデプロイされると、[quickstart-service] ページの [URL] フィールドにサンプル アプリケーションの URL が表示されます。

      アプリケーションは AlloyDB をデータストアとして使用します。

    サンプル アプリケーションを表示する

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

      Cloud Run に移動

    2. [quickstart-service] ページで、 [クリップボードにコピー] をクリックして、アプリケーションの URL をコピーします。

    3. 新しいブラウザタブで、コピーしたアプリの URL を貼り付け、[入力] をクリックします。

    クリーンアップ

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

    クラスタをクリーンアップする

    1. Google Cloud コンソールで、[クラスタ] ページに移動します。

      [クラスタ] に移動

    2. 削除する my-cluster クラスタの横にある [ 操作] をクリックし、[ 削除] をクリックします。

    3. [クラスタの削除] ダイアログが表示されたら、[my-cluster] フィールドに my-cluster と入力して、削除することを確認します。

    4. [削除] をクリックします。

    サービスをクリーンアップする

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

      Cloud Run に移動

    2. quickstart-service サービス名の横にあるチェックボックスをオンにします。

    3. [Cloud Run] ページの上部にある [ 削除] をクリックします。

    4. [quickstart-service の削除] ダイアログが表示されたら、[削除] をクリックして確定します。

    次のステップ