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