メニュー

Kubernetes と AWS ECS:不公平な比較か?AWS におけるコンテナーオーケストレーション:ECS、EKS、Kubernetes の比較

目次

このページを共有

Yifat Perry
Yifat Perry

AWS Elastic Container Service (ECS) は、Amazon 独自のコンテナーオーケストレーションプラットフォームです。使いやすさが特徴ですが、コンテナーオーケストレーションの事実上の標準である Kubernetes に対する本当の代替手段と言えるのでしょうか?

本稿では、ECS を純粋な Kubernetes と比較するのは完全には適切でないと主張します。なぜなら ECS は Kubernetes が提供していない フルマネージドな体験を提供するからです。さらに、同じ条件で比較可能にする第 3 の選択肢として Amazon Elastic Kubernetes Service (EKS) を検討します。また、NetApp Cloud Volumes ONTAP が AWS 上で ECS、EKS、あるいは純粋な Kubernetes に対してどのようにストレージを提供できるかも紹介します。

AWS ECS とは何ですか?

AWS ECS 解説:Amazon のコンテナーオーケストレーションサービス

Amazon Elastic Container Service(Amazon ECS) は、Docker コンテナーを実行・管理するコンテナーオーケストレーションサービスです。Amazon クラウド上で仮想マシンのクラスターを稼働させ、複数の アベイラビリティーゾーン(AZ) にわたって、これらのマシン上のコンテナー群の管理・スケーリング・スケジューリングを行います。

ECS は、クラスターの状態をプログラム的に確認・変更し、コンテナーに対して操作を実行し、さらにクラスターに関連する IAM、CloudWatch、CloudTrail といった Amazon サービスへ直接アクセスできる便利な方法を提供します。

Diagram - Task Definition

