本ページは、AWS に関する個人の勉強および勉強会で使用することを目的に、AWS ドキュメントなどを参照し作成しておりますが、記載の誤り等が含まれる場合がございます。
最新の情報については、AWS 公式ドキュメントをご参照ください。
簡単にいうと、コンテナオーケストレーションのソフトウェアが、Kubernetes (K8s) か AWS オリジナルか、という違いです。
コンテナのワークロードやサービス、ライフサイクル管理やデプロイメント等のコンテナに関わる調整と管理の自動化技術のことで、コントロールプレーンとデータプレーンから成り立っています。
※ 【AWS Black Belt Online Seminar】CON120 AWS コンテナ全体概要 より引用
コントロールプレーンとは、コンテナを管理する機能(=コンテナオーケストレータ)のことを指します。 つまり、ECS、EKS のことです。
データプレーンとは、コンテナが実際に稼働するリソース環境を指します。
AWS が提供するデータプレーンは次の 2 種類あります。
AWS が提供するデータプレーンは次の 2 種類あります。
これだけを見ると、Fargate のデメリットが多いように思えますが、コンテナが実際に稼働するリソース環境の運用から解放されるのは非常に大きなメリットですので、作業要員のコストも考えるとデメリットを上回る価値があると考えられます。 よって、まずは Fargate を利用することができないかを検討するのが良いと思います。
コントロールプレーンとデータプレーンの組み合わせで 4 つのアーキテクチャパターンがあります。
それぞれのパターンの構成概要図は次の通りです。
※ 2023 年 10 月現在、Fargate には 1 つの Pod しか起動できない制約(Fargate Pod の設定)があります。そのため、DaemonSet が利用できません。ログ集約などで利用したい場合、サイドカーコンテナを作成する方法があります。(参考:AWS Fargate で Amazon EKS を使用するときにアプリケーションログをキャプチャする方法)
簡単に書くと、次のような利用想定です。
コントロールプレーン(ECS と EKS)× データプレーン(EC2 と Fargate)から、4 パターンの選択肢があります。
※ 【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 クラスターの作成と管理が広く利用可能になりました