🗽

Dockerを利用して、DjangoアプリをAWS(EC2)にデプロイする方法

2023/03/08に公開

はじめに

備忘録として、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をインストール手順
  1. sudo amazon-linux-extras install docker
  2. sudo service docker start
  3. sudo usermod -a -G docker ec2-user
  4. sudo chkconfig docker on
  5. sudo yum install -y git
  6. sudo reboot

参考サイト: https://gist.github.com/npearce/6f3c7826c7499587f00957fee62f8ee9

docker composeをインストール手順
  1. 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
  2. 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にデプロイする方法をざっくりとメモしました。
また、時間があれば以下のことも記事として残したいと思います。

  1. docker-composeの記述の詳細
  2. CIの書き方の説明
  3. Django REST Frameworkを利用せず、SPAの作り方の説明
  4. VPCやS3などのほかのAWSサービスを導入する方法など

Discussion