図 – タスク定義(出典:AWS

Amazon ECS の利点:

  • サーバーレス型インフラストラクチャ

ECS ではコンテナーを、仮想マシンを直接管理することなく稼働させることができます。サービスが VM を自動的にプロビジョニングし、その上でコンテナーを管理します。

  • 統合されたセキュリティ

Amazon ECS はデフォルトでセキュアに構成されています。すべてのコンテナーは Virtual Private Cloud(VPC) 内で起動され、分離された安全なネットワークを利用します。

  • シームレスな AWS 統合

ECS は、コンテナ化されたワークロードに有用な他の Amazon サービスと密接に統合されています。例:Elastic Load Balancing、CloudWatch、CloudFormation、IAM

  • スポットインスタンスの活用

コンテナーは不変であるため、多くのワークロードを Amazon EC2 スポットインスタンス 上で実行できます(スポットインスタンスは予告なしに終了される可能性があります)。これにより、オンデマンドインスタンスと比べて最大 90% のコスト削減が可能です。

Kubernetes とは何ですか?

Kubernetes は、コンテナーオーケストレーションのための オープンソースフレームワーク です。もともとは Google によって開発され、世界最大規模のコンテナ化システムを運用してきた経験に基づいています。現在では広く普及しており、コンテナーオーケストレーションの 事実上の標準 とされています。

Kubernetes の主な機能:

  • サービスディスカバリーとロードバランシング
  • ストレージのオーケストレーション(永続ストレージを含む
  • コンテナ化アプリケーションの自動ロールバック
  • Kubernetes クラスターの自己修復(Self-Healing)
  • Secrets および設定管理

Kubernetes Cluster diagram

図 – Kubernetes クラスター(出典:Kubernetes.io

AWS ECS vs. Kubernetes

Kubernetes と Amazon ECS の比較は、完全に公平とは言えません。なぜなら Amazon ECS は、コンテナーオーケストレーションのプラットフォーム と、これを運用しハードウェアリソースを提供する マネージドサービス の 2 要素を 1 つの製品に統合しているのに対し、Kubernetes はそのうち オーケストレーション部分のみ を提供しているからです。

現在、多くの企業が Kubernetes の複雑さを軽減し、より迅速に本番稼働できるようにする マネージド Kubernetes サービス を採用しています。代表例として Amazon Elastic Kubernetes Service (EKS)、Azure Kubernetes Service (AKS)、Google Kubernetes Engine (GKE) があります。これらのサービスは Kubernetes に管理レイヤーを追加し、Amazon ECS と直接比較できるようにしています。

Kubernetes の利点

  • サーバーレス型インフラストラクチャ

Kubernetes コンテナーは VM に直接アクセスすることなく実行できます。また、AWS FargateAzure Container Instances と統合された、真のサーバーレス Kubernetes ソリューションも存在します。

  • 統合されたセキュリティ

Kubernetes は独自のプライベートネットワークを構築し、隔離された安全なネットワークリソースを提供します。

  • ベンダーロックインの回避

Amazon ECS と異なり、Kubernetes はプラットフォームに依存せず、あらゆるクラウドベンダーやオンプレミス環境で動作可能です。Kubernetes ワークロードは可搬性が高く、ハイブリッドクラウドやマルチクラウド戦略をサポートします。

  • オープンソース

Kubernetes は大規模なオープンソースコミュニティに支えられ、豊富なツールやプラグインのエコシステム、強力なサポート、そして積極的な開発ロードマップを備えています。

  • 実運用での実績

Kubernetes は、あらゆるコンテナーオーケストレーションプラットフォームの中で最も豊富な本番運用経験を持ち、ほぼすべてのスケールで堅牢かつ信頼性の高い実績を示しています。 

AWS ECS vs. EKS

AWS ECS は、AWS 内でコンテナーサービスを管理する方法を提供します。

しかし、Kubernetes を直接 AWS サービス内で運用したい場合はどうでしょうか?

ここで登場するのが Amazon Elastic Kubernetes Service(Amazon EKS) です。これは AWS における Kubernetes の 管理プラットフォーム です。

EKS は Kubernetes プロジェクトによって認証されているため、Kubernetes エコシステムで利用している既存のアプリケーション、ツール、プラグインはすべて EKS 上で動作することが保証されています。

以下に ECS と EKS の主な相違点を示します。

  Amazon ECS Amazon EKS
価格 ECS 自体は無料で、使用した Amazon EC2 リソースに対してのみ料金を支払います。 EKS管理レイヤでは、クラスタあたり月額144ドルの追加コストが発生します。
導入の容易さ AWSマネジメント コンソールから直接、タスクをシームレスに導入します。 クラスタの構成と導入にはKopsやCloudFormationのテンプレートを使用しますが、これはより複雑です。
互換性 Amazon固有。 マルチクラウド環境とハイブリッド クラウド環境をサポートします。

AWS ECS、EKS、それとも純粋な Kubernetes:どのオプションを選ぶべきか?

Amazon ECS、EKS、そして自己管理型 Kubernetes の選択は、プロジェクトの規模と種類によって異なります。

  • 小規模なデプロイメント は、シームレスなデプロイと設定が可能なため、一般的に ECS を好みます。
  • 大規模またはハイブリッドデプロイメント では、より強力なカスタマイズ性と、クラウド間やオンプレミス環境との優れた可搬性を提供する EKS が選ばれる傾向があります。
  • レガシーワークロード をコンテナ化環境へ移行する場合は、純粋な Kubernetes が最も大きな利点をもたらすことが多いです。まずローカルで Dev/Test/Production 環境を構築し、その後必要に応じてクラウドに移行できます。

ECS、Kubernetes、および Cloud Volumes ONTAP

コンテナ化されたワークロードを導入する際、KubernetesAmazon ECS の両方には特定の制約があり、追加のサポートなしでエンタープライズレベルでの利用を難しくすることがあります。例えば、データベースなどでコンテナー内にデータを永続的に保存する必要がある場合のコストや、テスト目的でコンテナー内のデータが必要な場合などです。まさにここで役立つのが NetApp Cloud Volumes ONTAP です。

NetApp Cloud Volumes ONTAP は、エンタープライズ向けデータ管理のリーディングソリューションであり、AWS、Azure、Google Cloud 上に構築された安全で実績あるストレージ管理サービスを提供します。NetApp Trident を活用することで、Azure Disk、Amazon EBS、Google Persistent Disk 上にストレージボリュームを動的かつ自動的にプロビジョニングでき、ユーザー側での手間は一切不要です。

Cloud Volumes ONTAP は、ファイルサービス、データベース、DevOps、アプリケーションワークロードといった主要なエンタープライズユースケースをサポートします。特に Kubernetes ストレージ分野では、コンテナ化されたワークロードの永続ストレージ要件を満たすための緊密な統合を実現し、クラウドネイティブでは利用できない強力な機能群を提供します。

その主な機能には以下が含まれます:













Drift chat loading