0
0

More than 3 years have passed since last update.

Nginx×Django(gunicorn)×PostgreSQLのWEBアプリケーションをAWS EC2上にデプロイするための前提知識

Last updated at Posted at 2021-06-12

最初にWEBアプリケーションのおさらい

WEBアプリケーションの構成

WEBアプリケーションは主に、

・WEBサーバー
・アプリケーションサーバー
・DBサーバー

これらが組み合わさって完成します。このサーバーって言葉が分かりづらいですよね。
サーバーは主に以下の2つの言い回しがあるようです。

・コンピュータとしてのサーバ
・ソフトウェアとしてのサーバ(ミドルウェア)

qiita1.jpg

画面のない処理専用のPCをサーバーといったりしますが、あれはコンピュータとしてのサーバですね。
あと、VPS(Virtual Private Server)というサービスの名前の中にも、サーバーという単語が使われています。VPSは仮想サーバーをレンタルするサービスですが、これもコンピュータとしてのサーバーですね。

そして、今回構築していくWEBサーバやアプリケーションサーバ、DBサーバは、OSの上にミドルウェアとして構築していく、ソフトウェアとしてのサーバです。このようなミドルウェアには、他にもファイルサーバやメールサーバがあります。

ちなみに、一番上の層の"アプリケーション"というのは、パソコン上で機能を使えるようにしたものです。ChromeとかPowerPointとか。このアプリケーションはスマホアプリやデスクトップアプリといった意味合いが強くて、WEBアプリケーションとは違う意味なんですよね。ややこしい。

長々と書きましたが、WEBアプリケーションの構築は、WEBサーバ、アプリケーションサーバ、DBサーバの3つのミドルウェア部分を構築して、連携させていくようなイメージになります。

WEBアプケーション構成手順

・WEBサーバー → Nginx
・アプリケーションサーバー → Django(gunicorn)
・DBサーバー → PostgreSQL

それぞれのサーバには、上記のツール・サービスを使っていきます。今回はこれらをAWS EC2上に構成していきます。

順番的には、
・PostgreSQLをスタートさせる
→ DBサーバーが立ち上がります
・gunicornを起動する
→ Djangoフレームワークがアプリケーションサーバーとして立ち上がります。Djangoでいい感じに設定しておくと、DBサーバーと紐付けされます。
・Nginxを起動させる
→ WEBサーバーが立ち上がります。あらかじめ設定ファイルにいい感じに記述すると、アプリケーションサーバーと紐付けされます。

gunicornについて

Djangoフレームワークは、WSGIという仕様に則って開発されています。
これをアプリケーションサーバとして動作させることができるのが、
・gunicorn
・uwsgi
といったものになります。今回は、uwsgiではなくgunicornを使っていきます。

スクリーンショット 2021-06-12 23.57.12.jpg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0