AWS

AWSのコンテナサービス比較|ECS・EKS・Fargate・Lambdaの選び方とExpress Modeで動かす手順

AWSのコンテナサービス比較|ECS・EKS・Fargate・Lambdaの選び方とExpress Modeで動かす手順

AWSでコンテナを動かす入口は、Amazon ECS、Amazon EKS、AWS Fargate、AWS Lambda、Amazon Lightsailの5つに整理できます。この記事では、それぞれが担う役割の違いを「実行基盤」と「計算資源」の二層で整理し、東京リージョンの実単価(2026年9月時点)で固定費を比べます。App Runnerの新規受付停止によって入口が変わった現状、ECS Express ModeをAWS CLIから公開して削除するまでのコマンド、そしてどのサービスを採用し、どれを見送るべきかの判断基準まで、実装者の目線でまとめました。

まとめ:AWSのコンテナサービスの選び方と2026年時点の結論

Web APIや社内向けの業務システムをAWSでコンテナ化するなら、起点はECS on Fargateです。サーバーの管理が要らず、Kubernetesの知識も不要で、1タスク0.25vCPU・0.5GBなら東京で月11ドル台から動きます。これまで「一番手軽な入口」だったApp Runnerは新規顧客の受付を終えており、代わりにECS Express Modeが、コンテナイメージとIAMロール2つを渡すだけでALB付きの環境を組み立てる役を引き継ぎました。

EKSは、Kubernetesのエコシステムや複数クラウドでの可搬性が要件にある場合に限って選びます。コントロールプレーンだけで月73ドル、バージョン追従を怠ると月438ドルに跳ねる固定費を、運用人員とあわせて負担できるかが分かれ目です。処理が断続的で1回15分以内に終わるならLambdaのコンテナイメージ実行で足ります。

AWSでコンテナを動かすサービスの全体像と2026年9月時点の顔ぶれ

サービス名を横に並べて比べる前に、役割の層を分けておくと選定の迷いが減ります。コンテナという技術そのものの仕組みや仮想マシンとの違いはコンテナとは?仮想マシンとの違いからDocker・企業の導入判断までで扱っているため、ここではAWS上の配置に絞ります。

実行基盤のECS・EKSと計算資源のFargate・EC2を分ける二層構造

ECSとEKSは「どのコンテナを何個、どう配置して入れ替えるか」を決めるオーケストレーター、FargateとEC2はコンテナが実際に載る計算資源です。組み合わせはECS on Fargate、ECS on EC2、EKS on Fargate、EKS on EC2の4通りで、Fargateは単独のサービスではなく、ECSかEKSの下で使う起動方式にあたります。

ECSはAWS独自のAPIで設定項目が少なく、EKSはKubernetesそのものをAWSが運用する形です。オーケストレーションという概念がなぜ要るのかはコンテナオーケストレーションとはに譲ります。計算資源側は、OSやインスタンスを自分で選ぶ必要がなければFargate、GPUや特定インスタンスの割引を効かせたいならEC2、という切り分けで足ります。

App Runnerの新規受付停止とECS Express Modeへの移行推奨

ソースコードやイメージを渡すだけで公開できたApp Runnerは、AWS公式の告知で新規顧客への提供を終了しました。既存の利用者は新しいサービスの作成も含めて使い続けられますが、新機能を追加する予定はないと明記されています。経緯と移行の段取りはAWS App Runnerは終了する?新規受付停止と移行先で詳しく扱っています。

同じ告知が移行先に挙げているのがECS Express Modeです。Express Modeの公式ドキュメントによると、イメージ・タスク実行ロール・インフラロールの3点だけで、Fargate上のECSサービス、TLS付きのロードバランサー、Auto Scaling、監視、ネットワークをまとめて構成します。Express Mode自体に追加料金はありません。いまから新規にAWSでコンテナを始めるなら、手軽さを求める入口はこちらになります。

ECS・EKS・Fargate・Lambda・Lightsailの料金と運用範囲の違い

比較の軸は2つに絞ります。常時かかる固定費と、自分たちが面倒を見る範囲です。単価は公式の料金ページと同じ値を返すPrice List API(東京リージョン、2026年9月11〜18日公開の版)から取りました。

東京リージョン単価で見るFargateとEKSコントロールプレーンの固定費

