本ページは、AWS に関する個人の勉強および勉強会で使用することを目的に、AWS ドキュメントなどを参照し作成しておりますが、記載の誤り等が含まれる場合がございます。

最新の情報については、AWS 公式ドキュメントをご参照ください。

簡単にいうと、コンテナオーケストレーションのソフトウェアが、Kubernetes (K8s) か AWS オリジナルか、という違いです。

コンテナオーケストレーション

コンテナのワークロードやサービス、ライフサイクル管理やデプロイメント等のコンテナに関わる調整と管理の自動化技術のことで、コントロールプレーンとデータプレーンから成り立っています。

container-orchestration

※ 【AWS Black Belt Online Seminar】CON120 AWS コンテナ全体概要 より引用

コントロールプレーン

コントロールプレーンとは、コンテナを管理する機能(=コンテナオーケストレータ)のことを指します。 つまり、ECS、EKS のことです。

データプレーン

データプレーンとは、コンテナが実際に稼働するリソース環境を指します。

AWS が提供するデータプレーンは次の 2 種類あります。

データプレーン の種類

AWS が提供するデータプレーンは次の 2 種類あります。

これだけを見ると、Fargate のデメリットが多いように思えますが、コンテナが実際に稼働するリソース環境の運用から解放されるのは非常に大きなメリットですので、作業要員のコストも考えるとデメリットを上回る価値があると考えられます。 よって、まずは Fargate を利用することができないかを検討するのが良いと思います。

コントロールプレーンとデータプレーンの組み合わせで 4 つのアーキテクチャパターンがあります。

pattern-matrix

それぞれのパターンの構成概要図は次の通りです。

ecs-fargate-pattern

ecs-ec2-pattern

eks-fargate-pattern

※ 2023 年 10 月現在、Fargate には 1 つの Pod しか起動できない制約(Fargate Pod の設定)があります。そのため、DaemonSet が利用できません。ログ集約などで利用したい場合、サイドカーコンテナを作成する方法があります。(参考:AWS Fargate で Amazon EKS を使用するときにアプリケーションログをキャプチャする方法

eks-ec2-pattern

簡単に書くと、次のような利用想定です。

コントロールプレーン(ECS と EKS)× データプレーン(EC2 と Fargate)から、4 パターンの選択肢があります。

ecs-eks-ec2-fargate

※ 【AWS Black Belt Online Seminar】CON120 AWS コンテナ全体概要 より引用

それぞれのパターンをいくつかの比較項目で、3 段階の評価を行い比較した結果は次のとおりです。

※個人的な解釈をベースとザックリと比較した結果となっておりますので、参考程度にお読みください。

◎・・・3 点、○・・・2 点、△・・・1 点

比較項目

EKS on EC2

EKS on Fargeate

ECS on EC2

ECS on Fargate

利用料金(※1)

運用コスト

学習コスト

拡張性

○(※2)

○(※2)

信頼性

◎(※3)

◎(※3)

事例の豊富さ(※4)

総合得点

13 点

14 点

15 点

16 点

※1 ... アジアパシフィック(東京)リージョンで Linux を利用した場合の比較

Fargate のほうが EC2 に比べてコストが高いが、3 段階評価で差が出るほどではないとの判断。 2019 年 1 月 に Fargate の大幅な値下げがあったため、以前に比べて利用しやすくなっています。

スペック

Fargate

EC2

Fargate vs EC2

2 vCPU/ 4 GB

USD 0.09858

USD 0.0856(c6g.large)

+ 15 %

8 vCPU/ 16 GB

USD 0.39432

USD 0.3638(c7g.2xlarge)

+ 8 %

16 vCPU/ 32 GB

USD 0.78864

USD 0.7277(c7g.4xlarge)

+ 8 %

アジアパシフィック(東京)リージョンでの Fargate 利用料金 1 時間あたりの vCPU 単位 > USD 0.04045 1 時間あたりの GB 単位 > USD 0.00442

※2 ... コンテナが稼働するリソース環境にはいくつか制限があります

※3 ... 以前はコンテナに接続するには自前で sshd を立てるなどしなければならなかったが、「Amazon ECS Exec」により障害調査はしやすくなった

※4 ... EKS on Fargate が一般公開されたのが 2019 年 12 月であるため、2023 年 10 月現在では事例も数多く存在し、それぞれのパターンで差がないと判断。

2014/11/13 Amazon ECS

2018/06/05 Amazon Elastic Container Service for Kubernetes が利用可能となりました。

2017/11/30 AWS Fargate の紹介 – インフラストラクチャの管理不要でコンテナを起動

2019/12/05 AWS Fargate 上の Amazon EKS を一般公開

2021/05/27 Amazon Elastic Container Service Anywhere が利用可能に

2021/09/10 Amazon EKS Anywhere — オンプレミスで Kubernetes クラスターの作成と管理が広く利用可能になりました

aws-containers-roadmap

aws-containers-roadmap