本文へスキップ
BecomeCoder

AWS SAA(ソリューションアーキテクト)コース · 第4章 コンピューティングの設計 · レッスン24

コンピューティングの選択指針 ― EC2 vs コンテナ vs Lambda

導入

ここまで見てきたEC2コンテナ・Lambdaを、実際の設計問題でどう選び分けるか、判断フローとして整理します。SAAのコンピューティング分野の総まとめです。

説明

コンピューティングの選択は、運用負荷をどこまで下げたいか実行時間移植性コスト構造の4つの観点で決まります。

flowchart TD
    Q1["実行時間は15分以内で<br/>イベント駆動か?"] -->|はい| L["Lambda<br/>(運用負荷が最小)"]
    Q1 -->|いいえ| Q2["コンテナで<br/>移植性を確保したいか?"]
    Q2 -->|はい| Q3["インフラ管理を<br/>したくないか?"]
    Q3 -->|はい| FG["ECS/EKS on Fargate"]
    Q3 -->|いいえ| ECEC["ECS/EKS on EC2"]
    Q2 -->|いいえ| EC2["EC2<br/>(細かい制御が必要)"]
観点EC2コンテナ(ECS/EKS)Lambda
運用負荷高い(OS/パッチ管理)中(Fargateなら低い)最も低い
実行時間制限なし制限なし最大15分
移植性低い高い(どこでもコンテナは動く)低い(Lambda専用の書き方)
課金の粒度インスタンス起動時間タスク/Pod単位(Fargateは秒単位)リクエスト・実行時間単位

実務での順序としては、まず「Lambdaで15分以内・イベント駆動に収まるか」を検討し、収まらなければ「コンテナ化して移植性・スケーラビリティを確保できないか」を検討し、それでも特殊なOS依存や既存資産があればEC2、という優先順位で考えるのが一般的です。

読んでみよう

SAAの選択問題では、複数の選択肢が「技術的には動く」ことがよくあります。そこで決め手になるのは「運用の手間を最小化したい」「移植性を確保したい」といった問題文の要件キーワードです。要件から逆算してコンピューティングを選ぶ練習を、この判断フローで繰り返し行ってください。