2021/05/27

AWSのFlaskとは?その使用条件や設定方法について解説!

 
  

AWSのFlaskとは?


AWSのFlaskとは、簡単にウェブアプリケーションを作成できるPython上のオープンソースフレームワークのことを指します。このフレームワークによって、アプリを作る際の様々な動作のパッケージングを使用することができます。

AWSのFlaskの特徴


PythonにはFlask以外にもフレームワークが存在します。なかでもFlaskはどのような特徴を持ったフレームワークなのか、ここでは詳しく解説していきます。

特徴①動作の軽さ

Flaskはマイクロフレームワークであるため、動作が軽いです。必要最低限なシステムしか持ち合わせていないため、単純なアプリや管理画面の作成などには特に役立ちます。

特徴②カスタマイズできる

Flaskはカスタマイズ性に非常に長けています。Djangoのような最初からあるデータバースを使うのではなく、細かいカスタマイズをして使えることがFlaskの魅力です。

特徴③起動までが早い

Flaskを使いたいとなれば、インストールして数行のコードを入力、ホストの指定を行えば、すぐに起動し作業を始めることができます。面倒なセットアップがいらないという点は、開発者にとっても魅力的な特徴です。

AWSを使うための前提条件


それでは、AWSのFlaskを使用するために必要な前提条件を説明していきます。まずはAWSのElastic Beanstalk環境上でオペレーション、コンソールについての知識があることが前提となります。

さらに、Python 3.6以降を必要とし、それに対応したバージョンのElastic Beanstalkを使用するようにしてください。

AWSのFlaskの設定方法


ここでは、AWSのFlastを実際に使うための設定方法や流れなどを紹介していきます。仮想環境の設定やアプリの作成、アプリのデプロイなどにはどのようなコードが必要なのか確認しましょう。

仮想環境の設定

AWSのFlaskで仮想環境を設定する流れを見ていきましょう。

最初に、プロジェクトディレクトリィを作成します。

~$ mkdir eb-flask
~$ cd eb-flask

次に、virtという名前の仮想環境をアクティブ化します。

~/eb-flask$ virtualenv virt
~$ source virt/bin/activate
(virt) ~/eb-flask$

pip install で Flask をインストールします。

(virt)~/eb-flask$ pip install flask==1.1.2

pip freeze でライブラリを表示させます。

(virt)~/eb-flask$ pip freeze
click==7.1.2
Flask==1.1.2
itsdangerous==1.1.0
Jinja2==2.11.3
MarkupSafe===1.1.1
Werkzeug==1.0.1

requirements.txt という名前のファイルに保存します。

(virt)~/eb-flask$ pip freeze > requirements.txt

これで、仮想環境の設定は完了です。

アプリの作成

AWSのFlaskでアプリを作成する流れを見ていきましょう。

コードを見つけやすくするためにapplication.py という名前を使い、新しいテキストファイルを作ります。

from flask import Flask

# print a nice greeting.
def say_hello(username = "World"):
    return 'Hello %s!\n' % username

# some bits of text for the page.
header_text = '''
    \n EB Flask Test \n'''
instructions = '''
    Hint: This is a RESTful web service! Append a username
    to the URL (for example: /Thelonious) to say hello to
    someone specific.\n'''
home_link = 'Back\n'
footer_text = '\n'

# EB looks for an 'application' callable by default.
application = Flask(__name__)

# add a rule for the index page.
application.add_url_rule('/', 'index', (lambda: header_text +
    say_hello() + instructions + footer_text))

# add a rule when the page is accessed with a name appended to the site
# URL.
application.add_url_rule('/', 'hello', (lambda username:
    header_text + say_hello(username) + home_link + footer_text))

# run the app.
if __name__ == "__main__":
    # Setting debug to True enables debug output. This line should be
    # removed before deploying a production app.
    application.debug = True
    application.run()

application.py を実行します。

(virt) ~/eb-flask$ python application.py
 * Serving Flask app "application" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 313-155-123

これで、アプリの作成は完了です。

アプリのデプロイ

AWSでFlaskのアプリをデプロイする流れを見ていきましょう。

最初に、eb init コマンドで EB CLI リポジトリを初期化します。

~/eb-flask$ eb init -p python-3.6 flask-tutorial --region us-east-2
Application flask-tutorial has been created.

次に、eb initコマンドを再度実行して、アプリ実行中のEC2にSSHで接続させます。

~/eb-flask$ eb init
Do you want to set up SSH for your instances?
(y/n): y
Select a keypair.
1) my-keypair
2) [ Create new KeyPair ]

最後に、eb create を使用して、環境にアプリをデプロイします。

~/eb-flask$ eb create flask-env

これで、アプリのデプロイは完了です。

実際にAWSのFlaskを使ってみよう!


今回は、AWSのFlaskについて解説しました。

Flaskは動作が軽く、カスタマイズ性があり、起動が早いという特徴を持っているため、効率的な作業を行うことができるようになります。

ぜひこの記事を参考に実際にAWSのFlaskを使ってみてください。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】