Cloud Runを理解しよう!初心者向け実践編
はじめに
こんにちは、クラウドエース株式会社の永井です。
前回の記事「Cloud Run を理解しよう!初心者向け基礎ガイド編」はもうお読みいただけましたか?
まだの方は、Cloud Run の基本的な仕組みや特徴について解説していますので、ぜひそちらをご覧いただいてから本記事を読み進めていただけると、より理解が深まります。
今回は 実践編 として、Cloud Run にアプリを実際にデプロイする方法を解説します。
メインは Cloud Shell(CLI)を使った手順ですが、補足として GitHub を使った GUI でのデプロイ方法についても紹介します。
Cloud Run を実際に触ってみたい方は、ぜひ最後までご覧ください!
作業対象
環境については、前回の記事で紹介した環境を前提とします。
| 前提条件 | 内容 | 確認方法 / 参考リンク |
|---|---|---|
| Google Cloud プロジェクト | 作成済みであること | プロジェクト作成手順 |
| 課金アカウント | 有効化されていること(無料枠のみ利用する場合でも必須) | 課金アカウントの有効化方法 |
| Cloud Run API | 有効化されていること | API ライブラリ |
| Cloud Build API | 有効化されていること | Cloud Build API を有効化 |
| gcloud CLI | インストール済みであること | Cloud SDK インストールガイド |
| gcloud 初期設定 | 初回のみ実行が必要 |
gcloud init コマンドを実行 |
設定の確認方法
- gcloud CLI がどのプロジェクトを参照しているかを確認
gcloud config get-value project
your-project-id
課金アカウントがリンクされているかの確認
gcloud beta billing projects describe $(gcloud config get-value project)
billingAccountName: billingAccounts/XXXXXX-XXXXXX-XXXXXX
billingEnabled: true
name: projects/your-project-id
projectId: your-project-id
billingEnabled: true なら OK です。
false や billingAccountName が表示されない場合は課金未設定です。
Cloud Run API が有効か確認
gcloud services list --enabled --filter="run.googleapis.com"
NAME TITLE
run.googleapis.com Cloud Run API
Cloud Build API が有効か確認
gcloud services list --enabled --filter="cloudbuild.googleapis.com"
NAME TITLE
cloudbuild.googleapis.com Cloud Build API
これらを全て確認できたら準備完了です!
下準備
まずは Cloud Run で公開する簡単なアプリケーションを準備しましょう。
ここでは、アクセスがあったときに HTML を表示する、シンプルな Web アプリケーションを作成します。
お使いのエディター(例:VS Code や Cursor)で、以下のフォルダ構成とファイルを作成してください:
hello/
├── Dockerfile
├── app.py
├── requirements.txt
└── templates/
└── index.html
app.py
まずは app.py を作成します。
このファイルでは、アクセスがあったときに index.html を表示する仕組みを作ります。
これは「アプリにアクセスしてきた人に、どんな画面を見せるか?」を決める部分です。
Cloud Run では、**「アクセスされたら、なにかを返す」**という動きが必要になります。
そのため、こうした「リクエストを受け取って返す」コードが必要です。
from flask import Flask, render_template
import os
app = Flask(__name__)
@app.route("/")
def hello():
return render_template("index.html")
if __name__ == "__main__":
port = int(os.getenv("PORT", 8080))
app.run(host="0.0.0.0", port=port)
requirements.txt
次に、アプリを動かすのに必要なライブラリを記載するファイル requirements.txt を作成します。
このファイルでは、どのライブラリ(このアプリで使っているツール)を使うかを Cloud Run に教えてあげます。
今回は Flask という Web 表示用のツールを使っているので、以下の内容を記載しましょう。
Flask==2.3.3
HTML ファイル
次に、実際にブラウザに表示されるページの中身を作成します。
これは、app.py から呼び出される HTML ファイルです。
先ほどのフォルダ構成の中にあった templates フォルダの中に、index.html という名前で新しくファイルを作成してください。
このファイルでは、ページの見た目や表示内容を記述します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>Cloud Run App</title>
</head>
<body>
<h1>Hello, Cloud Run!</h1>
<p>こんにちは世界</p>
</body>
</html>
Dockerfile
最後に Cloud Run にアプリをデプロイするには、アプリを動かすための「設計図(Dockerfile)」を用意する必要があります。
以下は、今回作成した Dockerfile の内容です。
# Python公式イメージを使用
FROM python:3.9-slim
# 作業ディレクトリを設定
WORKDIR /app
# 依存関係ファイルをコピー
COPY requirements.txt .
# 依存関係をインストール
RUN pip install --no-cache-dir -r requirements.txt
# アプリケーションのソースコードをコピー
COPY . .
# ポートを公開
EXPOSE 8080
# アプリケーションを実行(Gunicorn を使用)
CMD ["gunicorn", "--bind", "0.0.0.0:8080", "app:app"]
これで下準備は完了です!!
次は実際にこのアプリケーションを Cloud Run でデプロイしましょう。
実践
デプロイはとても簡単です。以下のコマンドを実行するだけです。
gcloud run deploy hello-app \
--source . \
--region asia-northeast1 \
--allow-unauthenticated
| コマンド | 説明 |
|---|---|
gcloud run deploy |
Cloud Run にサービスをデプロイ(公開)するためのコマンドです。 |
hello-app |
デプロイするアプリケーション(サービス)の名前です。任意で変更できます。 |
--source . |
今いるフォルダ(.)の中のソースコードを使ってビルドします。Dockerfile もこの中に必要です。 |
--region asia-northeast1 |
Cloud Run を動かすリージョン(地域)を指定します。ここでは東京リージョンを指定しています。 |
--allow-unauthenticated |
認証なしでアクセスできるようにします。これがないとログイン済みの Google アカウントしかアクセスできません。 |
実行結果
Done.
Service [hello-app] revision [hello-app-00001-lcb] has been deployed and is serving 100 percent of traffic.
Service URL: https://hello-app-*************.asia-northeast1.run.app
これが表示されたら、以下の URL を開いてください。
ページが表示されれば、デプロイは成功です!
次に、Google Cloud のコンソール画面を開き、左上の ハンバーガーメニュー(三本線のアイコン) をクリックします。

