コンテナの違いをまとめました。
違いが良くわからず、もやもやしている方々が、「なんだ、そんな事か」と感じてくれて、活用が進むと幸いです。
ECS(Fargete)とECS(EC2)とEKSの比較
Fargateの特徴
インフラ管理が手軽になる
クラスタであるインスタンスのOSやミドルウェアの構築が不要。
インスタンスタイプなどの設定や管理も不要。
Fargateの欠点
sshやdocker execが利用できない。
パブリックIPの固定割り当てができない
EC2とFargateの比較表
特徴 | EC2 | Fargate |
---|---|---|
マネージド度 | 自己管理型 | 完全にマネージド |
インフラ管理 | ユーザーがインスタンスを管理 | インフラストラクチャーはAWSが管理 |
課金 | インスタンスの実行時間に応じて課金 | コンテナのメモリとvCPUの使用量に基づいて課金 |
スケーラビリティ | 手動または自動スケーリングでスケーリング可能 | 自動スケーリングが可能 |
サーバレス | いいえ | はい |
開始速度 | インスタンスの起動に時間がかかる | コンテナは数秒で起動 |
リソース利用率 | ユーザーがインスタンスを最適化 | AWSが最適化 |
セキュリティ | ユーザーがセキュリティグループやキーペアを管理 | AWSがセキュリティを管理 |
タイプの選択 | さまざまなインスタンスタイプが利用可能 | インスタンスタイプの選択はありません |
ECS on EC2を利用するメリット、デメリット
コンテナが起動しているサーバにアクセスできる。
sshやdocker execが利用できる。パブリックIPの固定割り当てができる。
一方、デメリットはEC2のプロビジョニングと管理を行う必要がありインフラストラクチャ部分の管理工数がかかる。
ECSとEKSの比較表
特徴 | EKS | ECS |
---|---|---|
インフラストラクチャの管理や設定 | 必要 | 不要 |
対応コンテナ | Docker、OCIコンテナ | Dockerコンテナのみ |
制御面 | Kubernetes | Amazon ECSエージェント |
オートスケーリング | クラスタオートスケーラーを使用 | サービスレベルのオートスケーリング |
ノード管理 | マネージドノードグループやAmazon EC2インスタンス | クラスタ内のインスタンス管理 |
ネットワーキング | Amazon VPC CNIネットワーキング、ALB Ingress Controllerなど | Classic Load Balancer、Application Load Balancerなど |
サービスディスカバリ | Kubernetes Service Discovery | ECS Service Discovery |
ロールアウト | KubernetesのDeployment、StatefulSetなどを使用 | ECSのService、TaskDefinitionなどを使用 |
課金 | Kubernetesクラスターの管理料金、EC2インスタンスの課金 | ECSのコンテナの実行時間、使用したリソースの課金 |