サイトアイコン EASY2DIGITAL

AWS EC2にFlaskアプリをデプロイする究極のガイド

この記事は、FlaskアプリをAWS EC2で無料でデプロイする究極でジューシーでクリーミーなガイドについてです。この記事の終わりまでに、利用できるリソースがもう1つ増え、最も重要なことは無料であることになります。

目次:AWS EC2にFlaskアプリをデプロイする究極のガイド

Ubuntu 22.4 LTSを使用してAWS EC2フリーティアアカウントを作成する

世界中で最高のクラウドエコシステムの1つであるAWSアカウントにサインアップするのは驚くほど簡単で、電子メールを使用して1つの支払いカードを追加するだけです。直接宮崎牛を食べるのと同じくらい簡単です。その後、EC2を検索してインスタンスを作成する必要があります。詳細は以下のとおりです。

Ubuntu上でSSHに接続する

EC2インスタンスを作成しました。手順は薄く、明確で、軽いです。困難なことはありません!その後、ローカルマシンを使用して、インスタンスに直ちに接続する必要があります。いつものように、Mac OSを例に取ります。

両方のコマンドは、インスタンス接続ページからコピーできます。行って、探索してください!この記事よりも更新された機能を見つけることができるかもしれません。AWSは、競合他社と比較して、より脂っこく、油っこくなる傾向があります。

EC2にFlaskアプリを追加する

ここまで来たら、通常の方法でFlaskを設定してアプリを展開するだけです。以下の手順に従ってください:

$ sudo apt-get update

$ sudo apt-get install python3-venv

// ディレクトリを作成する

$ mkdir lovely

$ cd lovely

// 仮想環境を作成する

$ python3 -m venv venv

// 仮想環境をアクティブにする

$ source venv/bin/activate

// Flaskをインストールする

$ pip install Flask

$ sudo nano app.py

// 以下をapp.pyに追加する

from flask import Flask

app = Flask(**name**)

@app.route('/')

def lovely():

return 'Lovely!!!'

if __name__ == "__main__":

app.run()

Gunicorn WSGIサーバーをアクティブにしてFlaskアプリを実行する

Flaskを実行することは、実際にはWerkzeughの開発WSGIサーバーを実行することであり、このサーバーはWebサーバーからのリクエストを転送します。

Werkezeugは開発用にしかないため、本番用にはWSGIサーバーとしてGunicornを使用する必要があります。以下の手順に従ってください:

$ pip install gunicorn

$ gunicorn -b 0.0.0.0:8000 app:app .

Gunicornでシステム設定を更新する

SystemdはLinuxのブートマネージャーです。EC2が何らかの理由で再起動する場合、gunicornを再起動するために使用します。

/etc/systemd/systemフォルダに.serviceファイルを作成し、システムが再起動した場合にgunicornに何が起こるか指定します。

systemdユニットファイルに3つのパーツを追加します。Unit、Service、Installです。

$ sudo nano /etc/systemd/system/lovely.service

[Unit]

Description=Gunicorn instance for a simple lovely app

After=network.target

[Service]

User=ubuntu

Group=www-data

WorkingDirectory=/home/ubuntu/lovely

ExecStart=/home/ubuntu/lovely/venv/bin/gunicorn -b localhost:8000 app:app

Restart=always

[Install]

WantedBy=multi-user.target

$ sudo systemctl daemon-reload

$ sudo systemctl start lovely

$ sudo systemctl enable lovely

Nginxウェブサーバーを実行して、Gunicornへのルートリクエストを受け入れます

最後に、Nginxをリバースプロキシとして設定して、ユーザーからのリクエストを受け入れ、gunicornにルーティングします。 

$ sudo systemctl start nginx

$ sudo systemctl enable nginx

$ sudo nano /etc/nginx/sites-available/default

upstream lovely {

   server 127.0.0.1:8000;

}

# Some code above

location / {

   proxy_pass http://lovely;

}

Route53を使用せずにドメインをEC2インスタンスに接続する

美味しそうで繊細でおいしいですね?基本的に、アプリはすでにオンラインで動作しています。ただし、まだ進めることがあるため、ドメインに接続する必要があります。

