3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS CodeStarを使って,Django製アプリをデプロイするまで

Last updated at Posted at 2019-05-22

環境

  • AWS CodeStar
  • Python: 3.6
  • pipenv: 2018.7.1
  • pip: 18.0.0
  • Django: 1.11.18

執筆したきっかけ

  • 研究で開発する実験用システムをデプロイするため
  • AWSに(ちゃんと)初挑戦する!
  • 開発するシステムをそれなりな環境で動かす必要があるため,herokuじゃ厳しそう
  • 毎度手作業でデプロイするのがしんどい

CodeStarとは

AWS CodeStar を使用すると、アプリケーションを迅速に開発および構築して AWS にデプロイできます。
AWS CodeStar

とのこと.
つまり,「CI/CDも含めたWEBアプリの開発環境を,お手軽に構築するよ!」というサービスです.
対応する言語やフレームワークがたくさんあり,困ることはなさそうです.
ちなみに,2019-05-22時点では,

  • Go
  • Node.js
  • Python, (FlaskやDjangoを含む)
  • Ruby on Rails
  • Lalavel
  • Java

などがありました.
さらに,

AWS CodeStar に対する追加料金はありません。CodeStar プロジェクトでプロビジョニングした AWS リソース (例: Amazon EC2 インスタンス、AWS Lambda の実行、Amazon EBS ボリューム、Amazon S3 バケット) に対してのみ料金を支払います。実際に使用した分に対してのみ料金が発生します。最低料金や前払いの義務はありません。
AWS CodeStar の料金

嬉しい限りです.

Djangoのテンプレート

テンプレートは2種類ありました.

  1. EC2で実行する
  2. Elastic Beanstalkを介して実行する

つまり,Dockerを使うかどうかが大きく違うところでしょうか(間違っていたらすみません)
私の場合,大規模開発でもないので,1でやってみました.

プロジェクトを作成する

スクリーンショット 2019-05-22 19.44.15.png

AWSのコンソールから,CodeStarを選択します

スクリーンショット 2019-05-22 19.45.08.png

テンプレートから,Djangoを選択します.

スクリーンショット 2019-05-22 19.49.50.png

プロジェクト名や,ソースコードのリポジトリを選択します.
私は,GitHubを選択しました.GitHubを選択すると,リポジトリ名やリポジトリをprivateかpublicに選択できます.

スクリーンショット 2019-05-22 19.50.54.png

続いて,AWSCodeStarに権限を付与することを許可します.その他,Amazon ECの設定を編集から,使用するEC2,VPC,サブネットを変更することもできます.

スクリーンショット 2019-05-22 19.54.39.png

ご丁寧に,作成したリポジトリも案内してくれます.
後はデプロイが完了するまで待機です.

スクリーンショット 2019-05-22 20.03.43.png

これで,デプロイ完了です.

スクリーンショット 2019-05-22 20.04.35.png

アプリ自体は,アプリケーションのエンドポイントよりアクセスできます.
今後はGitHub上のmasterへpushすると,CodeStarがそれを検知してデプロイまでやってくれます.

感想

すごい...ただし,現状はCIが回っていません.また,DBはSqliteのままです.これから,頑張ります!!
iOS以外の領域にうとい私でもできました.AWS様々です.

補足

CodeStarが作成したリポジトリのREADMEを見ると,各ファイルの説明や,ローカル環境下でDjango製のアプリを起動するまで書かれていました.また,READMEにはvirtualenvを使用した方法を紹介していましたが,私はpipenvを使用しました.

追記(2019-05-23)

提供された buildspec.yml には,マイグレーションに関わる記述がありません.したがって,追記する必要があります.記述内容に自身はありません

phases:
  install:
    commands:
      # Install dependencies needed for running tests
      - pip install -r requirements.txt
      # Migrations
      - python manage.py makemigrations # 追記
      - python manage.py migrate # 追記

参考文献

AWS CodeStarを使っていい感じの開発環境を一瞬で作る

3
6
1

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
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?