ECSサービス構築の二回目です。前回は,ECRに登録するdockerイメージをコンテナから作成するところまででした。今回は,ECRリポジトリーに登録,ECSサービスの構築手順です。

1. ECRにリポジトリ作成
作成したコンテナイメージを、コンテナレジストリのフルマネージドサービスである Amazon Elastic Container Registry (Amazon ECR) にアップロード(Push)します。 作成したコンテナイメージを、コンテナレジストリで一元管理することで、様々なコンテナ実行環境で利用しやすくなるメリットがあります。AWS コンソールにログインして,ECRリポジトリを作成します。 引用url ECRとは

このuriをコピーして,メモしておきます。後で、イメージのtag付けに必要になります。
1.2. EC2クライアントからECRにログインする
EC2クライアントから,ECRにpushする為に,ECRにログインする必要があります。ログイン用のスクリプトを作成します(login.sh)。そのスクリプトを利用してECRにログインします。 参照した URL AWS ECRにdockerイメージを登録する
aws ecr get-login --no-include-email --region ap-northeast-1 > login.sh ←一行です
[ec2-user@ip-10-128-1-19 ECR]$ bash ./login.sh
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/ec2-user/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded ← これが出ればログイン成功
前回作成したイメージから,ECR登録用のイメージtagを作成します。先ほど,コピーしておいた,uriが必要になります。 (123456789012はアカウントID)
docker tag redminesql:latest \
123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/redmine6:latest
ECRにイメージをpushします (123456789012はアカウントID)
docker push 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/redmine6:latest ← 一行です
これで,ECRのリポジトリにdockerイメージの登録が完了しました。 図AのECR Registoryです。
2. ECSサービスの構築
ECSサービスの構築は,ECSクラスターの作成,タスクの定義,サービスの作成という手順で行います。
2.1 ECSクラスターの作成
ECS クラスターは、コンテナを動かすための論理的なグループです。ECS を操作するために、まずは ECS クラスターを作成します。AWSコンソールから,クラスターの作成を行います。 ecs→クラスターの作成をクリックします。設定内容は,クラスター名,実行するVPC,サブネットです。 引用url ECSクラスターの作成


2.2. タスク定義
タスク定義とは、アプリケーションを動かすために、どのようにコンテナを動かすか、コンテナの動作を定義したものです。 例えば、コンテナイメージの種類、アプリケーションが利用するポート、コンテナが利用するデータボリュームなどを指定できます。 コンテナを動かす際のブループリントとして機能します。タスク定義をawsコンソールから行います。設定内容は,タスク定義名,ECRのuri,コンテナのlistenポート番号,動作させるサーバ(今回はFargate)です。 引用 URL タスク定義




2.3. サービスの作成
サービスとは、ECS 上でコンテナを動かすときに利用する概念の一つです。 サービスを使用すると、 Amazon ECS クラスターで、指定した数のコンテナ群(タスク)を維持できます。作成するサービスの定義をします。設定内容は,タスク定義の選択,サービス名,実行するVPC,サブネット,セキュリティグループ,ALBです。 引用url サービスとは






3.サービスの実行
サービスの作成に成功したら,サービスを実行します。作成したサービスを選択する。ネットワーキングをクリック。オープンアドレス(ALBのアドレス)をクリックです。




ALB経由で,Fargateコンテナのredmineログイン画面が出れば作成完了です。