Route 53は、最も一般的に言及されているソリューションの1つですが、無料ではありません。実際、可能な無料であることができます。行く方法は次のとおりです。

そして、完成です!非常においしい

SSL証明書を設定する

SSL証明書プロバイダーを選択することは、無料であろうと有料であろうと、多くのオプションがあるため、驚くことができます。このピースをお勧めするのは、無料のAlibabacloud SSL証明書を使用してアプリに追加することです。何を待っているの?行こう!

server {

    listen 80;

    server_name [example.com](http://example.com/);

    rewrite ^(.*)$ https://$server_name$1 permanent;

}

server {

    listen       443 ssl;

    server_name your domain;

    #  ssl on;

    ssl_certificate /etc/nginx/ssl/your digital certificate body file name.pem;

    ssl_certificate_key /etc/nginx/ssl/your digital certificate key file.key;

    ssl_session_timeout 5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

    ssl_prefer_server_ciphers on;

    location / {

        root /data/web/;

        index index.jsp index.html index.htm;

    }

AWS EC2でFlaskアプリをデプロイするための完全なスクリプトとコマンド

第 73 章– Ultimate Guide to Deploy Flask App on AWS EC2に興味がある場合は、「第 73 章 + AWS EC2」というメッセージを追加してニュースレターに登録してください。スクリプトを直ちにメールボックスに送信します。

第 73 章– AWS EC2にFlaskアプリをデプロイする究極のガイドをお楽しみいただければ幸いです。もしそうであれば、以下のいずれかをサポートしていただきますようお願い申し上げます。

よくある質問:

Q1: AWSとは何ですか?

A: AWSはAmazon Web Servicesの略で、クラウドコンピューティングおよび関連サービスを提供するAmazonのサービスです。

Q2: AWSの主なサービスには何がありますか?

A: 主なAWSサービスには、EC2(Elastic Compute Cloud)、S3(Simple Storage Service)、RDS(Relational Database Service)、Lambda、ECS(Elastic Container Service)などがあります。

Q3: AWSを使うメリットは何ですか?

A: AWSを使用することで、スケーラビリティ、柔軟性、セキュリティ、信頼性などのメリットを享受することができます。また、リソースの効率的な利用やコスト削減も可能です。

Q4: AWSの料金体系はどのようになっていますか?

A: AWSの料金体系は様々であり、サービスごとに異なる料金モデルがあります。一部のサービスでは従量課金モデルを採用しており、実際に使用したリソースに対して支払いが発生します。詳細な料金情報はAWSの公式ウェブサイトで確認することができます。

Q5: AWSのセキュリティ対策はどのようになっていますか?

A: AWSはセキュリティに非常に高いレベルの注意を払っており、物理的・論理的なセキュリティ対策を講じています。また、AWSは多くのセキュリティ認証や規制を取得しており、お客様のデータを保護するための機能やサービスも提供しています。

Q6: AWSのデータセンターはどこにありますか?

A: AWSのデータセンターは世界中に広く展開されており、各地域に複数のリージョンがあります。具体的なデータセンターの場所はAWSの公式ウェブサイトで確認することができます。

Q7: AWSはどのようにバックアップを行いますか?

A: AWSでは、データのバックアップを自動的に行うことができます。各サービスにはバックアップ機能が備わっており、データの耐久性や可用性を高めるための機能も提供されています。

Q8: AWSのサービスを使うためにはどのようなスキルが必要ですか?

A: AWSの利用には、クラウドコンピューティングやネットワーキングに関する基礎知識が必要です。また、AWSの各サービスに特化したスキルや知識を持つことも重要です。AWSは幅広いトレーニングリソースや認定プログラムを提供しており、スキルの習得をサポートしています。

Q9: AWSはどのようにスケーラビリティを実現していますか?

A: AWSでは、需要に応じてリソースを柔軟に拡張または縮小することができます。これにより、アプリケーションやサービスのパフォーマンスや可用性を向上させることができます。自動スケーリングやロードバランシングなどの機能も利用することができます。

Q10: AWSのグローバルインフラストラクチャについて教えてください。

A: AWSのグローバルインフラストラクチャは高度にスケーラブルであり、多層のセキュリティと冗長性を持っています。これにより、高いパフォーマンスと可用性を提供することができます。

モバイルバージョンを終了