App Engine スタンダード環境から Cloud SQL for PostgreSQL に接続する

Google Cloud コンソールとクライアント アプリを使用して、PostgreSQL インスタンスに接続された App Engine スタンダード環境にサンプルアプリをデプロイする方法を学習します。

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

始める前に

  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. App Engine スタンダード環境で Cloud SQL サンプルアプリを実行するために必要な Cloud APIs を有効にします。
    コンソールgcloud

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

    API を有効にする

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

    • Cloud SQL Admin API
    • Compute Engine API
    • Cloud Build API
    • Cloud Logging API

    次のボタンをクリックして Cloud Shell を開きます。これにより、ブラウザから Google Cloud リソースにコマンドラインで直接アクセスできます。Cloud Shell を使用して、このクイックスタートで紹介する gcloud コマンドを実行できます。

    Cloud Shell を開く

    Cloud Shell を使用して次の gcloud コマンドを実行します。

    gcloud services enable sqladmin.googleapis.com compute.googleapis.com \
    cloudbuild.googleapis.com logging.googleapis.com

    このコマンドにより、次の API が有効になります。

    • Cloud SQL Admin API
    • Compute Engine API
    • Cloud Build API
    • Cloud Logging API

Cloud SQL を設定する

Cloud SQL インスタンスを作成する

