ECSとは?コンテナ船の運行管理室|Fargateとの関係と料金

配属先で「このアプリ、イーシーエスに載せ替えるから」「タスク定義だけ直しといて」といった会話が飛び交い、うなずくしかない場面はありませんか。ここで出てくるのがAWSのAmazon ECSです。

この記事では、Amazon ECSを「コンテナ船の運行管理室」というたとえ話を軸に、覚えるべき4つの言葉、Fargateとの関係、料金の考え方まで通しで整理します。

結論から言うと、Amazon ECSとはコンテナをどこで何個動かすかを決めて、落ちたら黙って立て直してくれるサービスです。

この記事でわかること

  • Amazon ECSがどんなサービスか(コンテナ船の運行管理室というたとえ)
  • タスク定義・タスク・サービス・クラスターの関係と、起動タイプ2つの選び方
  • Fargateとの関係、ECRやELBとのつながり、Amazon ECSの料金と無料枠
目次

Amazon ECSとは?一言でいうと「コンテナ船の運行管理室」

Amazon ECSとは、コンテナを動かし続ける仕事をまとめて引き受けるAWSのサービスです。AWS公式は「完全管理型のコンテナオーケストレーションサービス」と表現し、「コンテナ化されたアプリケーションをあらゆる規模で簡単に構築、管理、実行する」ためのものだと説明しています。

ここでいうコンテナとは、アプリと、それが動くのに必要な部品をひとつの箱に詰めて、どこへ持っていっても同じように動くようにした仕組みのことです。名前のとおり、港で船に積むあの四角い箱がもとになっています。

そこで思い浮かべてほしいのが、港の運行管理室です。管理室の人は、箱そのものを作りません。荷物を運ぶわけでもありません。やっているのは、どの便を何隻出すか決めること、空いている岸壁に割り当てること、そして1隻が沈んだらすぐ代わりを出すことです。

Amazon ECSの仕事も、これとまったく同じです。コンテナの中身は開発チームが作ります。ECSはその箱を「何個」「どこで」動かし続けるかだけを見ています。

ここを取り違えると、あとの説明がすべてぼやけます。ECSはアプリを作る道具ではなく、動かし続ける係だ、と覚えてください。

タスク定義・サービス・タスク・クラスターの関係と、Fargate/EC2という載せる場所を示したECSの構成図
図: タスク定義・サービス・タスク・クラスターの関係と、Fargate/EC2という載せる場所を示したECSの構成図(筆者作成)

Amazon ECSの仕組みと使いどころ

Amazon ECSで覚える言葉は4つだけ

用語が多く見えますが、最初に押さえるのは4つで足ります。

  • タスク定義 — 公式の言葉では「タスク定義と呼ばれる宣言型の JavaScript Object Notation (JSON) テンプレート」。使うイメージ、メモリとCPUの量、ストレージ、コンテナ同士のつなぎ方を書きます。いわば船の仕様書です
  • タスク — その仕様書どおりに実際に動いている1隻。動いては消える、使い捨ての存在です
  • サービス — 公式には「指定した数のタスクが常に実行され、失敗した場合は再度開始される」とあります。つまり運航ダイヤ。「3隻は常に出しておく」という約束です
  • クラスター — それらをまとめて置く入れ物。港そのものにあたります

仕様書があり、その写しが何隻か走っていて、隻数を守る約束がある。この3段構えが分かれば、コンソールの画面はぐっと読みやすくなります。

Amazon ECSの起動タイプは2つ

次に決めるのが、コンテナを実際に載せる場所です。選択肢は2つあります。

AWS Fargateは、載せる場所をAWSに任せる方式です。公式は、これを使えば「サーバーの管理、キャパシティプランニング、セキュリティを確保するためのコンテナワークロードの分離方法の決定について心配する必要がなくなります」としています。

Amazon EC2は、自分でサーバーを並べ、その上にコンテナを載せる方式です。手はかかりますが、載せ方まで細かく決められます。

迷ったらFargateから検討します。台数がとても多い、特殊なマシンが要る、といった事情が出てきた時点でEC2を考える。この順番なら遠回りが少なくてすみます。

新社会人がAmazon ECSに出会う場面

入社1〜3年目でよくあるのは、「このアプリのバージョン上げといて」と頼まれる場面です。中身は、新しいイメージを指すタスク定義を作り、サービスにそれを使わせる作業になります。

確かめる順番を決めておくと、ぐっと動きやすくなります。

  1. どのクラスターの、どのサービスの話かをはっきりさせる
  2. そのサービスが今どのタスク定義のリビジョン(版番号)を使っているかを見る
  3. タスクが何個動く約束で、実際に何個動いているかを見比べる

最初のつまずきは、たいてい2番目です。タスク定義を直して新しいリビジョンを作っただけでは、動いているタスクは入れ替わりません。サービス側を新しいリビジョンで更新して、はじめて切り替わります。「直したのに反映されない」の多くはこれが原因です。

もうひとつ多いのが、タスクが立ち上がっては消えるのを繰り返す状態です。原因はだいたい2つで、イメージを取ってこられていないか、ヘルスチェック(生きているかの確認)に通っていないかです。

Amazon ECSと関連サービスの違い・つながり

いちばん誤解されやすいのが、Fargateとの関係です。この2つは並んで比べるものではありません。ECSが「何をどれだけ動かすか」を決める側、Fargateが「その置き場所」です。運行管理室に対する岸壁、と考えると近い。だから現場では「ECS on Fargate」「ECS on EC2」という言い方をします。