Fargateの料金はvCPUとメモリの確保量に対する時間課金で、東京ではvCPUが0.05056ドル毎時、メモリが1GBあたり0.00553ドル毎時です。これに対してEKSの料金は、ノード代とは別にクラスター1つあたり0.10ドル毎時がかかります。

表のFargateはいずれも1タスク分の料金です。1vCPU・2GBの構成はExpress Modeの既定値にあたります。

構成(東京・730時間換算) 時間単価 月額の目安
Fargate 0.25vCPU・0.5GB 約0.0154ドル 約11.2ドル
Fargate 1vCPU・2GB 約0.0616ドル 約45.0ドル
ALB 1台(LCU課金を除く) 0.0243ドル 約17.7ドル
EKSコントロールプレーン(標準サポート) 0.10ドル 73ドル
EKSコントロールプレーン(延長サポート) 0.60ドル 438ドル

EKSは、アプリを載せる前から小さなFargateタスク約6本分の費用がかかります。ALBの料金にはLCUという処理量課金(東京で0.008ドル毎時)が上乗せされるため、表の金額は下限の目安です。個別の料金構造はAWS Fargateとは?EC2との違い・料金で分解しています。

Lambdaのコンテナイメージ実行が向く処理と10GB上限などの制約

Lambdaは、zipの代わりにコンテナイメージをデプロイ単位にできます。公式ドキュメントが定める条件は、非圧縮で全レイヤー込み最大10GB、Linuxベースのみ、単一アーキテクチャのみ(マルチアーキイメージは不可)、読み取り専用ファイルシステムで動くこと、イメージは関数と同じリージョンのECRに置くこと、です。書き込めるのは512MB〜10,240MBで設定できる/tmpだけです。

向くのは、数百MB級のライブラリを抱えたPDF生成、画像変換、機械学習の推論といった、呼ばれたときだけ動く処理です。常時リクエストを受けるWebアプリや、標準の関数で1回15分を超えるバッチには向きません。Goでの具体的な手順はGo言語のLambda関数をコンテナイメージでデプロイする手順にまとめています。

EKSのバージョン追従コストと延長サポート0.60ドル毎時の落とし穴

EKSの固定費を読み違える最大の原因はバージョンです。EKSのバージョンライフサイクルでは、各マイナー版の標準サポートは14か月、その後に延長サポートが12か月続きます。延長サポートは既定で有効になっていて、期間に入った瞬間からクラスター単価が0.10ドルから0.60ドルへ6倍になります。

2026年9月時点で標準サポート中なのは1.36・1.35・1.34で、1.34の標準サポートは2026年12月2日に終わります。Kubernetesは平均4か月に1度マイナー版が出るため、年に2〜3回のアップグレード作業を運用計画に組み込めないチームは、EKSを選んだ時点で割高な延長料金を払い続けることになります。EKS本体の構成はAmazon EKSとは?仕組み・ノード提供形態と料金モデルを参照してください。

ECS Express ModeでコンテナをAWS CLIから公開・削除する手順

ここからは、ECS Express Modeで公開用のnginxコンテナを立ち上げ、削除して課金を止めるまでを公式のCLIチュートリアルに沿って示します。前提は、AWS CLI v2が設定済みで、東京リージョンにデフォルトVPC(パブリックサブネット付き)が残っていることです。

IAMロール2つを作成してExpress Modeの前提を揃えるコマンド

必要なロールは、イメージの取得とログ出力に使うタスク実行ロールと、ALBやAuto ScalingをExpress Modeが作るためのインフラロールです。信頼ポリシーのPrincipalがecs-tasks.amazonaws.comとecs.amazonaws.comで異なる点に注意してください。

aws iam create-role --role-name ecsTaskExecutionRole \
  --assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"},"Action":"sts:AssumeRole"}]}'

aws iam create-role --role-name ecsInfrastructureRoleForExpressServices \
  --assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"ecs.amazonaws.com"},"Action":"sts:AssumeRole"}]}'

aws iam attach-role-policy --role-name ecsTaskExecutionRole \
  --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy

aws iam attach-role-policy --role-name ecsInfrastructureRoleForExpressServices \
  --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRoleforExpressGatewayServices

IAMは結果整合のため、作成直後に次のコマンドを打つと「Unable to assume the service linked role」で失敗することがあります。公式ドキュメントも、1分ほど待ってから再実行するよう案内しています。

AWS CLIからFargateとALBを一括作成してコンテナを公開する

