今回はCloud Run を使ってコンテナ環境を構築していきます。
今回の環境
今回はわかりやすいようにCloud Run とArtifact Registry のみにしています。

手順
まず初めにdocker image をGCP のArtifact Registory に登録する必要があります。
Artifact Registory に登録
まずは、nginx と php と mysql のレポジトリを登録していきます。
Artifact Registory > レポジトリの作成

レポジトリ作成
他の設定に関しては任意で大丈夫です。イメージのスキャンは今回は検証の内容ではないので、無効化しています。

コンテナを登録
今回は以前のブログで紹介したコンテナ環境の使いまわししていきます。ECS のブログで使用したdocker になります。まだチェックしてない方はチェックしてみてください。
コンテナ登録手順
このディレクトリ構造に沿って、コマンドをローカルで実行していきます。
ビルド
# nginx
docker build -f docker/nginx/Dockerfile.production -t gcp-nginx .
# php
docker build -f docker/app/Dockerfile.production -t gcp-app .
# mysql
docker build -f docker/mysql/Dockerfile -t gcp-mysql .
タグ付け
# tag
docker tag gcp-app asia-northeast1-docker.pkg.dev/<your-projectID>/<your repository name>/gcp-app:latest
push
docker push asia-northeast1-docker.pkg.dev/<your-projectID>/<your repository name>/gcp-app:latest
Repository に登録確認

Cloud Run の設定
Cloud Run の設定は結構ECS と似ている所も多いので、設定自体はECS の設定があればそれをマネしながらでもやってみてください。ECS のtask.json などがあればいいかもしれません。
コンテナをデプロイ

コンテナイメージの指定
サービス名は任意で作成いただいて、nginx のコンテナイメージURLを上に貼り付けます。

その他設定
本来はLoad Balancer などを通した方がいいですが、今回はCloud Run でコンテナを使うのが目的なので、インターネットから閲覧できるような設定にします。そして、スケーリングも手動に設定します。

コンテナ設定
nginx コンテナ
port 番号を80 に変更しましょう。それ以外はデフォルトでオッケーです。コンテナイメージURLは上で設定したものがここに表示されます。

php コンテナ
php のコンテナではDB と接続する必要があるので、APP_KEY とは別に下記の設定をする必要があります。これを忘れるとDB との接続が取れないので、エラーになってしまいます。

MySQL コンテナ
MySQL コンテナも同様でDB 接続情報を入れないと接続ができないので、エラーになってしまいます。環境変数を入力するのを忘れないでください。

リクエストの設定
ここは今回は関係しないので、デフォルトのまま行きます。起動時のCPU ブーストのみチェックを外しておきます。

ここまできたら、作成をおします!
ルーティングまで完了したら、 URL にアクセスしてみましょう!

Laravel 画面の表示
Laravel のデフォルトの画面が表示されれば、オッケーです!

ここまできたら、今回の検証は完了です。
まとめ
Cloud Run のみで検証をやってみて、ECS よりはデプロイは楽そうだなという印象は受けました。ただ、運用に乗せるとという部分もあるかもしれないので、次はLoad Balancer など、セキュリティ面にも気を付けた検証を実施してみます!
参考サイト

コメント