パブリック IP

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

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

  2. [インスタンスを作成] をクリックします。
  3. [PostgreSQL を選択] をクリックします。
  4. Enterprise Plus がインスタンスの Cloud SQL エディションとして選択されていることを確認します。
  5. [インスタンス ID] フィールドに「quickstart-instance」と入力します。
  6. [パスワード] フィールドに、postgres ユーザーのパスワードを入力します。このパスワードは後で使用できるように保存してください。
  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=POSTGRES_14 \
 --cpu=1 \
 --memory=4GB \
 --region=us-central \
 --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. [PostgreSQL を選択] をクリックします。
  4. Enterprise Plus がインスタンスの Cloud SQL エディションとして選択されていることを確認します。
  5. [インスタンス ID] フィールドに「quickstart-instance」と入力します。
  6. [パスワード] フィールドに、postgres ユーザーのパスワードを入力します。このパスワードは後で使用できるように保存してください。
  7. [リージョンとゾーンの可用性の選択] セクションで、[シングルゾーン] を選択します。
  8. [構成オプションを表示] メニューをクリックします。
  9. [マシンの構成] ノードを開きます。
  10. [マシンシェイプ] リージョンで、[4 vCPU、32 GB] シェイプを選択します。
  11. [接続] ノードを展開します。
  12. プライベート IP アドレスのみを使用するインスタンスを作成するには、[パブリック IP] チェックボックスをオフにします。
  13. [プライベート IP] チェックボックスをオンにします。
  14. [ネットワーク] メニューから [デフォルト] を選択します。
  15. [インスタンスを作成] をクリックし、インスタンスが初期化されて起動するまで待ちます。
  16. [接続] をクリックします。
  17. [セキュリティ] で [SSL 接続のみ許可] を選択し、SSL 接続を有効にします。
  18. [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=POSTGRES_14 \
     --cpu=1 \
     --memory=4GB \
     --region=us-central \
     --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. [ユーザー アカウントを追加] をクリックします。
  5. [ユーザー アカウントをインスタンス instance_name に追加] ページで、次の情報を追加します。
    1. [ユーザー名] フィールドに「quickstart-user」と入力します。
    2. [パスワード] フィールドに、データベース ユーザーのパスワードを指定します。このクイックスタートの後半で使用するので、パスワードをメモしておいてください。
  6. [追加] をクリックします。

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

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

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

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

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

App Engine スタンダード環境にサンプルアプリをデプロイする

App Engine アプリケーションを作成する

Google Cloud プロジェクトで App Engine アプリケーションを作成します。これにより、App Engine サービスが有効になり、デフォルトの App Engine アプリケーションと Cloud SQL への接続に使用される App Engine サービス アカウントが作成されます。
コンソールgcloud
  1. Google Cloud コンソールで [App Engine] ページに移動します。

    App Engine に移動

  2. [アプリケーションを作成] ボタンをクリックします。
  3. [リージョンを選択] プルダウン メニューから [us-central] を選択します。
  4. [次へ] をクリックします。
  5. [後で行う] が [開始] ページに表示されたら、これをクリックします。
  1. 次の gcloud app create コマンドを実行して、App Engine アプリケーションを作成します。
  2. gcloud app create
  3. App Engine アプリを配置するリージョンを選択するように求められたら、us-central の数値を入力します。

App Engine サービス アカウントを構成する

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

    [IAM] に移動

  2. App Engine のデフォルトのサービス アカウントという名前のサービス アカウントの鉛筆アイコンをクリックします。
  3. [別のロールを追加] をクリックします。
  4. Cloud SQL クライアントという名前のロールを追加します。
  5. [保存] をクリックします。
  1. 次の gcloud コマンドを実行して、プロジェクトのサービス アカウントのリストを取得します。
    gcloud iam service-accounts list
  2. App Engine サービス アカウントメールアドレスをコピーします。
  3. 次のコマンドを実行して、Cloud SQL クライアントのロールを App 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 パスの場合、App Engine スタンダード環境では、暗号化が提供され、Unix ソケット経由で Cloud SQL Auth Proxy を使用して接続が行われます。
GoJavaNode.jsPython
  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。

    Cloud Shell エディタを開く

  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトで次のコマンドを実行して、プロジェクトを有効にします。
    gcloud config set project YOUR-PROJECT-ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、golang-samples/cloudsql/postgres/database-sql/cmd/app/app.standard.yaml ファイルに移動して開きます。
  6. app.standard.yaml ファイル内の環境変数のプレースホルダを次の値に置き換えます。
    • <PROJECT-ID> を、プロジェクト ID に置き換えます。
    • <INSTANCE-REGION> を、us-central1 に置き換えます。
    • <INSTANCE-NAME> を、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンス ID に置き換えます。
    • <YOUR_DB_USER_NAME> を、quickstart-user に置き換えます。
    • <YOUR_DB_PASSWORD> を、ユーザーを作成するで作成した quickstart-user のパスワードに置き換えます。
    • <YOUR_DB_NAME> を、quickstart-db に置き換えます。
  7. Cloud Shell のコマンド プロンプトで、golang-samples/cloudsql/postgres/database-sql ディレクトリから次の gcloud app deploy コマンドを実行して、サンプルアプリを App Engine スタンダード環境にデプロイします。
  8. gcloud app deploy cmd/app/app.standard.yaml
  9. アプリを作成するリージョンを選択するように求められたら、us-central の数値を入力します。
  10. Do you want to continue?」と表示されたら、「Y」と入力します。
  11. deploy コマンドが完了したら、gcloud app browse コマンドを実行します。
  12. gcloud app browse
  13. 生成されたリンクをクリックすると、App Engine スタンダード環境で実行されているサンプルアプリが表示されます。この環境は Cloud SQL に接続されています。
  14. デプロイされたサンプルアプリを表示する

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

    Cloud Shell エディタを開く

  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトで次のコマンドを実行して、プロジェクトを有効にします。
    gcloud config set project YOUR-PROJECT-ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、java-docs-samples/cloud-sql/postgres/servlet/src/main/webapp/WEB-INF/appengine-web.xml ファイルに移動して開きます。
  6. appengine-web.xml ファイル内の環境変数のプレースホルダを次の値に置き換えます。
    • my-project:region:instance を、Google Cloud コンソールの Cloud SQL インスタンス ページに表示される、インスタンスの接続名に置き換えます。
    • my-db-user を、quickstart-user に置き換えます。
    • my-db-password を、[ユーザーを作成する] で作成した quickstart-user のパスワードに置き換えます。
    • my_db を、quickstart-db に置き換えます。
  7. Cloud Shell のコマンド プロンプトで、java-docs-samples/cloud-sql/postgres/servlet ディレクトリから次の Apache Maven mvn clean package コマンドを実行して、サンプルアプリを App Engine スタンダード環境にデプロイします。
  8. mvn clean package appengine:deploy -DskipTests
  9. アプリを作成するリージョンを選択するように求められたら、us-central の数値を入力します。
  10. Do you want to continue?」と表示されたら、「Y」と入力します。
  11. deploy コマンドが完了したら、gcloud app browse コマンドを実行します。
  12. gcloud app browse
  13. 生成されたリンクをクリックすると、App Engine スタンダード環境で実行されているサンプルアプリが表示されます。この環境は Cloud SQL に接続されています。
  14. デプロイされたサンプルアプリを表示する

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

    Cloud Shell エディタを開く

  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトで次のコマンドを実行して、プロジェクトを有効にします。
    gcloud config set project YOUR-PROJECT-ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、nodejs-docs-samples/cloud-sql/postgres/knex/app.standard.yaml ファイルに移動して開きます。
  6. app.standard.yaml ファイル内の環境変数のプレースホルダを次の値に置き換えます。
    • <MY-PROJECT> を、プロジェクト ID に置き換えます。
    • <INSTANCE-REGION> を、us-central1 に置き換えます。
    • <INSTANCE-NAME> を、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンス ID に置き換えます。
    • MY_DB_USER を、quickstart-user に置き換えます。
    • MY_DB_PASSWORD を、[ユーザーを作成する] で作成した quickstart-user のパスワードに置き換えます。
    • MY_DATABASE を、quickstart-db に置き換えます。
  7. Cloud Shell のコマンド プロンプトで、nodejs-docs-samples/cloud-sql/postgres/knex ディレクトリから次の gcloud app deploy コマンドを実行して、サンプルアプリを App Engine スタンダード環境にデプロイします。
  8. gcloud app deploy app.standard.yaml
  9. アプリを作成するリージョンを選択するように求められたら、us-central の数値を入力します。
  10. Do you want to continue?」と表示されたら、「Y」と入力します。
  11. deploy コマンドが完了したら、gcloud app browse コマンドを実行します。
  12. gcloud app browse
  13. 生成されたリンクをクリックすると、App Engine スタンダード環境で実行されているサンプルアプリが表示されます。この環境は Cloud SQL に接続されています。
  14. デプロイされたサンプルアプリを表示する

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

    Cloud Shell エディタを開く

  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトで次のコマンドを実行して、プロジェクトを有効にします。
    gcloud config set project YOUR-PROJECT-ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、python-docs-samples/cloud-sql/postgres/sqlalchemy/app.standard.yaml ファイルに移動して開きます。
  6. app.standard.yaml ファイル内の環境変数のプレースホルダを次の値に置き換えます。
    • <PROJECT-ID> を、プロジェクト ID に置き換えます。
    • <INSTANCE-REGION> を、us-central1 に置き換えます。
    • <INSTANCE-NAME> を、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンス ID に置き換えます。
    • <YOUR_DB_USER_NAME> を、quickstart-user に置き換えます。
    • <YOUR_DB_PASSWORD> を、ユーザーを作成するで作成した quickstart-user のパスワードに置き換えます。
    • <YOUR_DB_NAME> を、quickstart-db に置き換えます。
  7. Cloud Shell のコマンド プロンプトで、python-docs-samples/cloud-sql/postgres/sqlalchemy ディレクトリから次の gcloud app deploy コマンドを実行して、サンプルアプリを App Engine スタンダード環境にデプロイします。
  8. gcloud app deploy app.standard.yaml
  9. アプリを作成するリージョンを選択するように求められたら、us-central の数値を入力します。
  10. Do you want to continue?」と表示されたら、「Y」と入力します。
  11. deploy コマンドが完了したら、gcloud app browse コマンドを実行します。
  12. gcloud app browse
  13. 生成されたリンクをクリックすると、App Engine スタンダード環境で実行されているサンプルアプリが表示されます。この環境は Cloud SQL に接続されています。
  14. デプロイされたサンプルアプリを表示する

プライベート 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. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトで次のコマンドを実行して、プロジェクトを有効にします。
    gcloud config set project YOUR-PROJECT-ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. SSL 証明書ファイルを証明書フォルダにアップロードします。
    1. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、golang-samples/cloudsql/postgres/database-sql/certs フォルダに移動します。
    2. Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
    3. ローカルマシンで次のファイルを選択します。
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    4. 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
  6. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、golang-samples/cloudsql/postgres/database-sql/cmd/app/app.standard.yaml ファイルに移動して開きます。
  7. 次のコードをコピーしてファイルに貼り付けます。その際、既存のファイルの内容を置き換えます。
  8. runtime: go116
    
    env_variables:
      DB_USER: quickstart-user
      DB_PASS: YOUR_DB_PASSWORD
      DB_NAME: quickstart-db
      DB_PORT: 3306
      INSTANCE_HOST: INSTANCE_HOST
      DB_ROOT_CERT: certs/server-ca.pem
      DB_CERT: certs/client-cert.pem
      DB_KEY: certs/client-key.pem
      PRIVATE_IP: TRUE
    
    vpc_access_connector:
      name: projects/PROJECT_ID/locations/us-central1/connectors/quickstart-connector
  9. 次の変数を置き換えます。
    • YOUR_DB_PASSWORD を、[ユーザーを作成する] で作成した quickstart-user のパスワードに置き換えます。
    • INSTANCE_HOST を、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスのプライベート IP アドレスに置き換えます。
    • PROJECT_ID はプロジェクト ID に置き換えます。
  10. Cloud Shell のコマンド プロンプトで、golang-samples/cloudsql/postgres/database-sql ディレクトリから次の gcloud app deploy コマンドを実行して、サンプルアプリを App Engine スタンダード環境にデプロイします。
  11. gcloud app deploy cmd/app/app.standard.yaml
  12. アプリを作成するリージョンを選択するように求められたら、us-central の数値を入力します。
  13. Do you want to continue?」と表示されたら、「Y」と入力します。
  14. deploy コマンドが完了したら、gcloud app browse コマンドを実行します。
  15. gcloud app browse
  16. 生成されたリンクをクリックすると、App Engine スタンダード環境で実行されているサンプルアプリが表示されます。この環境は Cloud SQL に接続されています。
  17. デプロイされたサンプルアプリを表示する

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 コマンド プロンプトで次のコマンドを実行して、プロジェクトを有効にします。
    gcloud config set project YOUR-PROJECT-ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、java-docs-samples/cloud-sql/postgres/servlet/src/main/webapp/WEB-INF/appengine-web.xml ファイルに移動して開きます。
  6. 次のコードをコピーして appengine-web.xml ファイルに貼り付けます。その際、既存のファイルの内容を置き換えます。
  7. <runtime>java17</runtime>
      <env-variables>
        <env-var name="INSTANCE_CONNECTION_NAME" value="project-name:region-name:instance-name" />
        <env-var name="DB_PORT" value="5432" />
        <env-var name="DB_USER" value="quickstart-user" />
        <env-var name="DB_PASS" value="my-db-password" />
        <env-var name="DB_NAME" value="quickstart-db" />
      </env-variables>
    <vpc-access-connector>
      <name>projects/PROJECT_ID/locations/us-central1/connectors/quickstart-connector</name>
      <egress-setting>all-traffic</egress-setting>
    </vpc-access-connector>
  8. 次の変数を置き換えます。
    • project-name:region-name:instance-name を、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。
    • my-db-password を、[ユーザーを作成する] で作成した quickstart-user のパスワードに置き換えます。
    • PROJECT_ID はプロジェクト ID に置き換えます。
  9. Cloud Shell のコマンド プロンプトで、java-docs-samples/cloud-sql/postgres/servlet ディレクトリから次の Apache Maven mvn clean package コマンドを実行して、サンプルアプリを App Engine スタンダード環境にデプロイします。
  10. mvn clean package appengine:deploy -DskipTests
  11. アプリを作成するリージョンを選択するように求められたら、us-central の数値を入力します。
  12. Do you want to continue?」と表示されたら、「Y」と入力します。
  13. deploy コマンドが完了したら、gcloud app browse コマンドを実行します。
  14. gcloud app browse
  15. 生成されたリンクをクリックすると、App Engine スタンダード環境で実行されているサンプルアプリが表示されます。この環境は Cloud SQL に接続されています。
  16. デプロイされたサンプルアプリを表示する

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. Cloud Shell コマンド プロンプトで次のコマンドを実行して、プロジェクトを有効にします。
    gcloud config set project YOUR-PROJECT-ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. SSL 証明書ファイルを証明書フォルダにアップロードします。
    1. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、nodejs-docs-samples/cloud-sql/postgres/knex/certs フォルダに移動します。
    2. Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
    3. ローカルマシンで次のファイルを選択します。
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    4. 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
  6. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、nodejs-docs-samples/cloud-sql/postgres/knex/app.standard.yaml ファイルに移動して開きます。
  7. 次のコードをコピーしてファイルに貼り付けます。その際、既存のファイルの内容を置き換えます。
  8. runtime: nodejs16
    
    env_variables:
      DB_USER: quickstart-user
      DB_PASS: MY_DB_PASSWORD
      DB_NAME: quickstart-db
      DB_PORT: 5432
      INSTANCE_HOST: INSTANCE_HOST
      DB_ROOT_CERT: certs/server-ca.pem
      DB_CERT: certs/client-cert.pem
      DB_KEY: certs/client-key.pem
      PRIVATE_IP: TRUE
    
    vpc_access_connector:
      name: projects/PROJECT_ID/locations/us-central1/connectors/quickstart-connector
  9. 次の変数を置き換えます。
    • MY_DB_PASSWORD を、[ユーザーを作成する] で作成した quickstart-user のパスワードに置き換えます。
    • INSTANCE_HOST を、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスのプライベート IP アドレスに置き換えます。
    • PROJECT_ID はプロジェクト ID に置き換えます。
  10. Cloud Shell のコマンド プロンプトで、nodejs-docs-samples/cloud-sql/postgres/knex ディレクトリから次の gcloud app deploy コマンドを実行して、サンプルアプリを App Engine スタンダード環境にデプロイします。
  11. gcloud app deploy app.standard.yaml
  12. アプリを作成するリージョンを選択するように求められたら、us-central の数値を入力します。
  13. Do you want to continue?」と表示されたら、「Y」と入力します。
  14. deploy コマンドが完了したら、gcloud app browse コマンドを実行します。
  15. gcloud app browse
  16. 生成されたリンクをクリックすると、App Engine スタンダード環境で実行されているサンプルアプリが表示されます。この環境は Cloud SQL に接続されています。
  17. デプロイされたサンプルアプリを表示する

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. Cloud Shell コマンド プロンプトで次のコマンドを実行して、プロジェクトを有効にします。
    gcloud config set project YOUR-PROJECT-ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. SSL 証明書ファイルを証明書フォルダにアップロードします。
    1. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、python-docs-samples/cloud-sql/postgres/sqlalchemy/certs フォルダに移動します。
    2. Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
    3. ローカルマシンで次のファイルを選択します。
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    4. 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
  6. Cloud Shell エディタの [エクスプローラ] ナビゲーション メニューから、python-docs-samples/cloud-sql/postgres/sqlalchemy/app.standard.yaml ファイルに移動して開きます。
  7. 次のコードをコピーしてファイルに貼り付けます。その際、既存のファイルの内容を置き換えます。
  8. runtime: python37
    entrypoint: gunicorn -b :$PORT app:app
    
    env_variables:
      DB_USER: quickstart-user
      DB_PASS: YOUR_DB_PASSWORD
      DB_NAME: quickstart-db
      DB_PORT: 5432
      INSTANCE_HOST: INSTANCE_HOST
      DB_ROOT_CERT: certs/server-ca.pem
      DB_CERT: certs/client-cert.pem
      DB_KEY: certs/client-key.pem
      PRIVATE_IP: TRUE
    
    vpc_access_connector:
      name: projects/PROJECT_ID/locations/us-central1/connectors/quickstart-connector
  9. 次の変数を置き換えます。
    • YOUR_DB_PASSWORD を、[ユーザーを作成する] で作成した quickstart-user のパスワードに置き換えます。
    • INSTANCE_HOST を、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスのプライベート IP アドレスに置き換えます。
    • PROJECT_ID はプロジェクト ID に置き換えます。
  10. Cloud Shell のコマンド プロンプトで、python-docs-samples/cloud-sql/postgres/sqlalchemy ディレクトリから次の gcloud app deploy コマンドを実行して、サンプルアプリを App Engine スタンダード環境にデプロイします。
  11. gcloud app deploy app.standard.yaml
  12. アプリを作成するリージョンを選択するように求められたら、us-central の数値を入力します。
  13. Do you want to continue?」と表示されたら、「Y」と入力します。
  14. deploy コマンドが完了したら、gcloud app browse コマンドを実行します。
  15. gcloud app browse
  16. 生成されたリンクをクリックすると、App Engine スタンダード環境で実行されているサンプルアプリが表示されます。この環境は Cloud SQL に接続されています。
  17. デプロイされたサンプルアプリを表示する

クリーンアップ

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

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

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

  2. quickstart-instance インスタンスを選択して [インスタンスの詳細] ページを開きます。
  3. ページ上部にあるアイコンバーで、[削除] をクリックします。
  4. [インスタンスの削除] ダイアログ ボックスで「quickstart-instance」と入力し、[削除] をクリックしてインスタンスを削除します。アプリを無効にすると、インスタンスの実行とリクエストの処理が停止されます。アプリがリクエストを処理している場合、アプリが無効になる前にリクエストを処理します。

App Engine アプリを無効にして、データを保持するには、次の手順を行います。

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

    [設定] に移動

  2. [アプリケーション設定] タブで、[アプリケーションを無効にする] をクリックします。

  3. [アプリ ID] フィールドに、無効にするアプリの ID を入力し、[無効にする] をクリックします。

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

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 インスタンスの PostgreSQL ユーザーデータベースの作成についても学習できます。

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

以下の詳細を確認する

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