そこから 「Cloud Run」 を選択して、実際にアプリケーションがデプロイされているかを確認してみましょう。
Cloud Run の画面に hello-app が表示されていれば、Cloud Run への公開は完了です! 🎉
実践応用
ここまでで、Cloud Run にアプリをデプロイする基本的な流れ(CLI)を学びました。
この方法はとてもシンプルで強力ですが、「コードを更新するたびに毎回手元でコマンドを実行する」のは手間がかかる場合があります。
そこで、GitHub と連携して、GUI から設定する自動デプロイの方法をご紹介します。
この仕組みを使えば、GitHub にコードを push するだけで Cloud Run が自動で更新されるため、手作業でのデプロイが不要になります。
特に以下のようなケースでおすすめです:
- チームで開発しており、複数人がコードを更新する
- 更新頻度が高く、手動デプロイでは手間がかかる
- 確実に最新コードを反映したい
次のステップでは、この GitHub 連携による Cloud Run への自動デプロイ を設定します。
実践応用:GitHub 連携で Cloud Run にデプロイする
ここからは、GitHub に置いたソースコードを使って、Cloud Run へデプロイする方法を紹介します。
今回は、hello-app という名前の GitHub リポジトリがすでに作成されている前提で進めます。
このリポジトリには、先ほど CLI でデプロイしたアプリケーションのファイル(Dockerfile、app.py、requirements.txt、templates/index.html)が含まれているものとします。
先ほど開いた Cloud Run 画面の上部にある「リポジトリを接続」を選択し、Cloud Run サービスを作成する設定を開始します。
GitHub 連携による自動デプロイ設定
ここでは、GitHub リポジトリと Cloud Run を連携させ、コードを更新するたびに自動でデプロイされる仕組みを作ります。
今やっていること
この設定では、以下の流れを自動化します。
GitHub にコードを push
↓
Cloud Build が自動でコンテナをビルド
↓
Cloud Run に自動デプロイ
一度設定すれば、毎回手動で gcloud run deploy コマンドを実行する必要がなくなり、
コードの更新から公開までをスムーズに行えるようになります。
手順
1. Cloud Run からリポジトリを接続
まず、Cloud Run の画面右上にある 「リポジトリを接続」 をクリックします。

2. Cloud Build の設定を開く
表示された画面で 「Cloud Build の設定」 をクリックします。

3. ソースリポジトリと接続
GitHub アカウントを認証すると、接続可能なリポジトリ一覧が表示されます。
ここでは、事前に作成しておいた hello-app リポジトリを選択します。
4. ブランチとビルド設定の指定
続いて、ビルド設定を行います。
-
ブランチ:
^main$(main ブランチに push されたときのみデプロイ) - ビルドタイプ:「Dockerfile」を選択
-
ソースの場所:
Dockerfile(Dockerfile がリポジトリ直下にある場合)

設定後の動作イメージ
設定が完了すると、以下のように動作します。
- ローカルでコードを編集
- GitHub の
mainブランチに push - Cloud Build が自動でビルド
- Cloud Run に最新バージョンが自動デプロイされる
これで GitHub と Cloud Run の連携設定 は完了しました。
今後はコードを GitHub に push するだけで、自動的に Cloud Run に最新バージョンがデプロイされるようになります。
Cloud Run サービスの作成を完了する

これで Cloud Run の自動デプロイ設定が完了しました。
では、実際に main ブランチにプッシュしてデプロイを開始してください。
# 変更をステージング
git add .
# コミットメッセージを付けてコミット
git commit -m "デプロイ"
# main ブランチにプッシュ
git push origin main
プッシュが完了したら、数分待ってから Cloud Run のコンソール を開き、先ほど作成したサービスを選択してください。
表示された URL をクリックすると、アプリケーションが表示されます。
おわりに
これで、Cloud Run へのデプロイ方法(CLI と GitHub 連携) を一通り体験できました。
CLI を使えば素早くデプロイでき、GitHub 連携を使えばコードを push するだけで自動的に最新のアプリが公開されます。
特にチーム開発や更新頻度の高いプロジェクトでは、GitHub 連携による自動デプロイが非常に便利です。
今回学んだ手順をベースに、ぜひご自身のプロジェクトでも活用してみてください。
Discussion