危機感を持った理系学生のプログラミング日記
こんばんわ🦊
絶賛就活中ですが、ポートフォリオをdjangoで作成してAWSで本番公開したのでその手順を備忘録として書き残しとこうと思います。
今回は一般的なWebの構造であるWeb三層構造に基づいてアプリを作成しています。
WebサーバーをNginx、APサーバー(WSGIサーバー)はGunicorn、DBサーバーはAWSのRDSを用いています。
手順としては
- AWSでEC2インスタンスとRDSの立ち上げ
- EC2インスタンスにDjangoアプリ作成とRDSとの接続
- 静的ファイルやメディアファイルをS3から配信するために、S3を立ち上げる
- nginxとguiconのインストールと設定
1. EC2インスタンスとRDSの立ち上げ
RDSの立ち上げについて主に書いていきます。
RDSを立ち上げるにはVPC内に異なるリージョンのサブネットを2つ以上作成しなくてはなりません。(セキュリティの関係?)
今回はMariaDBを使いましたが、慣れているDBを使うのが◯
デフォルトでは、立ち上げたDBの文字コードがバラバラなので設定からutf-8に変更する必要があります。
この記事がわかりやすいです。
2. DjangoとRDSの接続
作成したRDSとDjangoを接続していきます。
DjangoはデフォルトではSQlite3になっています。
SQlite3はWebアプリケーションとしても、単一インスタンスでアクセスが少なく、可用性も低くてよいWebアプリケーションでは十分に使えます。
が、SQlite3はあくまで開発用として使って、本番環境ではMySQLやPostgreSQLを使うのが一般的ですので変更しときましょう。
下記のサイトが分かりやすいです。
3. 静的ファイルやメディアファイルをS3から配信する
Djangoは開発環境ではdebug=trueでも良いですが、本番環境ではdebug=falseにします。
debug=falseにした場合、Djangoからcssや画像などの静的ファイルやメディアファイルが配信されなくなるので、S3から配信するようにします。
手順としては、S3に配信したいファイルをデプロイしてS3とDjangoを接続します。
下記のサイトが分かりやすいです。
4. nginxとguiconのインストールと設定
WebサーバーであるNginxとAPサーバー(WSGIサーバー)のGunicornのインストールと設定をしていきます。
Nginxをインストール → Gunicornをインストール → NginxとGunicornの接続
という手順でやっていきます。
下記の記事が参考になります。
Gunicornの起動と停止は以下の手順でやります。
下記の記事を参照しました。
あとは . . .
SSL認証などのセキュリティ周りの設定をすれば完成です。
リソースを監視する「CloudWatch」の導入もしたいと思っているのでそこらへんも記事にできたら良いなと思っています。
ではまた🦊