FlaskアプリをGoogle Cloud Runにデプロイする方法を完全ガイド!初心者でもできるクラウド公開
生徒
「PythonのFlaskで作ったアプリを、友達にも見てもらえるようにインターネットに公開したいです。Google Cloud Runというものが良いと聞いたのですが、難しいですか?」
先生
「Google Cloud Runは、プログラムをコンテナという箱に詰めて預けるだけで、Googleが自動で動かしてくれるとても便利なサービスです。手順を追えば、初心者の方でも公開できますよ。」
生徒
「コンテナ?デプロイ?専門用語が多くて不安ですが、具体的に何をすればいいのでしょうか?」
先生
「まずは、アプリをインターネットという大海原へ送り出すための準備から始めていきましょう!」
1. FlaskとGoogle Cloud Runの基礎知識
まずは今回使う道具について知っておきましょう。Flask(フラスク)とは、Pythonという言葉を使ってWebサイトを作るための最小限の道具セットです。そして、Google Cloud Run(グーグル・クラウド・ラン)は、Googleが提供している強力なコンピューターを借りて、自分の作ったプログラムを世界中に公開する場所のことです。
ここで重要なのがデプロイという言葉です。これは、自分の手元のパソコンで作ったプログラムを、クラウドサーバー(インターネット上の大きなコンピューター)に移して、誰でも見られる状態にすることを言います。Google Cloud Runの最大の特徴は、使った分だけ料金がかかる仕組みなので、誰も見ていない時は料金がほぼゼロになるという、お財布にも優しい点です。
2. 公開するためのFlaskプログラムを準備しよう
まずは、公開するための簡単なプログラムを用意しましょう。今回は「こんにちは!クラウドの世界へようこそ」と表示するだけのシンプルなものを作ります。以下のコードを「main.py」という名前で保存してください。
import os
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "こんにちは!Google Cloud RunでFlaskが動いています!"
if __name__ == "__main__":
# Cloud Runでは環境変数PORTで指定された番号で待つ必要があります
port = int(os.environ.get("PORT", 8080))
app.run(host="0.0.0.0", port=port)
ここでポイントになるのが、最後の部分です。自分のパソコンで動かすときは適当な番号で良いのですが、Google Cloud Runという大きなホテルに泊めてもらうときは、Googleから「この番号の部屋(ポート)を使ってね」と指定されます。そのため、os.environ.getという命令を使って、指定された番号を受け取れるようにしています。
3. 依存関係を伝えるrequirements.txtの作成
Googleのコンピューターは、あなたのパソコンに何がインストールされているか知りません。「このアプリを動かすにはFlaskが必要です」というリストを渡してあげる必要があります。これがrequirements.txtというファイルです。
メモ帳などで新しいファイルを作り、以下の内容を書き込んで保存してください。
Flask==3.0.0
gunicorn==21.2.0
ここで登場したGunicorn(グニコーン)は、本番環境でFlaskを安定して動かすための力持ちな助っ人です。練習用の機能ではなく、プロが使う仕組みで動かすのがデプロイの基本となります。このリストを一緒に送ることで、Google側で自動的に必要な道具を揃えてくれます。
4. 魔法の箱を作るDockerfileの書き方
次に、アプリを入れるための専用の箱(コンテナ)の設計図を作ります。これをDockerfile(ドッカーファイル)と呼びます。この設計図があれば、どんな環境でも同じようにアプリを動かすことができます。拡張子をつけずに「Dockerfile」という名前で保存してください。
# 1. Pythonが入った土台を準備します
FROM python:3.11-slim
# 2. 作業する場所を決めます
WORKDIR /app
# 3. 必要な道具リストをコピーしてインストールします
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 4. プログラム本体をコピーします
COPY . .
# 5. アプリを起動する命令を書きます
CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "8", "main:app"]
初心者の方にとって、この設計図は少し難しく見えるかもしれません。しかし、内容は「Pythonを準備して、道具をインストールして、最後にアプリを起動してね」という順番の指示書になっているだけです。これをGoogleに渡すと、彼らはその通りに完璧な実行環境を組み立ててくれます。
5. Google Cloud SDKを自分のパソコンに入れよう
自分のパソコンからGoogleのクラウドを操作するために、Google Cloud SDK(エスディーケー)というツールをインストールする必要があります。これは、魔法使いの杖のようなもので、これを使うとコマンド(命令文)一つで複雑な作業ができるようになります。
公式サイトから自分のパソコン(WindowsやMac)に合ったものをダウンロードして、画面の指示に従って進めましょう。インストールが終わったら、黒い画面(ターミナルやコマンドプロンプト)で以下の命令を入力して、自分のGoogleアカウントと連携させます。
gcloud auth login
ブラウザが立ち上がり、「ログインしますか?」と聞かれるので承認してください。これで、あなたのパソコンとGoogleのクラウドが一本の線でつながりました。
6. プロジェクトの作成と初期設定
Google Cloudの世界では、すべての作業をプロジェクトという単位で管理します。会社でいう「企画」や「部署」のようなものです。管理画面から新しいプロジェクトを作成し、その名前(プロジェクトID)をメモしておきましょう。
次に、先ほどの黒い画面で「今からこのプロジェクトで作業するよ」と教えてあげます。以下のコマンドを入力してください。[PROJECT_ID]の部分は、あなたが作ったプロジェクトの名前に書き換えてくださいね。
gcloud config set project [PROJECT_ID]
さらに、Google Cloud Runという機能を使うためのスイッチをオンにする必要があります。これを「APIを有効にする」と言いますが、最初は少し時間がかかるかもしれません。でも大丈夫、一度オンにすれば次からはスムーズに進みます。
7. いよいよデプロイ!コマンドを実行しよう
準備がすべて整いました!いよいよ、あなたのFlaskアプリをGoogle Cloud Runへ送り出します。プログラムやDockerfileがあるフォルダに移動して、以下の魔法の言葉を入力してください。
gcloud run deploy --source .
途中で「サービス名はどうする?」「どの地域(リージョン)のサーバーを使う?」「誰でも見られるようにする?」と英語で聞かれます。サービス名はそのままエンターキーでOKです。地域は日本に近い「asia-northeast1(東京)」などを選びましょう。最後の質問には「y」と答えることで、インターネット上の誰もがあなたのサイトを見られるようになります。
しばらく待つと、「Service [アプリ名] has been deployed」と表示され、最後に「URL: https://...」というリンクが出てきます。これをクリックしてみましょう!
8. 実行結果を確認して動作テストをしよう
URLをクリックして、ブラウザに「こんにちは!Google Cloud RunでFlaskが動いています!」と表示されたら大成功です。あなたのアプリは、今まさにGoogleの巨大なデータセンターで動いています。世界中のどこからでも、そのURLにアクセスすれば同じ画面が見られます。
もしエラーが出てしまった場合は、黒い画面のメッセージをよく読んでみましょう。ファイル名が間違っていないか、スペルミスがないかを確認するだけで解決することがほとんどです。プログラムを修正したときは、もう一度先ほどのデプロイコマンドを打つだけで、自動的に中身が最新の状態に更新されます。
# 修正してもう一度送るだけ!
gcloud run deploy --source .
9. クラウド連携でさらに広がる可能性
無事に公開ができたら、次はもっと高度なことにも挑戦できます。例えば、Cloud Storageという場所に写真を保存したり、Cloud SQLという場所に本格的なデータを保管したりすることもできます。FlaskとGoogle Cloudを連携させれば、何万人ものユーザーが使う大規模なサービスも夢ではありません。
クラウドのすごいところは、アクセスが増えてもGoogleが勝手にパワーを補強してくれる点です。初心者の方が一人でサーバーのメンテナンスをするのは大変ですが、Google Cloud Runならその手間をすべて肩代わりしてくれます。あなたはプログラムを楽しく書くことだけに集中できるのです。
今回の手順は、これからプログラミングを続けていく上での大きな一歩になります。自分の書いたコードがインターネットという世界共通の舞台で動く感動を、ぜひ何度も味わってくださいね。パソコン操作に慣れていない方でも、この手順を繰り返し練習すれば、必ず自由自在にアプリを公開できるようになりますよ!