🗽
Dockerを利用して、DjangoアプリをAWS(EC2)にデプロイする方法
はじめに
備忘録として、EC2にデプロイする手順を残す。
AWSをログインして、EC2ダッシュボードからインスタンスを選択する
インスタンスの一覧画面の右上にある「インスタンスを起動する」ボタンを押下する
インスタンスを起動画面
- 名前に「django-app-ryu」を入力する
- クイックスタートに「Amazon Linux」を選択する
キーペア名に「django-app-key-ryu」を選択する
- 「django-app-key-ryu」は予め用意した秘密鍵
- なければ新規作成することが可能
インスタンス作成成功画面
インスタンス一覧から確認できる
インスタンス「django-app-ryu」を選択し、右上の「接続」ボタンを押下する
- インスタンス接続情報が表示される
- 「SSHクライアント」タブをクリックし、SSHでの接続方法を確認できる
作業環境をVSCodeに切り替わる
-
上記のSSH接続方法でターミナルでコマンドを叩くと「Amazon Linux a AMI」を確認できる
gitのバージョンを確認する
dockerとdocker composeをインストールする
dockerをインストール手順
sudo amazon-linux-extras install docker
sudo service docker start
sudo usermod -a -G docker ec2-user
sudo chkconfig docker on
sudo yum install -y git
sudo reboot
参考サイト: https://gist.github.com/npearce/6f3c7826c7499587f00957fee62f8ee9
docker composeをインストール手順
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
docker-compose version
参考サイト: https://gist.github.com/npearce/6f3c7826c7499587f00957fee62f8ee9
必要であれば、nano editor により、.envファイルの環境変数を修正する
DBマイグレートを行う
- コマンド
docker-compose run --rm web python manage.py migrate
を叩く
docker imageにより、コンテナを起動する
- コマンド
docker-compose up --build
を叩く
サーバーが起動することを確認する
AWS インスタンスの詳細に戻って、パブリックIPv4アドレスを確認する
上記のパブリックIPv4アドレスをブラウザで開くと事前に用意したTodo List Appを確認できる
SPA Appであるため、画面遷移が不要、試しに追加すると、想定通りに追加された
終わりに
今回はDjango AppをEC2にデプロイする方法をざっくりとメモしました。
また、時間があれば以下のことも記事として残したいと思います。
- docker-composeの記述の詳細
- CIの書き方の説明
- Django REST Frameworkを利用せず、SPAの作り方の説明
- VPCやS3などのほかのAWSサービスを導入する方法など
Discussion