スポンサーリンク

Amazon ECS デプロイ(CD/CI)

Amazon ECS/ECRの基礎知識

投稿日:2022年2月23日 更新日:

なぜ、コンテナを使うのか?

ECS/ECRはコンテナに関するサービスですが、
なぜ、コンテナを使うのか?
コンテナを使うメリットをしっかり認識しましょう。

コンテナを使うメリットは、
開発環境と本番環境で同じ環境を使えることにあります。
また、その環境の構築がコンテナ仮想化は迅速にできます。

VM仮想化であればVMの起動に数分かかるところ、
コンテナの起動であれば数秒です。

Amazon ECSの基礎知識

Amazon ECSでできること

ECSはElastic Container Serviceの略称です。
その名の通り、dockerコンテナをAWS上で起動できるサービスです。

コンテナ起動の方法には、EC2にdockerをインストールしてコンテナ起動という方法もありますが、ECSはコンテナオーケストレーションサービスであり、kubernatesのAWS版と考えてください。

ECSはコンテナオーケストレーションサービスであり、
実際にコンテナが起動するのはEC2やFargateが実行環境になります。

Amazon ECSのコンソール

Amazon ECSのコンソールはシンプルです。
主にクラスタータスク定義の2つの機能があります。

httpdの単一コンテナを起動するだけでも、タスクとクラスター両方の定義が必要です。

タスク定義で設定したコンテナ群を、クラスター定義で設定した環境でデプロイ(起動)することになります。

Amazon ECSのタスク

タスクを定義するとはdocker-compose.ymlを書いていくイメージです。
つまりタスクとは、1つのサービスのコンテナ群のことです。

Amazon ECSのクラスター

クラスターはタスクの実行環境です。
つまり、コンテナの実行環境です。

実行環境は主に
・EC2
・Fargate
の2つです。

さらに、ネットワークやロードバランサーの有無も環境設定を行います。

Amazon ECRの基礎知識

Amazon ECRはAWS謹製のDockerイメージレジストリです。
レジストリ≒リポジトリと考えてください。

Dockerfileを書いて、docker buildによってDockerイメージを作成する。
作成したイメージをECRにプッシュする。
ECSではECRからイメージをプルして起動する。
という流れになります。

Amazon ECRにイメージをプッシュするには?

ECRにプッシュする方法はいくつかありますが、2つ紹介します。

1つは、ローカルのターミナルからAWS CLIを使用してECRにプッシュする方法。
もう1つは、CodeDeployでイメージをビルドして、アウトプットとしてECRにプッシュする方法です。

AWS CLIを使用してECRにプッシュする

ECR/ECSのエラー

Create TaskDefinition: Fargate requires task definition to have execution role ARN to support ECR images

ECRのタスク定義でECRのイメージを指定したときに発生する可能性があるエラーです。

原因:タスク実行IAMロールにECRへのアクセス権限がない。
対策:タスク実行IAMロールにECRへのアクセス権限を付与する。

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-Amazon ECS, デプロイ(CD/CI)

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.