コンテナのイメージそのものを預かるのはECR(Amazon Elastic Container Registry)です。ECSはタスクを立てるたび、ここからイメージを取ってきます。

増えたり減ったりするタスクへ通信を振り分けるのはELBの担当です。タスクは入れ替わるたびに居場所が変わるので、前にELBを置いて入口を固定します。載せる場所としてサーバーを自分で持つ場合は、その正体がEC2です。

権限まわりはIAMが受け持ちます。公式は「コンテナそれぞれにきめ細かく許可を割り当てることができる」としており、タスク単位で権限を絞れるのがECSの強みのひとつです。CPUやメモリの使われ具合、そしてログを見るのはCloudWatchです。

迷いやすいのがLambdaとの使い分けでしょう。呼ばれたときだけ短く動く処理はLambda、常に受け付け続けるWebアプリのような処理はECS、と分けるのが出発点になります。処理を順番待ちさせたいときはSQSにためて、ECSのタスクが取り出す形もよく使われます。

なお、公式にはECS Anywhereという機能もあり、「使い慣れた同じ Amazon ECS コンソールとオペレーターツールを使用して、オンプレミスのコンテナワークロードを管理」できるとされています。自社の機械室に残った分まで同じ画面で見られる、という位置づけです。

現場ではAmazon ECSをこう見ている

ここからは、運用監視から設計構築まで10年ほどインフラを見てきた筆者(AWS認定8冠)が、実際の案件で使っている物差しを書きます。公式ページには載っていない部分です。

まず「常に動いているのか、呼ばれたときだけか」で分けます。1日に数回しか動かない処理をECSのサービスとして常駐させると、待っているだけの時間にお金を払い続けることになります。そこはLambdaの領分です。逆に、起動しっぱなしで受け付けるもの、動き続ける処理はECSが向きます。

次に「立ち上がるまでの時間」を設計に織り込みます。タスクは押せばすぐ立つものではありません。イメージを取ってきて、起動して、ヘルスチェックに通るまで、ふつうに数十秒かかります。アクセスが急に増えてから増やしはじめても間に合わない。だから最小のタスク数は、平常時よりすこし余裕を持たせておきます。

最後に「ログの出し先」を動かす前に決めます。タスクは消えると、その中に書いたファイルもきれいに消えます。落ちた理由を後から追えるかどうかは、タスク定義にログの設定を入れてあるかだけで決まります。「なぜ落ちたか分からない」で止まる案件の大半は、ここを後回しにしたものです。

新社会人のうちは、この3つ(常時動くのか・立ち上がりの時間・ログの出し先)を先輩に確認できるだけで、設計の会話にちゃんと参加できます。

Amazon ECSの料金と無料枠

Amazon ECSの料金は、どちらの起動タイプを選ぶかで考え方が変わります。

EC2起動タイプの場合、ECS自体はタダです。公式にも「追加料金は発生しません」とあり、料金がかかるのは下で動くEC2やストレージなど、実際に作ったAWSリソースに対してだけです。

Fargate起動タイプの場合は、割り当てたCPUとメモリの量に、動いていた時間をかけたぶんを払います。公式は「vCPU とメモリリソースは、コンテナイメージを取得した時点から Amazon ECS タスク が終了するまでを対象として計算」すると説明しています。さらに「料金は 1 秒あたりで計算され、最低 1 分です」とあり、秒単位の細かい課金です。

執筆時点(2026年9月)に公式料金ページへ載っている米国東部(バージニア北部)のLinux/x86の単価は、次のとおりです。

  • vCPU — 1秒あたり 0.000011244 USD(1時間に直すと約0.0405 USD)
  • メモリ — 1GBにつき1秒あたり 0.000001235 USD(1時間に直すと約0.0044 USD)
  • 一時的なストレージ — 1GBにつき1秒あたり 0.0000000308 USD

いちばん小さい構成である0.25vCPU・0.5GBのタスクを、1か月(730時間)動かしっぱなしにすると、ざっと9 USD前後という計算になります。金額の当たりをつけるときは、この「小さいタスク1つで月10ドル弱」を基準にすると見通しが立ちます。

無料枠については注意が要ります。公式の料金ページに、ECSやFargateの常時使える無料枠の記載はありません。EC2起動タイプにして、下のEC2が無料枠の範囲に収まればその分はかかりませんが、Fargateで練習用のサービスを立てたままにすると、動いている時間ぶんは静かに積み上がります。試したあとは、動かすタスク数を0にするか、サービスごと消しておきましょう。

なお単価はリージョンによって違い、見直されることもあります。実際に使う前には、かならず公式の料金ページで最新の内容を確認してください。

Amazon ECSのまとめ

ここまでの要点を整理します。

  • Amazon ECSは、コンテナを何個どこで動かし続けるかを決める「コンテナ船の運行管理室」
  • 覚える言葉は4つ。仕様書がタスク定義、動いている1隻がタスク、隻数の約束がサービス、入れ物がクラスター
  • Fargateは比べる相手ではなく置き場所。料金は、EC2起動タイプならECS自体は無料、Fargateなら秒単位の従量制

まずは自分の現場のコンソールを開いて、どのサービスがタスクを何個動かす約束になっているかを見てみてください。その数字が読めるようになると、障害のときに「足りていないのか、落ちているのか」を最初のひと目で切り分けられます。

参考リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメント一覧 (1件)

コメントする

目次