Flaskをクラウド環境で動かす基本!初心者向けに全体像を徹底解説
生徒
「先生、自分のパソコンで作ったFlaskのアプリを、世界中の人に見てもらうにはどうすればいいですか?」
先生
「それは『クラウド』という場所にアプリを引っ越しさせるのが一番の方法ですよ。」
生徒
「クラウド……空にある雲のことですか?難しそうですが、初心者でもできますか?」
先生
「大丈夫です!クラウドはインターネット上にある巨大なレンタルパソコンのようなものです。全体像をゆっくり解説しますね。」
1. クラウド環境とは?アプリの「新しい家」
自分のパソコンで作ったFlaskのプログラムは、そのパソコンの電源を切ってしまうと、他の人は見ることができません。そこで必要になるのがクラウド(Cloud)です。
クラウドとは、インターネット越しに利用できる、専門の会社が管理している高性能なコンピューターのことです。例えるなら、自分の部屋に置いてある私物(自分のPC)ではなく、24時間365日いつでも誰でも利用可能な「巨大なレンタルマンション」の一部を借りるようなイメージです。クラウドにFlaskアプリを置くことで、世界中の人がいつでもあなたのサイトにアクセスできるようになります。
2. なぜFlaskをクラウドで動かすのか?メリットを解説
クラウドを使う最大の理由は、安定性と利便性です。自分でサーバー(外部に情報を公開するためのコンピューター)を自宅に用意するのは、電気代や火災のリスク、専門知識が必要で大変です。クラウドなら、以下のようなメリットがあります。
- 24時間稼働: 自分が寝ている間も、クラウド会社がアプリを動かし続けてくれます。
- 拡張性(スケーラビリティ): サイトが有名になってアクセスが急増しても、ボタン一つでコンピューターのパワーを増強できます。
- 管理が楽: 機械の故障修理などはすべてクラウド会社にお任せ。あなたはアプリの開発だけに集中できます。
3. クラウドサービスの代表的な種類(AWS、GCP、Azure)
クラウドを提供している会社はたくさんありますが、特に有名な「三大クラウド」を紹介します。これらは世界中のプログラミング現場で使われているキーワードです。
- AWS(Amazon Web Services): Amazonが提供する、世界シェアNo.1のクラウドです。機能が豊富で、どんなことでもできます。
- GCP(Google Cloud Platform): Googleが提供しており、AIやデータ分析に強いのが特徴です。
- Azure(アジュール): Microsoftが提供しており、会社で使うWindowsなどのシステムと相性が良いです。
初心者のうちは、これら以外にも「Render」や「PythonAnywhere」といった、より簡単にFlaskを動かせるサービスから始めるのもおすすめです。
4. クラウドに持っていくための「荷造り」コード
クラウドにアプリを引っ越しさせる前に、まずは自分のパソコンで「どこでも動く」ように準備しましょう。まずは一番シンプルなFlaskのコードを書いてみます。
from flask import Flask
# Flaskという道具を準備します
app = Flask(__name__)
# トップページにアクセスした時の動きを決めます
@app.route('/')
def hello():
return "クラウドの世界へようこそ!"
if __name__ == '__main__':
# クラウドで動かす時は、ポート番号などを環境に合わせるのが一般的です
app.run()
このプログラムが、クラウドという新しい家で元気に動く主役になります。
5. 依存関係のリスト作成(requirements.txt)
クラウドのコンピューターは、最初は中身が空っぽです。あなたのアプリが動くために「Flaskという道具が必要だよ」と教えてあげる必要があります。その指示書がrequirements.txtという名前のファイルです。
以下のコマンド(パソコンへの命令文)を打つことで、この指示書を自動で作ることができます。
pip freeze > requirements.txt
中身はこんな感じのテキストが書かれます。これが引っ越しの「持ち物リスト」になります。
Flask==3.0.0
Werkzeug==3.0.1
6. クラウド環境での設定の工夫
自分のパソコンとクラウドでは、少しだけ設定を変えたい場合があります。例えば、デバッグモード(エラーの詳細を表示する機能)は、自分のパソコンでは便利ですが、クラウドで公開する時はセキュリティ上オフにしなければなりません。
import os
from flask import Flask
app = Flask(__name__)
# 実行環境に合わせて設定を切り替える例
# 環境変数という場所から設定を読み取ります
env_type = os.getenv('APP_ENV', 'local')
@app.route('/status')
def status():
return f"現在は {env_type} 環境で動いています"
if __name__ == '__main__':
# ローカル(自分のPC)の時だけデバッグモードをオンにする
is_debug = (env_type == 'local')
app.run(debug=is_debug)
7. デプロイとは?クラウドへの「お引っ越し」作業
プログラムや設定ファイルが揃ったら、いよいよクラウドへ送る作業を行います。これをプログラミング用語でデプロイ(Deploy)と言います。日本語で「配置する」という意味です。
デプロイには、主に「GitHub(ギットハブ)」というプログラム共有サービスを介して行う方法が一般的です。あなたがGitHubにプログラムを保存すると、クラウド側がそれを察知して、自動的にアプリを最新の状態に更新してくれる仕組みがあります。これを使いこなすと、まるで魔法のように世界中のサイトが更新されていきます。
8. クラウドで動かす時の注意点とコスト
クラウドは非常に便利ですが、注意点もあります。一番は「お金(コスト)」です。多くのクラウドサービスには無料枠がありますが、設定を間違えて高性能なコンピューターを借り続けてしまうと、高額な請求が来ることがあります。
また、クラウド上ではプログラムが「使い捨て」のように扱われることが多いです。アプリを再起動すると、アプリ内で新しく保存した画像ファイルなどが消えてしまうこともあります。そのため、画像やデータはクラウド専用の「倉庫(ストレージ)」や「データベース」に別に保存するのがプロのやり方です。
9. アプリが動いているか確認する簡単なテスト
最後に、クラウドに置いたアプリが正常に動いているか確認するためのページを作っておくと安心です。これを「ヘルスチェック(健康診断)」と呼びます。
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/health')
def health_check():
# アプリが元気であることをJSONという形式で返します
return jsonify({"status": "ok", "message": "I am healthy!"})
@app.route('/user/<name>')
def greet_user(name):
# 名前を受け取って挨拶する、少し発展的な機能
return f"こんにちは、{name}さん!クラウドへようこそ。"
if __name__ == '__main__':
app.run()
クラウド上でこの /health ページにアクセスして「ok」と出れば、あなたのお引っ越しは大成功です!