目次
ECRとS3の違い
| 観点 | ECS | EKS |
|---|---|---|
| 基盤 | AWS独自 | Kubernetes(標準) |
| 学習コスト | 低い | 高い |
| 移植性 | AWSに依存 | マルチクラウド対応しやすい |
| エコシステム | AWS連携中心 | k8sの巨大エコシステム |
| 運用の複雑さ | シンプル | 複雑だが柔軟 |
| 料金 | クラスター料金なし | コントロールプレーン料金あり(時間課金) |
| 向く人 | AWS中心・手軽に始めたい | k8s経験者・大規模/複雑要件 |
ECS:AWS独自のコンテナオーケストレーション。シンプルで学習コストが低い。
EKS:Kubernetes(クバネティス:k8s)のマネージドサービス。標準的で高機能だが複雑。
AWS純正のオートマ車(ECS)と、業界標準のマニュアル車(EKS)の関係に近いイメージです。
ECSは、Elastic Container Serviceの略です。
EKSは、Elastic Kubernetes Serviceの略です。
どちらも起動タイプとしてFargate(サーバーレス)かEC2(自前のインスタンス管理)を選べます。
Fargate(ファーゲート)を使えばサーバー管理が不要になり、EC2を使えばインスタンスを細かく制御できます。
コントロールプレーン:何をどうするかを決める頭脳・指揮系統の部分
データプレーン:実際に処理(仕事)を行う現場・実働部隊の部分
ECSとは
AWSが独自開発したコンテナオーケストレーションサービスです。
主な特徴
・AWS独自の仕組みなので、AWSの他サービスとの統合がシンプル
・設定がわかりやすく、学習コストが低い
・タスク定義(TaskDefinition)でコンテナを定義する
・概念がシンプル(クラスター→サービス→タスク)
・AWSにロックインされるが、その分運用が楽
とにかくAWSでコンテナを手軽に動かしたい場合に向いています。
ECSの基本構成
| ECR └─コンテナイメージ ↓ ECSクラスター └─ECSサービス └─ECSタスク └─コンテナ |
ECSでは、主に次の用語を使います。
タスク定義:使用するイメージ、CPU、メモリ、ポートなどの設計書
タスク:タスク定義を基に実際に起動したコンテナ
サービス:指定した数のタスクを常時稼働させる仕組み
クラスター:サービスやタスクをまとめる論理的な単位
EKSとは
Kubernetesをマネージドで提供するサービスです。
Kubernetesのコントロールプレーン運用をAWSが肩代わりしてくれます。
主な特徴
・業界標準のKubernetesがそのまま使える
・k8sの豊富なエコシステム(Helm、Operator、各種ツール)が利用可能
・マルチクラウドや移植性が高い(他クラウドのk8sへ移りやすい)
・機能が豊富で柔軟だが、Kubernetes自体の学習コストが高い
・Pod、Deployment、Service、Namespaceなどk8sの概念を理解する必要がある
Kubernetesの知識を活かしたいマルチクラウドを見据えたい複雑な要件に柔軟に対応したい場合に向いています。
EKSの基本構成
| ECR └─コンテナイメージ ↓ EKSクラスター └─Deployment └─Pod └─コンテナ |
EKSではKubernetesの用語を使います。
Pod:コンテナを実行する最小単位
Deployment:Podの数や更新方法を管理
Service:Podにアクセスするためのネットワーク設定
Node:Podを実行するEC2などのコンピューティング環境
Cluster:Kubernetes環境全体
EKSはKubernetes互換なので、Helm、ArgoCD、Prometheusなど、Kubernetes向けの幅広いツールを利用できます。
関連の記事
