2017-09-17 11 views
1

私はAWSのリソースを使ってDjangoウェブアプリケーションを作成しています。私はデプロイメントが初めてで、ELBベースのElastic Beanstalkを使ってDjango開発Webサーバーから離れ、代わりにNginx + Gunicornを使用したいと考えています。私は彼らについて、またELBについても読んでいます。AWSエラスティックビーンストーン+ Nginx + Gunicorn

ELBにDjangoアプリケーションをデプロイする場合、Nginx + Gunicornは必要ですか? ELBにはリバースプロキシ、自動スケーリング、ロードバランシングなどが付属しているため、

入力を認識します。

+0

ELBを使用している場合は、ELBを使用する場合、これらを設定する必要はなく、コードを正しく取得することについてもっと心配する必要があります。 –

答えて

0

Djangoをデプロイするときは、WSGIDeploying Djangoを参照)を使用することをお勧めします。

このDjangoのデプロイメント方法は、AWS Elastic Beanstalkでもよくサポートされており、Deploying a Django Application to Elastic Beanstalkもあります。

ハイレベルでは、次の操作を実行したい:

  1. あなたはElastic Beanstalkでのためにプロジェクトを設定し
  2. を開発するとして、あなたのpythonの依存関係を追跡するために(virtualenvを使用して)仮想環境を作成します。これには、virtualenvをrequirements.txtファイルにフリーズし、djangoのWSGI用にEB拡張を設定することが含まれます。
  3. EB CLIを使用してプロジェクトを初期化し、環境を作成します。舞台裏

、Elastic Beanstalkでは、Djangoのためのトラフィックを処理するために、Apacheのmod_wsgiを使用し、インスタンス、弾性ロードバランサなどをスピンアップだけでなく、Apacheでトラフィックを受け入れるようにインスタンスを設定しようとしています。

0

あなたのアプリケーションレベルでは、依然としてリバースプロキシが必要です。 ELBには特定のリバース・プロキシはありませんが、アプリケーション・ロード・バランサ(ALB)は適切なリバース・プロキシの必要性を置き換えるもので、パス・ベースのルーティングを定義できます。それにもかかわらず、nginxの完全な代替物ではありません。 nginxには、深刻なトラフィックが発生したときに成長し続けるアプリケーションに必要な無制限のものをほとんど実行できるツールが備わっています。

さらに、Djangoアプリケーションでは、djangoには提供されていなかった「開発」サーバーのトラフィックを処理できるため、いくつかのuwsgiで確実に実行したいと考えています。

上記のすべての点を念頭に置いて、nginxとuwsgiのすべてのアプリケーションをアプリケーションと一緒に使えるようにすることで、あなたはここで充電状態になります。

Docker on EBSマルチコンテナ環境で毎日実行しているすべてのアプリケーションを使用することが大好きです。そこにはnginx、uwsgiがあるので、私たちが必要とするものは何でもできる。

関連する問題