AWS には、Dockerコンテナを稼働させるためのサービスが複数あります。
主要なものは「Fargate」「ECS」「EKS」などです。
コンテナの稼働に必要な2つの役割を説明した上で、それぞれの違いを解説します。
⇒ Lambda と API Gateway の違い
⇒ Aurora エンドポイントの使い分け
コンテナサービスは大きく2種類に分かれる
AWS で提供されるコンテナサービスは、2種類に分類することができます。
まずはこれらの違いについて把握しておきましょう。
役割 | 機能名称 | AWS サービス |
---|---|---|
コンテナが動く場所 | データプレーン | Fargate, EC2 |
コンテナを管理する | コントロールプレーン | ECS, EKS |
コンテナが動く場所:データプレーン
データプレーンとは、「コンテナが稼働するサーバー」のことを指します。
AWS では、Fargate と EC2 が選択できます。
コンテナを管理する:コントロールプレーン
コントロールプレーンとは、「Dockerコンテナを管理する機能」です。
AWS では、ECS と EKS が選択できます。オープンソースの Kubernetes も有名です。
コンテナをどのように配置するか、デプロイ時にどのようにコンテナを入れ替えるか、仮想ネットワークの提供など、運用面で必要な各種機能が用意されています。
データプレーン(Fargate/EC2)を比較
コンテナが実際に稼働する「データプレーン」について考えます。
EC2
その名の通り、EC2 インスタンス上でコンテナを動かす 方式です。
リソースが不足した際には、EC2 インスタンスを追加することで対応します。
スポットインスタンスやリザーブドインスンタンスでコストを抑えることが可能です。
⇒ EC2 料金を節約する方法
Fargate (ファーゲート)
AWS 側がインスタンスを管理してくれる方式で、読み方は「ファーゲート」です。
裏にあるリソースを気にすることなく、コンテナを登録するだけで利用できます。
コンテナ単位(正確にはタスク単位)での料金が発生します。
EC2 方式とは異なり、インスタンス単位での課金ではないため無駄がありません。
コントロールプレーン(ECS/EKS)を比較
次に、コンテナを管理するための「コントロールプレーン」を比較します。
ECS
「Elastic Container Service」の略で、AWS が開発したコンテナ管理サービス です。
AWS 上の各種サービスとスムーズに連携できる特徴を持ちます。
組み合わせるデータプレーンは、EC2・Fargate のどちらでも構いません。
EKS
「Elastic Container Serice for Kubernetes」の略で、Kubernetes のマネージドサービス です。
オープンソースの Kubernetes が殆どそのまま提供されています。
現状では EC2 でしか使用できません。Fargate 対応予定はありますが、時期は未定です。
EC2・Fargate、どちらのデータプレーンとも組み合わせることができます。
【2019/12/04 更新】EKS+Fargateの組み合わせが可能となりました。
【2018/12/20 追記】2018年12月より、東京リージョンでも EKS が提供開始されました。
コンテナサービスの組み合わせ
データプレーンとコントロールプレーンのうち、EKS + Fargate はまだ不可能です。
2019年12月より、全てのコンテナサービスを自由に組み合わせることが可能となりました。
組み合わせ | 対応状況 |
---|---|
ECS + EC2 | OK |
ECS + Fargate | OK |
EKS + EC2 | OK |
EKS + Fargate | OK |
【2019/12/04 更新】EKS+Fargateの組み合わせがサポート開始されました。
まとめ
AWS のコンテナ関連サービスについて解説しました。
- データプレーン:コンテナを動かす場所(EC2/Fargate)
- コントロールプレーン:コンテナの管理方法(ECS/EKS)
それぞれの特徴を理解したうえで、適切なサービスを選択しましょう。
【関連記事】
⇒ AWS のサーバー設置場所まとめ
⇒ AWS Lambda と API Gateway の違いとは
⇒ AWS でサーバーレス構成を実現するサービス
⇒ AWS・GCP・Azure の比較(コンピューティング編)
⇒ AWS サービスの解説(コンピューティング編)