カテゴリ: Flask 更新日: 2026/02/13

FlaskアプリをAWSにデプロイするための準備手順まとめ!初心者向け完全ガイド

FlaskアプリをAWSにデプロイするための準備手順まとめ
FlaskアプリをAWSにデプロイするための準備手順まとめ

先生と生徒の会話形式で理解しよう

生徒

「自分で作ったFlaskのWebアプリを、世界中の人に見てもらえるようにしたいです!AWSというものを使えばいいと聞いたのですが、何を準備すればいいですか?」

先生

「自分のパソコンの中だけで動いているアプリを、インターネットという大きな海に送り出す作業をデプロイと言います。AWSは、Amazonが提供しているとても強力なコンピューターの貸し出しサービスのことですよ。」

生徒

「なんだか難しそうですね。パソコン初心者でも準備できますか?」

先生

「大丈夫です。一つずつ順番に準備を進めていけば、必ずできるようになります。まずはデプロイに必要な道具を揃えるところから始めましょう!」

1. FlaskとAWSの基本を理解しよう

1. FlaskとAWSの基本を理解しよう
1. FlaskとAWSの基本を理解しよう

まずは、今回使う道具の名前を覚えましょう。Flask(フラスク)とは、Pythonというプログラミング言語を使って、WebサイトやWebアプリを簡単に作るための道具箱のようなものです。非常に軽量で、初心者の方でも扱いやすいのが特徴です。

次にAWS(エーダブリューエス)です。これは「Amazon Web Services」の略で、インターネットを通じてサーバー(24時間動いている性能の良いパソコンのようなもの)を借りることができるサービスです。自分のパソコンの電源を切っても、AWS上のサーバーが動いていれば、世界中の人があなたの作ったアプリにいつでもアクセスできるようになります。

デプロイとは、自分の手元のパソコンで作ったプログラムを、このAWSという遠くにあるレンタルサーバーにコピーして、そこで動くように設定することを指します。これを料理に例えると、自宅のキッチンで考えたレシピ(プログラム)を、大きなお店の厨房(サーバー)に持ち込んで、お客さんに提供できる状態にすることだと言えます。

2. AWSアカウントの作成とログイン

2. AWSアカウントの作成とログイン
2. AWSアカウントの作成とログイン

デプロイを始めるための第一歩は、AWSのアカウントを作成することです。AWSを利用するには、まず公式サイトから登録を行う必要があります。登録にはメールアドレスのほかに、本人確認のための電話番号や、利用料金を支払うためのクレジットカード情報が必要になります。

ここで「お金がかかるのでは?」と不安になるかもしれませんが、AWSには無料利用枠という仕組みがあります。新しくアカウントを作ってから12ヶ月間は、一部の機能を無料で使えるようになっています。初心者の方が練習で使う範囲であれば、この無料枠の中で十分に収まることが多いので安心してください。

登録が終わったら、AWSマネジメントコンソールという管理画面にログインします。ここは、これから借りるサーバーの設定をしたり、動いている様子を確認したりするための、いわばコントロールパネルのような場所です。ブラウザでお気に入り登録しておくと便利です。

3. Python環境の最終チェックと簡単なアプリ作成

3. Python環境の最終チェックと簡単なアプリ作成
3. Python環境の最終チェックと簡単なアプリ作成

デプロイの準備をする前に、まずは自分のパソコンで動く簡単なFlaskアプリを用意しましょう。Pythonがインストールされていることを確認し、Flaskというライブラリを取り込みます。ここでは、画面に「Hello AWS!」と表示するだけのシンプルなプログラムを作ってみます。


from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello AWS! これはFlaskで作ったアプリです。"

if __name__ == "__main__":
    app.run()

上記のコードを「app.py」という名前で保存してください。プログラムの中で使われている@app.route("/")という部分は、「サイトのトップページにアクセスしたときに、次の命令を実行してね」という合図です。初心者のうちは、この呪文を書くことで画面が表示されると覚えておけば問題ありません。

4. 仮想環境の構築と依存ファイルの書き出し

4. 仮想環境の構築と依存ファイルの書き出し
4. 仮想環境の構築と依存ファイルの書き出し

WebアプリをAWSへ持っていくとき、一番困るのが「自分のパソコンでは動いたのに、AWSでは動かない」という現象です。これを防ぐために、仮想環境(かそうかんきょう)という仕組みを使います。これは、パソコンの中にアプリ専用の小さな部屋を作るイメージです。その部屋の中で使っている道具をリストアップすることで、AWS上でも全く同じ環境を再現できます。

具体的には、まずターミナルやコマンドプロンプトという、文字を入力してパソコンを操作する画面を開きます。そこで以下のコマンドを入力して、アプリに必要なライブラリのリストを作成します。このリストをrequirements.txt(リクワイアメンツ・テキスト)と呼びます。


pip freeze > requirements.txt

このファイルには「Flaskのバージョンは何番を使っています」といった情報が書き込まれます。AWSはこのファイルを読み取って、自分の中に同じバージョンのFlaskを自動でインストールしてくれるのです。この準備を忘れると、AWSが「Flaskなんて知らないよ!」とエラーを出して止まってしまいます。

5. Gunicornの導入と設定ファイルの準備

5. Gunicornの導入と設定ファイルの準備
5. Gunicornの導入と設定ファイルの準備

Flaskに標準で付いている動かす機能は、実は「練習用」です。たくさんの人が同時にアクセスするインターネット上(AWS)で動かすには、もっとタフで力持ちなWSGIサーバーというものが必要です。その代表的なものがGunicorn(グニコーーン)です。

AWSでFlaskを動かす際は、このGunicornを仲介役として使うのが一般的です。以下のコードは、設定ファイルの一部として使われることが多い、非常にシンプルな実行コマンドの例です。これを直接打ち込むのではなく、AWSの設定画面や設定ファイルに記述することになります。


