LoginSignup
5
1

More than 1 year has passed since last update.

Cloud SQL Auth Proxy Dockerイメージがローカル検証に便利

Last updated at Posted at 2022-07-03

検証目的で、docker-composeを用いてローカルに「WordPress + Google Cloud SQL (Cloud SQL Auth Proxy利用)」の構築を行いました。
個人的にですが、結構簡単にできたのでその方法の共有記事です。

流れ

  1. Cloud SQLインスタンス作成
  2. 作成したインスタンスにWordPress用のデータベース作成
  3. Cloud SQL Auth Proxy用のサービスアカウント作成
  4. docker-compose
  5. 接続確認

Cloud SQL

Cloud SQLは、Google Cloudが提供しているリレーショナルデータベースサービスです。
データベースの作成や管理(バックアップなど)が簡単に行なえます。

CPUやメモリ、ディスクなどのスペックについて色々と設定が決められるのですが、今回は構築が可能ということを確認したかっただけなのでほぼ最小の構成としました。
cloudsql.png

データベース作成

コンソールでインスタンスを作成した場合、インスタンスの作成後にWordPress用のデータベースを作成する必要があります。
作成したインスタンスを選択→左のサイドバーから「データベース」を選択→「データベースの作成」を押下
の順で作成画面に行けます。

ここで、データベース名、文字セット及び照合順序を指定します。
db.png

Cloud SQL Auth Proxy

インスタンスにパブリックIPを付与している場合、アクセスするには「承認済みネットワーク」(アクセスを許可するCIDR範囲を指定)を設定する必要があります。
しかし、Cloud SQL Auth Proxyを用いることで、「承認済みネットワーク」の設定なしにローカルからアクセスすることが可能になります。

ローカルへインストールする方法と、Dockerイメージを引っ張ってくる方法があります。
どちらにしろ事前にサービスアカウントを作成しておく必要があるので気をつけてください。
ロールは「Cloud SQLクライアント」のみで大丈夫です。

docker-compose

Cloud SQLの準備が終わったら、以下の設定のもとコンテナを立ち上げます。
こちらを参考に、データベースの部分をCloud SQL Auth Proxyに書き換えた感じです。

version: '3'

services:
  sql_proxy:
    image: gcr.io/cloudsql-docker/gce-proxy:latest
    volumes: 
      - ${作成したサービスアカウントキーを保管しているディレクトリ}:/config
    ports:
      - "3306:3306"
    restart: always
    command: /cloud_sql_proxy -instances=${作成したCloud SQLインスタンスの接続名}=tcp:0.0.0.0:3306 -credential_file=/config/${作成したサービスアカウントキーのファイル名}
  wordpress:
    depends_on:
      - sql_proxy
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: sql_proxy:3306
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: hogehoge

今回はMySQLを使っているので、ポート番号は3306となります。

接続確認

ファイルの準備もできたら、あとはdocker-compose upでコンテナを起動するのみです。

$ docker-compose up -d
Creating wordpress_sql_proxy_1 ... done
Creating wordpress_wordpress_1 ... done
$ docker-compose ps
        Name                       Command               State                    Ports
---------------------------------------------------------------------------------------------------------
wordpress_sql_proxy_1   /cloud_sql_proxy -instance ...   Up      0.0.0.0:3306->3306/tcp,:::3306->3306/tcp
wordpress_wordpress_1   docker-entrypoint.sh apach ...   Up      0.0.0.0:8000->80/tcp,:::8000->80/tcp

無事WordPressへアクセス、初期設定することもできました。
wp_1.png
wp_2.png

参考

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1