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

    Go to project selector

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

  6. App Engine フレキシブル環境で Cloud SQL サンプルアプリを実行するために必要な Cloud APIs を有効にします。

    コンソール

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

    API を有効にする

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

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

    ボタンをクリックすることで、Google App Engine フレキシブル環境も有効にできます。

    gcloud

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

    Cloud Shell を開く

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

    gcloud services enable appengineflex.googleapis.com 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

    前述のコマンドを実行すると、Google App Engine フレキシブル環境も有効になります。

Cloud SQL を設定する

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

データベースの作成

コンソール

  1. Google 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. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

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

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

gcloud

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

  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 サービス アカウントが作成されます。

コンソール

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

    App Engine に移動

  2. [アプリケーションを作成] をクリックします。
  3. [リージョンを選択] プルダウン メニューから、[us-central] を選択します。
  4. [次へ] をクリックします。
  5. [使用開始] ページが表示されたら、ページの一番下までスクロールします。
  6. [後で行う] リンクをクリックします。

gcloud

  1. 次の gcloud app create コマンドを実行して、App Engine アプリを作成します。
  2. gcloud app create
  3. App Engine アプリを配置するリージョンを選択するように求められたら、us-central の数値を入力します。

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

App Engine で使用するサービス アカウントが、Cloud SQL クライアントのロールを持つように構成します。ロールをサービス アカウントに割り当てると、そのアカウントには Cloud SQL に接続する権限があります。

コンソール

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

    [IAM] に移動

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

gcloud

  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 に接続する権限のある App Engine サービス アカウントを構成しました。これで、Cloud SQL インスタンスに接続するサンプルアプリを構成してデプロイできるようになります。

クリーンアップ

このページで使用したリソースについて、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 インスタンスへの接続についても確認できます。