LoginSignup
1
1

ECRからイメージをpullしてFargateにコンテナデプロイ

Last updated at Posted at 2024-05-10

こんにちは
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

前回Cloud9で作ったDjangoアプリをコンテナイメージに変換し、それをECRにpushしました。
今回はこの続きで、ECRからイメージをpullしてコンテナアプリとしてDjangoで作ったWebアプリをデプロイしていきたいと思います。

前回の記事は以下となります。

全体の流れは以下を参照ください

環境イメージ

aws-django01-ページ7.drawio (2).png

構築

Fargate(ECS)用のアクセスキー/シークレットアクセスキーを作成する

IAMユーザを作成してアクセスキーとシークレットアクセスキーを取得します。
作成手順はCloud9で環境を作ったときと同じです。今回はqiita-ecsユーザを作成しました。

Untitled (8).png

具体的な手順は以下を参照ください。

ECS環境を構築する

タスク作成

ESCのタスクを以下のパラメータで作成します。

  • タスク定義:qiita-ecs-task
  • 起動タイプ:Fargate
  • タスク実行ロール:新しいロールの作成
  • コンテナ1
    • 名前:django
    • イメージURI:ECRで確認したURI
    • コンテナポート:80
    • 環境変数
      • AWS_ACCESS_KEY_ID:IAMで生成したもの
      • AWS_SECRET_ACCESS_KEY:IAMで生成したもの

screencapture-ap-northeast-1-console-aws-amazon-ecs-v2-create-task-definition-2024-05-10-17_18_58.png
作成されたことを確認します。タスク実行ロールを押下します。
image.png
S3にファイルをアップロードするための権限を追加します。今回は雑にS3FullAccessを追加しました。
image.png

クラスターを作成

以下のパラメータでクラスターを作成します。
-クラスター名:qiita-ecs-cluster

screencapture-ap-northeast-1-console-aws-amazon-ecs-v2-create-cluster-2024-05-10-17_25_53.png
作成したクラスタを押下します。
image.png
タスクをクラスタに紐づけしていきます。
タスクタブを開いて新しいタスクの実行を押下します。
image.png
以下のパラメータで作成しました。

  • デプロイ設定:サービス
  • ファミリー:作成したタスク名(リビジョンは1になると思います。私は何度も作り直しているので7になってます。)
  • サービス名:qiita-ecs-django-service
  • セキュリティグループ:新しいセキュリティグループ
    • セキュリティグループ名:qiita-ecs-django-sg
    • インバウンドルール:カスタムTCP-8080-0.0.0.0/0

screencapture-ap-northeast-1-console-aws-amazon-ecs-v2-clusters-qiita-ecs-cluster-run-task-2024-05-10-17_33_55.png
タスクが作成されたら、タスク欄のリンクを押下します。
image.png
パブリックIPを控えます。
image.png

テスト

http://先ほど控えたIPアドレス:8080を任意のWebブラウザに打ち込み、アクセスします。
アクセス出来たら適当なファイルを選択しアップロードしていきます。
image.png
S3にアクセスしてアップロードが出来ていることを確認します。
image.png
メール通知が飛んできていることも確認しましょう。
image.png

1
1
0

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
1
1