ECS,Fargate,ECRの概要について
ECSとは
フルマネージドのコンテナオーケストレーションサービス。Dockerコンテナのスケーリング、実行、停止、管理を簡単に行えるようになる。
特徴
・フルマネージドサービス
→AWSがインフラの管理を行えるため、ユーザーはコンテナのデプロイや管理に集中できる
・多様な起動タイプ
→EC2,Fargate,ECS Anywhere等
・高い可用性
→複数のAZにまたがってコンテナを実行できる
・他のAWSサービスとの連携
→CodeBuild,CodePipeline,System Manager Parameter Store等との簡単な統合
構成要素
・クラスター
→コンテナを実行する基盤。クラスター内でサービスやタスクが実行される
・サービス
→クラスター内で実行するタスク(コンテナ群)を管理する。必要なタスク数を自動で維持し、障害時は再作成する
・タスク定義
→コンテナの設定情報を定義する。どのコンテナイメージを使用するか、ポート番号や環境変数などを設定する
・タスク
→タスク定義に基づいて起動したコンテナの集まり。複数のコンテナを一つのタスク内で実行できる。
Fargateとは
サーバーレスのコンテナ実行サービス。サーバの管理やスケーリングを気にすることなくコンテナを実行できる。
特徴
・サーバーレス
→サーバのプロビジョニングや管理が不要。インフラの管理をする必要が無く、開発に集中できる
・スケーラビリティ
→コンテナのスケーリングが自動で行われ、需要に応じてリソースを動的に調整する
・セキュリティ
→AWSのセキュリティ機能を活用してコンテナ実行環境を安全に保てる。KMSの暗号化など
・コスト効率
→実際に使用したリソースに対してのみ課金されるため、コスト最適化が可能
構成要素
・タスク定義
→コンテナの設定情報を定義する。
ECRとは
フルマネージドのコンテナレジストリサービス。Dockerコンテナイメージを簡単に保存、管理、デプロイ、共有が可能
特徴
・フルマネージドサービス
→インフラの管理が不要
・セキュリティ
→データの暗号化やアクセス制御が可能
・高可用性
→複数のリージョンで利用可能
・統合性
→ECSやEKSとシームレスに統合されており、コンテナのデプロイが容易
構成要素
・レジストリ
→AWSアカウントごとに1つのプライベートレジストリが割り当てられ、DockerイメージやOCI(Open Container Initiative)イメージを格納する
・リポジトリ
→コンテナイメージを保存するための場所。リポジトリごとにアクセス制御ポリシーを制御できる
・認証トークン
→イメージのプッシュやプルを行う際に必要な認証手続きをサポートする
利用シーン
・コンテナイメージの保存と共有
→チーム間でコンテナイメージを共有し、開発プロセスを効率化する
・CI/CDパイプラインの一部として
→JenkinsやGitLab CI/CDなどのツールと連携し、自動デプロイを実現する
・マルチリージョンのデプロイ
→複数のリージョンにまたがるアプリのデプロイをサポート
Discussion