メインコンテンツへスキップ
見出し画像

EC2とLambdaの違い|常時性・管理範囲・実行モデルで選ぶ

    Amazon EC2とAWS Lambdaは、どちらもAWS上で処理を実行します。しかし、EC2は仮想サーバーを起動して管理するサービス、LambdaはイベントやAPI呼び出しに応じてコードを実行するサーバーレスサービスです。

    サービス名を暗記するより、「常時動かす必要があるか」「OSを管理したいか」「処理はイベント単位か」を先に確認すると選びやすくなります。

    結論:常時稼働とOS制御が必要ならEC2、イベント駆動でサーバー管理を減らしたいならLambdaを中心に考える

    対象読者:CLF-C02でAWSの計算サービスが混ざる方

    読後にできること:要件文からEC2とLambdaの候補を説明できる

    確認順序:起動条件 → 管理範囲 → 実行時間 → スケーリングと依存先

    EC2は仮想サーバーを起動する

    Amazon EC2は、AWSクラウド内の仮想サーバーです。Instance typeでCPU、Memory、Network、Storageの組み合わせを選び、OSやApplicationを構成します。

    EC2が候補になりやすい条件は次のとおりです。

    • 常時稼働するProcessやServerが必要

    • OS、Runtime、Network設定を細かく制御したい

    • 15分を超える長い処理を継続したい

    • 独自SoftwareやBackground serviceを動かしたい

    • Instance単位のCapacityを設計したい

    AWSは物理Infrastructureを管理しますが、Guest OS、Patch、Runtime、Applicationの管理は利用者側に残ります。

    Lambdaはイベントごとにコードを実行する

    AWS Lambdaは、ServerをProvisionまたは管理せずにコードを実行するサービスです。API Gateway、Amazon S3、Amazon SQS、EventBridgeなどをTriggerにしてFunctionを起動できます。

    Lambdaが候補になりやすい条件は次のとおりです。

    • RequestやEventが来たときだけ処理する

    • ServerのCapacityやPatchを管理したくない

    • Trafficに応じた自動Scaleが必要

    • 短い独立した処理へ分割できる

    • 使用したRequest数と実行時間を中心に考えたい

    Lambda Functionの1回の実行時間は最大15分です。長い常駐Processをそのまま移すサービスではありません。

    管理範囲を比べる

    項目 / Amazon EC2 / AWS Lambda

    • 実行単位:Instance・Server / Function・Invocation

    • 起動条件:常時または任意に起動 / Event・API・Schedule

    • OS管理:利用者が管理 / AWSが基盤を管理

    • Scale:Auto Scaling等を設計 / Invocation量に応じて管理

    • 実行時間:Workload次第 / 1回最大15分

    • 状態:Server上に保持可能 / Invocation間の永続性を前提にしない

    Lambdaの実行環境は再利用される場合がありますが、Invocation間で状態が必ず残るとは限りません。永続Dataは外部Serviceへ保存します。

    問題文を3つの動詞へ変える

    Serverを管理する

    OSへLoginする、Agentを導入する、長時間Processを動かす、といった要件ならEC2が候補です。

    Eventを処理する

    File upload、Message、HTTP requestをTriggerに短い処理を行うならLambdaが候補です。

    Applicationを公開する

    単にWeb Applicationを公開したいだけなら、EC2とLambda以外にApp Runner、Elastic Beanstalk、ECSなども候補になります。問題文の管理範囲と実行モデルを確認します。

    Scaleだけで即決しない

    Lambdaは自動的にExecution environmentを増減しますが、接続先のDatabaseやExternal APIが同じ速度でScaleするとは限りません。

    EC2もAuto Scaling groupを構成できます。したがって「自動Scale」という一語だけではなく、次を確認します。

    1. Scaleの単位はInstanceかFunctionか

    2. Downstream serviceが処理できる量はどの程度か

    3. 常時Capacityが必要か、Event時だけ必要か

    4. 起動遅延やProvisioned capacityを許容できるか

    料金は実行モデルと利用率で考える

    EC2は起動しているInstanceの利用時間と関連Resourceを中心に料金を考えます。Workloadが常時あり、Capacityを継続的に使うなら、Instanceを適切にSizeし、購入OptionやAuto Scalingを検討します。

    LambdaはRequest数と実行時間、設定したMemoryなどを中心に料金を考えます。処理が断続的なら、使用しない時間のServer capacityを持たずに済む場合があります。

    ただし「Lambdaは必ず安い」「EC2は必ず高い」とは限りません。Trafficの量と変動、処理時間、外部Service、Data transfer、Monitoringを含めて比較します。

    EC2とLambda以外も候補になる

    Container imageを実行したい場合はAmazon ECSやAWS Fargate、Platform管理を減らしてWeb applicationを展開したい場合はAWS App RunnerやElastic Beanstalkも候補です。

    選択問題では、まず求められている抽象度を確認します。仮想Server、Container、Function、Managed application platformのどの層を選ぶ問題かを決めてから、同じ層の選択肢を比較します。

    選択肢を見る前のチェックリスト

    1. 常時稼働かイベント駆動か

    2. OSへアクセスする必要があるか

    3. 1回の処理は15分以内か

    4. 状態をどこへ保存するか

    5. Scaleの主体と下流の上限は何か

    6. 運用チームが管理できる範囲はどこまでか

    この順で要件を読むと、「Serverを動かす」のか「Eventを処理する」のかを分けられます。

    CertAtlas Labsでは、CLF-C02を含むIT資格の模擬試験を全選択肢の解説つきで公開しています。最新クーポンは資格一覧で確認してください。

    https://note.com/certatlaslabs/n/n1b4588275d1b

    本記事は一般的な学習情報です。実際の設計では、最新のService quota、料金、Region対応、Security要件を公式資料で確認してください。

    参考情報

     
     
    AWS・Microsoft・CompTIA・PMIのIT資格 実践形式 模擬試験(27資格)を制作。日本語中心で一部は英・西など多言語対応。各問全選択肢に解説付きで弱点確認に最適。各認定ベンダー非提携の独立教材。Udemyで公開中。