危機感を持った理系学生のプログラミング日記

こんばんわ🦊

絶賛就活中ですが、ポートフォリオdjangoで作成してAWSで本番公開したのでその手順を備忘録として書き残しとこうと思います。

今回は一般的なWebの構造であるWeb三層構造に基づいてアプリを作成しています。

WebサーバーをNginx、APサーバー(WSGIサーバー)はGunicorn、DBサーバーはAWSのRDSを用いています。

手順としては

  1. AWSでEC2インスタンスとRDSの立ち上げ
  2. EC2インスタンスDjangoアプリ作成とRDSとの接続
  3. 静的ファイルやメディアファイルをS3から配信するために、S3を立ち上げる
  4. nginxとguiconのインストールと設定

 

 

1. EC2インスタンスとRDSの立ち上げ

RDSの立ち上げについて主に書いていきます。

RDSを立ち上げるにはVPC内に異なるリージョンのサブネットを2つ以上作成しなくてはなりません。(セキュリティの関係?)

今回はMariaDBを使いましたが、慣れているDBを使うのが◯

デフォルトでは、立ち上げたDBの文字コードがバラバラなので設定からutf-8に変更する必要があります。

この記事がわかりやすいです。

qiita.com

 

2. DjangoとRDSの接続

作成したRDSとDjangoを接続していきます。

DjangoはデフォルトではSQlite3になっています。

SQlite3はWebアプリケーションとしても、単一インスタンスでアクセスが少なく、可用性も低くてよいWebアプリケーションでは十分に使えます。

が、SQlite3はあくまで開発用として使って、本番環境ではMySQLPostgreSQLを使うのが一般的ですので変更しときましょう。

下記のサイトが分かりやすいです。

qiita.com

 

3. 静的ファイルやメディアファイルをS3から配信する

Djangoは開発環境ではdebug=trueでも良いですが、本番環境ではdebug=falseにします。

debug=falseにした場合、Djangoからcssや画像などの静的ファイルやメディアファイルが配信されなくなるので、S3から配信するようにします。

手順としては、S3に配信したいファイルをデプロイしてS3とDjangoを接続します。

下記のサイトが分かりやすいです。

blog.narito.ninja

qiita.com

 

4. nginxとguiconのインストールと設定

WebサーバーであるNginxとAPサーバー(WSGIサーバー)のGunicornのインストールと設定をしていきます。

Nginxをインストール → Gunicornをインストール → NginxとGunicornの接続

という手順でやっていきます。

下記の記事が参考になります。

qiita.com

 

Gunicornの起動と停止は以下の手順でやります。

 

f:id:Catherinamu:20210206155831p:plain

 

下記の記事を参照しました。

cortyuming.hateblo.jp

 

あとは . . .

SSL認証などのセキュリティ周りの設定をすれば完成です。

リソースを監視する「CloudWatch」の導入もしたいと思っているのでそこらへんも記事にできたら良いなと思っています。

ではまた🦊