# AWS上の環境で実行されるコマンドのイメージ
# app.pyの中にあるappという名前のインスタンスを動かします
gunicorn --bind 0.0.0.0:8000 app:app

このように、Flask本体だけでなく、本番環境で動かすための「助っ人」も一緒に連れていく準備が必要になります。これもpip install gunicornを実行して、先ほどのリストに追加しておきましょう。

6. Gitを使ったプログラムの管理

6. Gitを使ったプログラムの管理
6. Gitを使ったプログラムの管理

AWSにプログラムを届けるための「運び屋」として、Git(ギット)というツールを使います。Gitはプログラムの変更履歴を記録する道具ですが、これをオンライン上の倉庫であるGitHub(ギットハブ)と連携させることで、自分のパソコンからAWSへ簡単にプログラムを転送できるようになります。

まず、自分のプログラムが置かれているフォルダでGitを使えるように初期化します。次に、そのフォルダ内のファイルをすべてGitに登録します。この作業を「コミット」と言います。初心者の方にとっては、ファイルを箱に詰めて、宛先を書くような作業だと思ってください。以下の手順で行います。


git init
git add .
git commit -m "初めてのデプロイ準備"

これらのコマンドを打つことで、プログラムがAWSへ旅立つ準備が整います。パソコンを触ったことがない人にとっては呪文のように見えるかもしれませんが、順番に入力するだけで大丈夫です。Gitを使うことで、もしプログラムを書き間違えて動かなくなっても、前の状態にすぐ戻せるというメリットもあります。

7. AWS Elastic Beanstalkの準備

7. AWS Elastic Beanstalkの準備
7. AWS Elastic Beanstalkの準備

AWSにはたくさんの機能がありますが、初心者がFlaskアプリをデプロイするのに最もおすすめなのがElastic Beanstalk(エラスティック・ビーンスターク)です。これは、サーバーの設定や、アプリを動かすための複雑な調整を自動でやってくれる魔法のようなサービスです。通称「豆の木」と呼ばれています。

通常、サーバーをゼロから設定するにはLinuxという専門的なOSの知識が必要ですが、Beanstalkを使えば「Pythonのアプリを動かしたいです」と伝えるだけで、最適な環境を自動で作ってくれます。準備として、AWSの管理画面から「Elastic Beanstalk」を検索し、「アプリケーションの作成」というボタンを探しておきましょう。

また、これを利用するための補助ツールとして「EB CLI」という道具を自分のパソコンにインストールしておくと、コマンド一つでデプロイができるようになり、非常に便利です。準備段階では、まずAWSの画面構成に慣れておくことが大切です。

8. データベース連携が必要な場合の準備

8. データベース連携が必要な場合の準備
8. データベース連携が必要な場合の準備

もしあなたのアプリが、ユーザーの情報を保存したり、掲示板のような機能を持っていたりする場合、データを保存する場所が必要です。これをデータベースと呼びます。AWSでは、RDS(アールディーエス)というデータベース専用のサービスがあります。

Flaskからデータベースに接続するためには、SQLAlchemyなどのライブラリを準備する必要があります。以下のコードは、Flaskでデータベースを扱うための設定の書き方です。デプロイ前には、こうした接続情報も整理しておく必要があります。


from flask_sqlalchemy import SQLAlchemy

# データベースの場所を指定する設定
# デプロイ時はAWSのRDSのアドレスに書き換えます
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)

最初は自分のパソコン内(sqlite)で動かしていても、AWSに持っていくときは、AWSのデータベースを見るように設定を少し変える必要があります。このように「場所によって設定を切り替える」という考え方も、デプロイの重要な準備の一つです。

9. セキュリティと公開設定の確認

9. セキュリティと公開設定の確認
9. セキュリティと公開設定の確認

最後に、安全にアプリを公開するための準備をしましょう。AWSのサーバーには、外からのアクセスを許可したり拒否したりするセキュリティグループという門番のような仕組みがあります。デフォルトでは誰も入れないようになっていることが多いので、Webサイトを表示するための「80番ポート」や「443番ポート」を開放する設定が必要です。

また、プログラムの中にパスワードや秘密の鍵を直接書いてはいけません。万が一、プログラムが他人の目に触れたときに、悪用される危険があるからです。これらは環境変数(かんきょうへんすう)という仕組みを使って、プログラムの外から読み込むように準備します。

こうしたセキュリティの準備をしっかり行うことで、安心して世界中にあなたのWebアプリを届けることができます。準備が整ったら、いよいよAWSの管理画面からファイルをアップロードするか、コマンドを使ってデプロイを実行するだけです。あなたの挑戦が成功することを応援しています!

カテゴリの一覧へ
新着記事
New1
Flask
FlaskアプリをAWS Lambdaでサーバーレス化する方法を完全ガイド!初心者でもできるデプロイ手順
New2
Python
Pythonで複数の例外をまとめてキャッチする方法を完全解説!初心者でもわかる例外処理入門
New3
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
New4
Django
Djangoバリデーションの種類まとめ|フォーム・モデル・フィールドレベルの違いを初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.4
Java&Spring記事人気No4
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.5
Java&Spring記事人気No5
Python
Pythonのコーディング規約(PEP8)とは?初心者でもわかる書き方の基本ルール
No.6
Java&Spring記事人気No6
Flask
Flaskでフロントエンドからファイルアップロードを行う基本手順【初心者向け】
No.7
Java&Spring記事人気No7
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方
No.8
Java&Spring記事人気No8
Django
DjangoのincludeでURLを分割管理する方法を完全ガイド!初心者でも迷わないURLルーティング入門