FargateとALBの作成に使うコマンドはcreate-express-gateway-serviceの1本です。ACCOUNT_IDは自分のアカウントIDに置き換えます。イメージは公開レジストリのnginxを使い、CPUとメモリを指定しなければ1vCPU・2GBで起動します。

aws ecs create-express-gateway-service \
  --region ap-northeast-1 \
  --primary-container '{"image":"public.ecr.aws/nginx/nginx:latest","containerPort":80}' \
  --execution-role-arn arn:aws:iam::ACCOUNT_ID:role/ecsTaskExecutionRole \
  --infrastructure-role-arn arn:aws:iam::ACCOUNT_ID:role/ecsInfrastructureRoleForExpressServices \
  --service-name hello-express \
  --health-check-path "/" \
  --scaling-target '{"minTaskCount":1,"maxTaskCount":2}' \
  --monitor-resources

--monitor-resourcesを付けると構築の進み具合が流れ、状態がACTIVEになればhttps://サービス名.ecs.ap-northeast-1.on.aws/形式のURLでアクセスできます。App Runnerの移行ガイドによると、構築にかかる時間の目安は通常3〜5分です。自社のイメージを使う場合は、先にAWS ECRとは?料金・ECSとの違いとDockerイメージのpush手順の要領でECRへpushしておきます。

状態確認と削除コマンドで検証環境の課金を止めるまでの具体的な流れ

検証が済んだら、その日のうちに消すのが鉄則です。表で見たとおり、放置すればFargateとALBだけで月60ドル強がかかり続けます。

aws ecs describe-express-gateway-service --service-arn SERVICE_ARN

aws ecs delete-express-gateway-service --service-arn SERVICE_ARN

delete-express-gateway-serviceのリファレンスによると、削除はタスクの停止に加えてALB、ターゲットグループ、セキュリティグループ、スケーリングポリシーまで取り除き、元に戻せません。IAMロールは削除対象に含まれないので、再利用しないなら別途消してください。Express Modeの設定項目やCloudFormationでの書き方はECS Express Modeとは?使い方・料金・CloudFormation対応で扱っています。

自社のワークロードに合うAWSコンテナサービスの判断基準と見送り条件

採用の条件を言い切ります。迷ったときは「固定費を誰が払い、バージョン追従を誰がやるか」から逆算してください。

Web APIや業務システムはECS on Fargateを起点にしてよい条件

HTTPで受けるステートレスなアプリで、チームにKubernetes経験者がいない、またはインフラ担当が1人以下という条件なら、ECS on Fargateを選んで間違いありません。コントロールプレーン代がかからず、OSパッチもAWS側の責任です。ECSの起動タイプやタスク定義の詳細はAWS ECSとは?コンテナの仕組み・起動タイプ・料金が詳しく扱っています。

EC2起動タイプへの切り替えは、GPUが要る、Savings Plansの割引を効かせたい、常時稼働のタスクが数十本を超える、のいずれかに当てはまってからで十分です。

EKSを採用すべき運用上の条件と小規模チームで導入を見送るべき場面

EKSを採るべきなのは、HelmチャートやArgo CDなどKubernetes前提の資産を既に持っている、オンプレミスやGKEと同じマニフェストで運用したい、サービス数が20を超えて名前空間やポリシーで細かく分けたい、といった場合です。

逆に、サービスが数本でアップグレード作業の担当者を置けないチームは見送るべきです。月73ドルの固定費より、年2〜3回のバージョン追従を怠ったときの月438ドルと、障害時にKubernetesを読める人がいないリスクのほうが重くのしかかります。「将来のために」とEKSから始めるのは過剰投資です。

Lambda・Lightsailで足りるケースとコンテナ化自体を見送る判断

1日数百回しか呼ばれないAPIや夜間の集計処理なら、常時起動のFargateより、呼ばれた分だけ課金されるLambdaのほうが安く済みます。使い分けの考え方はサーバーレスとは?コンテナとの使い分けで整理しています。WordPressや小さな社内ツールを1台で動かせればよく、スケールも要らないなら、固定月額で使えるAmazon Lightsailのコンテナ機能で十分です。

そもそもコンテナ化を見送るべきなのは、改修の予定がない安定稼働中のEC2アプリです。Dockerfileの作成、ECRの運用、CIの作り直しという移行コストに対して、得られるものがデプロイの再現性しかないからです。

