LoginSignup
0
0

AWS ECR, ECS, Fargateの概要

Posted at

私は未経験でエンジニア転職を目指している31歳のいしかわです
とあることをきっかけにAWS Certified Cloud Practitionerを試験を受けようと思い現在学習中です
参考にしているもの書籍は定番の緑本です
学習したことを少しずつアウトプットしていければと思います。
できれば学習しながら関連する技術やワードのについて、適宜修正、追記していきたいと思います。

プログラミング、AWSともに初学者なので内容や理解に誤りがある可能性があります
誤りがありましたら教えてくださると幸いです

ECR

Elastic container registryの略
コンテナレジストリのマネージドサービス。サーバーの管理やアベイラリティゾーンを意識することなくリージョンで使用できる
コンテナイメージを保存するリポジトリをレジストリと呼ぶ。

ECS

Elastic container Serviceの略
AWSでDockerコンテナのデプロイや管理運営を行うための、フルマネージドなコンテナオーケストレーションサービス
※オーケストレーションサービス:コンピュータシステムやソフトウェア、サービスの構築における、設定、管理、調整の「自動化」の意味
ECS自体はコンテナの実行環境ではなく、あくまでコンテナが正常に稼働するサポートをするサービス
ECSで実行されるコンテナをタスクと呼ぶ
ユーザーはEC2インスタンスをプロビジョニングして、クラスターとして管理する
※クラスター:実行環境やIAM権限の境界線。クラスターの中には複数のコンテナが格納されている。

なぜコンテナオーケストレーションサービスを使用するのか

コンテナは「1コンテナに1プロセスだけを起動させる」というベストプラクティスがある。しかしその場合、ホストOSでなんらかの障害が起きてしまった場合、その影響がその中で動作しているコンテナ全体に行き渡る
コンテナオーケストレーションを使用し、本番環境でコンテナを動かす場合、一部のコンテナが停止しても提供しているサービスが停止しないように、可用性や冗長性を考慮して複数コンテナを複数サーバーに分散させておくことが安全
しかし、複数のコンテナの管理、運営を行うこと自体が今度は大変になってしまう
そんなときにコンテナオーケストレーションサービスを使用することで、複数のコンテナの運用を自動化することができる

Fargate

AWSのコンテナサービスはコンテナを管理するコントロールプレーンと、コンテナを動かすための実行環境であるデータプレーンの2つで構成されている
ECSはコントールプレーンの1つ
AWSにおいてコンテナが稼働するリソース環境は2つある

  • EC2
    インスタンスを管理する必要がある。インスタンスを柔軟に設定/調整することができる
  • Fargate
    サーバーレスコンテナ実行環境でインスタンスの管理が不要→管理者はインスタンスの管理から解放される

まとめ

複数のDockerイメージをそれぞれECRに保存
それらの管理を行うためにオーケストレーションサービスであるECSを使用することで、管理運用を自動化することができる
ECSを実行するための環境はEC2もしくはFargate
EC2であればインスタンスの管理をしなければならないが、その分細やかな調整をすることも可能
Fargateであればサーバーレスコンテナ実行環境のため、EC2は不要となりメンテナンスやスケーリングをする必要がなくなる
そしてこれらのコンテナ群のことをECSを用いてオーケストレーションしている場合、タスクと呼ぶ

参考記事

AWS ECR ECS Fargateについてまとめてみた
今さら聞けないAWS ECSとは?Fargateとは?
https://baresupport.jp/blog/2023/09/05/223/

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