SIMPLE

Github ActionでCloud Runにデプロイ(前編)

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

通りすがりのラマ🦙
24 January, 2025

サムネイルはUnsplashMahdi 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を検索し、有効化します。

Cloud Run Admin APIの検索画面
Cloud Run Admin APIの検索画面
Artifact Registry 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 趣味: 個人開発、テニス