AWSにはDocker containerをサポートするcontainer orchestration service としてAmazon ECS; Amazon Elastic Container ServiceとAmazon EKS; Elastic Kubernetes Serviceがある。ECSにはEC2起動タイプとFargate起動タイプがある。
EC2起動タイプはEC2上にタスクとしてContainerをデプロイし、サービスをスケーリングすることで処理を分散する。Container自体がスケールし、ホストのリソースをひっ迫させた場合もホストするEC2自体がスケーリングするため、ワークロードに合わせたインフラストラクチャを利用できる。起動したEC2に対して費用が発生する。
EC2起動タイプはContainer実行環境であるホストマシンの管理・運用が必要である。インフラストラクチャを含めて設定を管理したい場合に利用する。
Fargate起動タイプはプラットフォームを含めてフルマネージドになる。ホストマシンを意識せずにContainerを実行できる。EC2 Instance typeの選択やクラスターのプロビジョニングとスケール、各サーバのパッチ適用と更新が不要。ユーザーはアプリケーションのデプロイに集中できる。AWS FargateはAmazon ECSとAmazon Elastic Kubernetes Service; EKS の両方で動作するContainer向けのサーバーレスコンピューティングエンジン。
Amazon ECSは、Amazon ECS タスク定義での Amazon FSx for Windows ファイルサーバーの使用をサポートする。これによってECS Container間で永続的な共有ストレージを使用できる。
ECSではIAMリソースポリシーを VPCエンドポイントにアタッチできる。インターフェイス VPC エンドポイントを使用するようにECSを設定することで、VPCとECS間のトラフィックをAmazonネットワークに制限してVPCセキュリティを向上させることができる。