menu
arrow_back

Kubernetes Engine 内のアプリケーションから Cloud SQL に接続する

—/100

Checkpoints

arrow_forward

Create required resources with the fully automated deployment

Kubernetes Engine 内のアプリケーションから Cloud SQL に接続する

1時間 15分 クレジット: 7

GSP449

Google Cloud セルフペース ラボ

概要

このラボでは、Cloud SQL Proxy コンテナをサイドカー コンテナとして使って、Kubernetes Engine 内のアプリケーションを Cloud SQL インスタンスに簡単に接続する方法を学びます。Kubernetes Engine クラスタと Cloud SQL Postgres インスタンスをデプロイし、Cloud SQL Proxy コンテナを使ってこれらが通信できるようにします。

このラボでは Cloud SQL Proxy コンテナを使って Cloud SQL インスタンスに接続する方法を主に説明しますが、このコンセプト自体は API アクセスを必要とするすべての GCP マネージド サービスに共通するものです。

このラボは、プロキシ コンテナを経由して Cloud SQL を使う方法をわかりやすく学ぶために GKE Helmsman のエンジニアによって作成されました。デモは Github でご覧いただけます。このアセットへのコントリビューションをぜひお寄せください。

重要な学習ポイント:

  • Kubernetes Engine ノードにおいて権限のないサービス アカウントを使用する不正なアクセスからデータベースを保護する

  • Kubernetes Engine で実行されるコンテナに対して、権限のあるサービス アカウントの認証情報を設定する

  • Cloud SQL インスタンスに接続する処理をオフロードし、アプリケーションの開発時に必要なインフラストラクチャについての知識を減らすために、Cloud SQL Proxy を利用する

権限のないサービス アカウント

すべての Kubernetes Engine ノードにはデフォルトの Compute Engine サービス アカウントが割り当てられます。このサービス アカウントの権限は比較的高く、多くの GCP サービスを利用できます。作成したアプリケーションには、それを実行する Compute Engine インスタンスに割り当てられた認証情報が引き継がれます。これは Google Cloud SDK がそう設定されているためです。デフォルトの Compute Engine サービス アカウントほど多くの権限を必要としないコンテナもあるので、最小限の権限だけを持つサービス アカウントを Kubernetes Engine ノードに割り当てた後、コンテナごとに必要な(最小限の)権限を持つサービス アカウントを作成する必要があります。

コンテナ内の権限のあるサービス アカウント

サービス アカウント認証情報の取得先は次の 2 つしかありません。

  1. ホスト インスタンス(不要な知識です)
  2. 認証情報ファイル

このラボでは Kubernetes Engine で実行されるコンテナに認証情報ファイルを取得して、必要な権限をアプリケーションに付与する方法を説明します。

Cloud SQL Proxy

Cloud SQL Proxy を使うと、Cloud SQL インスタンスへの接続を作成し、これを維持する作業を Cloud SQL Proxy プロセスにオフロードできます。こうすると、アプリケーションが接続を細かく扱う必要がなくなり、シークレットの管理が簡略化されます。Cloud SQL Proxy は、同じ Kubernetes Engine ポッド内でアプリケーション コンテナとともに実行できる Docker コンテナとして、パッケージ化されたうえで提供されています。

Qwiklabs に参加してこのラボの残りの部分や他のラボを確認しましょう。

  • Google Cloud Console への一時的なアクセス権を取得します。
  • 初心者レベルから上級者レベルまで 200 を超えるラボが用意されています。
  • ご自分のペースで学習できるように詳細に分割されています。
参加してこのラボを開始