AWSのコンテナ導入で詰まりやすい費用と構成の落とし穴と回避策

構築後に気づきがちな2つの落とし穴を挙げます。

ALBとNAT Gatewayの付帯費がFargate本体を上回る構成

小さなアプリほど、請求の主役はFargateではなく周辺のネットワーク費になります。0.25vCPUのタスク1本が月11ドルなのに対し、ALBは1台で月17.7ドルという費用の差です。タスクをプライベートサブネットに置いてNAT Gateway経由でイメージを取得する構成にすると、さらにNAT Gatewayの時間課金とデータ処理課金が加わります。

回避策は、ALBを複数サービスで共有することと、ECRへのVPCエンドポイントでNATを通さない経路を用意することです。Express Modeは、同じネットワーク設定のサービス同士でALBを自動的に共有する仕様なので、サービスを増やしてもALB代は比例して増えません。

Express Modeの既定値のまま本番に出すと起きる3つの問題

チュートリアルの最小コマンドは検証には便利ですが、そのまま本番に出すと問題が起きます。

  1. デフォルトVPCのパブリックサブネットにインターネット向けALBが作られるため、社内限定のはずのシステムが公開される
  2. CPUとメモリが既定値の1vCPU・2GBになり、軽いAPIでも1タスク月45ドルかかる
  3. サービス名を指定しないとイメージ名から自動生成され、環境ごとの識別が難しくなる

本番では、サブネットと公開範囲、--cpuと--memory、--service-nameを明示してください。自社システムのコンテナ移行で、ネットワーク設計やCI/CDまで含めて相談したい場合は、AWS・Google Cloud・Azureのインフラ構築支援で要件整理から対応しています。

AWSのコンテナサービスの選定・料金・導入時の使い方でよくある質問

AWSでコンテナを使い始める段階で、特によく寄せられる疑問に答えます。

AWSのコンテナサービスはECSとEKSのどちらから始めるべきですか?

Kubernetesの経験者がいない、または運用担当が少ないチームはECSから始めてください。ECSにはコントロールプレーンの料金がかからず、設定項目も少なく済みます。EKSは、Kubernetes前提のツールやマニフェストを既に持っている場合や、他のクラウドやオンプレミスと運用をそろえたい場合の選択肢です。後からEKSへ移ってもコンテナイメージはそのまま使えます。

FargateとEC2起動タイプはどちらが安いですか?

稼働しているタスクが少ないうちはFargateのほうが総額で安く済みます。EC2はインスタンスの空き容量にも料金を払うことになり、OSパッチの工数もかかるためです。常時稼働のタスクが数十本規模になり、インスタンスへ隙間なく詰められる場合や、Savings Plansで大きな割引を受けられる場合はEC2が有利になります。東京のFargate単価は、vCPUが0.05056ドル毎時、メモリが1GBあたり0.00553ドル毎時です(2026年9月時点)。

App Runnerはこれから新しく使えますか?

新規顧客としては使えません。AWSはApp Runnerの新規受付を終了しており、既存の利用者だけがサービスの作成や運用を続けられます。新機能の追加予定もないと公式に明記されています。これから手軽にコンテナを公開したい場合、AWSが移行先として推奨しているのはECS Express Modeです。移行はRoute 53の加重ルーティングで段階的に進める手順が公式にあります。

ECS Express Modeに追加料金はかかりますか?

Express Mode自体の料金はかかりません。課金されるのは、作られたFargateタスク、Application Load Balancer、CloudWatchのログとメトリクス、データ転送といった下位リソースの分です。既定値の1vCPU・2GBのタスク1本とALB1台なら、東京で月60ドル強が目安になります。同じネットワーク設定のサービス同士はALBを共有するため、サービスを2本目、3本目と増やしてもALB代は増えません。

コンテナイメージはどこに保存すればよいですか?

AWSで動かすならAmazon ECRが基本です。IAMでアクセスを制御できます。Lambdaでコンテナイメージを使う場合は、関数と同じリージョンのECRに置くことが条件になっています。東京リージョンのECRの保存料金は、1GBあたり月0.10ドルです(2026年9月時点)。古いイメージはライフサイクルポリシーで自動的に削除すると、保存料金が積み上がりません。

関連記事

お気に入りに入れた記事の一覧

資料請求

RELATED POSTS 関連記事

目次