AWSのオーケストレーションサービスについて記載します。
コンテナ・オーケストレーションについて
機能しているコンテナ・デプロイメントはクラスタという。クラスタは 2 つのパーツとして認識できる。コントロールプレーンとデータプレーン(コンピュートマシンのノード)。
コントロールブレーン(コンテナアプリケーションのオートメーション管理) | |
EKS (Elastic Kubernetes Service) |
ECS (Elastic Container Service) |
データプレーン(コンテナ実行環境) | |
Forgate | EC2 |
コンテナ・オーケストレーションサービス
環境 | 概要 |
ECS/EKS on EC2 | ・EC2でのコンテナ・オーケストレーション環境 ・トラフックが予測できるワークロードに向いている ・常時起動のため、コールドスタートはない ・GPU、Windowsコンテナも利用可能 ・EC2インスタンス単位の課金と管理 |
ECS/EKS on Fargate |
・マネージドなコンテナ・オーケストレーション環境 |
Lambda
AWSが用意したバッチサーバのようなサービス。
バッチサーバやジョブ管理システムはシングルポイントになりやすくレガシーシステムでは改善が難しいため有用。
主な特徴
・サーバレス
・イベントトリガーや軽量でステートレスなアプリの実行に適している
・リクエスト数と実行時間(msec)での課金
・最大稼働時間は15分
・使用可能メモリは128MB~10GB
ECR
完全マネージド型のコンテナレジストリで、Open Container Initiative (OCI) 標準とDocker Registry HTTP API V2 をサポート。ECS、EKS と統合されているため、どちらのオーケストレーターでもアプリケーションのコンテナイメージの保存と実行が可能。Docker hubのAWS版と考えて良いのではないかと。
ECRはDocker Hubレポジトリを作成しイメージをプッシュ・プル。ECS、EKSでDockerを起動させる(ECRのイメージからコンテナを起動して運用)。