Github ActionでCloud Runにデプロイ(前編)
Cloud Runを使うことで、コンテナ化したアプリケーションをホストすることができます。 Github Actionにより、コンテナ化したアプリケーションのCloud Runへのデプロイを自動化することができます。 前編ではGoogle Cloud側の設定を行います。


サムネイルはUnsplashのMahdi Soheiliが撮影した写真
はじめに
コンテナ化したアプリケーションをホストするサービスの一つとして、Cloud Runがあります。
Cloud Runはかなり寛大な無料枠を設けてくれているので、なるべくコストをかけずにWebアプリケーションの運営をしたい用途に向いています。(余談ですが、本ブログもCloud Runで運営しています。)
また、Github ActionによりCloud Runへのデプロイを自動化することができます。Github Actionにも個人使用であれば十分な無料枠があります。
これにより効率的かつ安価にコンテナアプリケーションの開発をすることができます。
構成図

本記事で解説する設定を全て行うと、最終的には上記の構成になります。
- Github Action:コンテナイメージのビルド、ServiceAccountを使ったArtifact RegistryへのイメージのPush、Cloud Runへのデプロイを行う
- Service Account:Github Actionで使用するアカウント。Artifact RegistryとCloud Runを操作するためのポリシーを付与する
- Artifact Registry:コンテナレジストリ
- Cloud Run:コンテナアプリケーションの実行
Google Cloudの設定
1. APIの有効化
Service Accountから操作するために、Cloud Run Admin APIとArtifact Registry APIを有効にします。
Cloud Run Admin APIとArtifact Registry APIを検索し、有効化します。


2. Service Accountの作成
Github Actionで使用するService Accountの作成を行います。
「サービスアカウントの作成」を押下します。

任意のアカウント名を入力します。

ポリシーの割り当てを行います。以下の3つのポリシーが必要です。
- Artifactry Registry管理者
- Cloud Run 管理者
- サービスアカウントユーザー
注意 今回は利便性のため強いそれぞれ強いポリシーを割り当てています。使用する環境に応じてポリシーを絞り込むことを検討してください。

今回はユーザにこのサービスアカウントのアクセスをさせる予定はないので、空欄にしておきます。

最後に「作成」ボタンを押下するとサービスアカウントが作成されます。
3. Service Accountのキー取得
Github ActionからService Accountにアクセスするために、Service Accountのキーを取得します。
サービスアカウントの詳細画面から、「新しいキーの作成」を押下します。

キータイプは「JSON」を選択し、「作成」ボタンを押下します。

キーが作成されPC上にダウンロードされます。後の手順で使用するので、無くさないように保管してください。

以上でGoogle Cloud側の設定は完了です。
次の記事では、サービスアカウントを使用したGithub Actionの設定を行います。
補足
本記事ではブラウザ上で設定操作を行いました。ただし、CloudサービスはアップデートによりUIが頻繁に変わります。
そのため、本手順を自動化したい場合には、インターフェースの変更が少ないgloud CLI(Google Cloudのコマンドラインツール)を使うことを検討ください。
おわりに
本記事では、Github ActionでCloud Runにデプロイする方法のうち、Google Cloud側の設定について解説しました。
次回は本記事で作成したサービスアカウントを使用したGithub Actionの設定について記述します。

通りすがりのラマ🦙
このブログでは個人開発で得た知見や興味のあるテクノロジーに関する記事を執筆します。 日々公開されている情報に助けられているので、自分が得た知見も世の中に還元していければと思います。 解決できないバグに出会うと、草を食べます。🦙🌿 経歴: 情報工学部→日系SIer→外資系IT企業 興味: Webアプリケーション開発、Webデザイン、AI 趣味: 個人開発、テニス