InfraAcademy

InfraAcademy Blog

EC2とLambdaの違いは?CLF-C02で問われる使い分けを、実行時間・料金・責任範囲から整理して練習問題で確認

著者: ryu | #aws #ec2 #AWS認定
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

この記事を共有

こんにちは、インフラエンジニアのryuです。

AWSクラウドプラクティショナー(CLF-C02)の勉強をしていると、EC2とLambdaの使い分けを聞く問題によく出会います。

どちらもプログラムを動かすためのサービスなので、最初は違いがぼんやりしがちです。

この記事では、EC2とLambdaの違いを、試験で問われやすい3つの観点に絞って整理します。そのあとで、使い分けを確かめる練習問題を8問用意しました。

問題はすべてオリジナルで、1問ずつ正解と解説を付けています。

EC2とLambdaは試験のどこで出る?

CLF-C02には4つの出題分野があります。EC2とLambdaの話がいちばん多く出てくるのは、分野3のクラウドテクノロジーとサービスです。

分野 配点 EC2・Lambdaとの関係
1. クラウドのコンセプト 24% 使った分だけ払う、という考え方
2. セキュリティとコンプライアンス 30% 責任共有モデルでの役割分担
3. クラウドテクノロジーとサービス 34% コンピューティングサービスの使い分け
4. 請求、料金、およびサポート 12% 料金のかかり方、購入オプション

表を見ると分かるように、EC2とLambdaは分野3だけの話ではありません。責任共有モデルや料金の問題でも、この2つの違いが前提になります。

試験は65問(採点される50問と採点されない15問)で、合格ラインは100〜1,000のスコアのうち700です。試験の全体像はCLF-C02の勉強方法でまとめているので、先にそちらを読んでおくと流れがつかみやすいです。

EC2とLambdaの違いとは?

まずは、それぞれがどんなサービスなのかを一言で確認します。

EC2は、AWS上に仮想サーバーを借りるサービスです。OSを選んでサーバーを起動し、その上に自分でソフトウェアを入れて使います。

Lambdaは、サーバーを用意せずにコードを実行できるサービスです。イベントが起きたときだけコードが動き、サーバーの管理はAWSが行います。

Lambdaのように、利用者がサーバーを管理しなくてよい仕組みをサーバーレスと呼びます。サーバーが無いわけではなく、利用者から見えないだけです。

EC2そのものの基本はEC2とは?概要やメリットを詳しく解説で紹介しています。ここでは、試験で差がつく3つの観点で比べていきます。

観点1:動かせる時間とサーバーの管理

いちばん大きな違いは、どれだけ長く動かせるかです。

項目 EC2 Lambda
動かせる時間 止めるまでずっと 1回の実行は最大900秒(15分)
OSの選択 自分で選ぶ(Linux、Windowsなど) 選ばない(AWSが管理)
ソフトウェアの導入 自由に入れられる コードと必要なライブラリを渡す
動き出すきっかけ 起動している間は常に待ち受け イベントが起きたときに実行
メモリ インスタンスタイプで決まる 128MB〜10,240MBの範囲で指定

Lambdaのタイムアウトは最大900秒で、この上限は申請しても引き上げられません。1時間かかるバッチ処理や、常に接続を待ち受けるサーバーは、Lambdaには向いていません。

逆に、ファイルがS3に置かれたら画像を縮小する、決まった時刻に短い処理を走らせる、といった短い処理はLambdaの得意分野です。

観点2:料金のかかり方

料金の考え方も大きく違います。

項目 EC2(オンデマンド) Lambda
何に払うか インスタンスを動かしている時間 リクエスト数と、実行時間×メモリ量
課金の単位 秒単位(最低60秒。LinuxやWindowsの場合) ミリ秒単位
何もしていないとき 起動していれば料金がかかる 実行されなければ実行時間の料金はかからない
無料利用枠 アカウントの無料利用枠の条件による 毎月100万リクエストと40万GB秒

ここで押さえておきたいのは、EC2は起動している間ずっと料金がかかり、Lambdaは実行した分だけ料金がかかるという点です。

アクセスが1日に数回しかない処理をEC2で常に動かしておくと、ほとんどの時間はサーバーが何もせずに料金だけかかります。こういうケースでLambdaが候補になります。

一方で、24時間ずっと処理が続くような使い方なら、EC2のほうが分かりやすく、購入オプションで安くすることもできます。EC2の料金で失敗しないための考え方はEC2の無料枠を超えて課金されてしまった話も参考になります。

EC2の購入オプションも、試験ではよく聞かれます。

購入オプション 特徴
オンデマンド 使った分だけ払う。長期の約束はいらない
リザーブドインスタンス、Savings Plans 1年か3年の利用を約束して割引を受ける
スポットインスタンス 空いている容量を安く使う。AWSの都合で中断されることがある
Dedicated Hosts 物理サーバーを専有する。ライセンスの都合などで使う

観点3:責任共有モデルでの役割分担

責任共有モデルは、AWSと利用者がセキュリティの責任をどう分けるかを決めた考え方です。EC2とLambdaでは、利用者が受け持つ範囲が違います。

作業 EC2 Lambda
物理サーバーやデータセンターの管理 AWS AWS
ゲストOSのパッチ適用 利用者 AWS
ランタイムの管理 利用者 AWS(ただし使うランタイムの選択は利用者)
アプリケーションのコード 利用者 利用者
IAMの権限やアクセスの設定 利用者 利用者

EC2では、OSのセキュリティパッチを当てるのは利用者の仕事です。Lambdaでは、OSやランタイムの基盤はAWSが管理します。

どちらでも、自分が書いたコードと、IAMの権限の設定は利用者の責任です。サーバーレスでも利用者の責任がゼロになるわけではない、という点は試験でもねらわれやすいです。

練習問題で使い分けを確かめよう

ここからは練習問題です。正解は各問題の下にある引用ブロックに書いています。自分の答えを決めてから読み進めてください。

問題1

ある会社では、毎晩1回、約1時間かかるデータの集計処理を実行しています。処理の途中で止まると困ります。この処理を動かすのに最も適したサービスはどれですか。

  • A. AWS Lambda
  • B. Amazon EC2
  • C. Amazon S3
  • D. Amazon CloudFront

正解:B

Lambdaの1回の実行は最大900秒(15分)で、1時間かかる処理はそのままでは動かせません。EC2なら、処理が終わるまで動かし続けられます。S3はストレージ、CloudFrontはコンテンツ配信のサービスで、処理を実行するものではありません。

問題2

利用者がS3バケットに画像をアップロードしたときだけ、サムネイル画像を作る処理を動かしたいと考えています。サーバーの管理はしたくありません。最も適したサービスはどれですか。

  • A. Amazon EC2
  • B. Amazon EBS
  • C. AWS Lambda
  • D. Amazon RDS

正解:C

Lambdaは、S3へのアップロードのようなイベントをきっかけにコードを実行できます。サーバーの管理もAWSが行います。EC2はサーバーの管理が必要です。EBSはEC2用のブロックストレージ、RDSはリレーショナルデータベースのサービスです。

問題3

責任共有モデルにおいて、Amazon EC2インスタンスのゲストOSにセキュリティパッチを適用する責任を持つのは誰ですか。

  • A. AWS
  • B. 利用者
  • C. AWSと利用者が半分ずつ
  • D. インターネットサービスプロバイダー

正解:B

EC2では、ゲストOSのパッチ適用は利用者の責任です。AWSが責任を持つのは、物理サーバーやデータセンター、仮想化の基盤などです。Lambdaの場合はOSの管理をAWSが行うので、この違いを区別しておきましょう。

問題4

AWS Lambdaの料金を決める要素の組み合わせとして正しいものはどれですか。

  • A. 起動しているインスタンスの台数と、起動していた時間
  • B. リクエストの数と、コードの実行時間(割り当てたメモリ量に応じる)
  • C. 保存しているデータの量と、取り出した回数
  • D. 契約した年数と、前払いした金額

正解:B

Lambdaは、リクエストの数と、実行時間に割り当てたメモリ量をかけた分(GB秒)で料金が決まります。実行時間はミリ秒単位で計算されます。AはEC2のオンデマンドの考え方、Cはストレージの考え方、Dはリザーブドインスタンスのような長期の約束に近い考え方です。

問題5

開発チームが、特定のバージョンのミドルウェアを自分たちでインストールし、OSの設定も細かく変えたいと考えています。最も適したサービスはどれですか。

  • A. AWS Lambda
  • B. Amazon EC2
  • C. AWS Fargate
  • D. Amazon DynamoDB

正解:B

OSを選び、ミドルウェアを自由にインストールして設定を変えられるのはEC2です。LambdaやFargateは、OSの管理をAWSに任せるサービスなので、OSの設定を細かく変えることはできません。DynamoDBはNoSQLのデータベースです。

問題6

コンテナで作ったアプリケーションを、EC2インスタンスを管理せずに動かしたいと考えています。最も適したサービスはどれですか。

  • A. AWS Fargate
  • B. Amazon EC2
  • C. Amazon S3 Glacier
  • D. AWS Direct Connect

正解:A

Fargateは、コンテナ用のサーバーレスのコンピューティングサービスです。Amazon ECSやAmazon EKSと組み合わせて、サーバーを管理せずにコンテナを動かせます。EC2でもコンテナは動かせますが、インスタンスの管理が必要です。

問題7

社内向けの小さな機能があり、呼び出されるのは1日に数回だけです。呼び出されていない時間の料金をできるだけ抑えたいと考えています。最も適した方法はどれですか。

  • A. EC2インスタンスを24時間起動したままにしておく
  • B. 大きなインスタンスタイプのEC2を使う
  • C. 処理をAWS Lambdaで実行する
  • D. Dedicated Hostsを使う

正解:C

Lambdaは実行された分だけ料金がかかるので、呼び出されていない時間に実行時間の料金はかかりません。EC2は起動している間ずっと料金がかかるため、AやBはアイドル時間の料金がかさみます。Dedicated Hostsは物理サーバーを専有するので、さらに高くなります。

問題8

あるWebサーバーは、今後1年間止めずに動かし続けることが決まっています。処理が中断されると困ります。オンデマンドよりも料金を下げたい場合、最も適した購入オプションはどれですか。

  • A. スポットインスタンス
  • B. オンデマンドインスタンス
  • C. リザーブドインスタンス
  • D. Dedicated Hosts

正解:C

1年か3年の利用を約束すると、リザーブドインスタンスで割引を受けられます。スポットインスタンスは安いものの、AWSの都合で中断されることがあるので、止まると困るWebサーバーには向きません。オンデマンドは割引が無く、Dedicated Hostsは物理サーバーを専有する分だけ高くなります。

間違えやすいポイントのまとめ

8問を解いてみて、迷った問題はありましたか?最後に、EC2とLambdaの問題で間違えやすいところを整理します。

間違えやすいところ 正しい考え方
長い処理もLambdaで動く 1回の実行は最大15分。長い処理はEC2などを使う
Lambdaは常に料金がかかる 実行していない時間に実行時間の料金はかからない
サーバーレスなら利用者の責任は無い コードとIAMの権限は利用者の責任
EC2のOSパッチはAWSが当てる ゲストOSのパッチは利用者の責任
コンテナはEC2でしか動かせない Fargateならサーバーを管理せずに動かせる
安ければスポットでよい 中断されると困る処理には向かない

問題文に「1時間かかる」「OSを細かく設定したい」とあればEC2、「イベントが起きたときだけ」「サーバーを管理したくない」とあればLambdaを、まず候補に考えるとよいです。

ただし、最後は問題文の条件をすべて満たすかで判断してください。たとえば、サーバーを管理したくなくても処理が1時間かかるなら、Lambdaは選べません。

まとめ

EC2とLambdaの違いは、動かせる時間、料金のかかり方、責任共有モデルでの役割分担の3つで整理すると覚えやすくなります。

EC2は止めるまで動かせる仮想サーバーで、OSの管理は利用者が行います。Lambdaはイベントで動くサーバーレスのサービスで、1回の実行は最大15分、料金は実行した分だけです。

CLF-C02では、この違いを前提にした問題が、サービスの分野だけでなくセキュリティや料金の分野にも出てきます。

もっと問題を解いて力試しをしたい方は、InfraAcademy の資格模擬問題にある「AWS認定 クラウドプラクティショナー模擬試験150問」を使ってみてください。本番と同じように4分野から出題されるので、苦手な分野を見つけるのに役立ちます。

この記事と同じ形式の問題はCLF-C02の練習問題10問にもあります。資格の先で、AWSでインフラを組めるようになりたい方は、InfraAcademyのAWSロードマップで順番に学べます。

違いが分かると、問題文のどこを見ればいいかが分かるようになります。少しずつ慣れていきましょう。

参考

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

株式会社InfraAcademy 代表 / エンジニア

大手メーカーでインフラエンジニアとして勤務した後、ベンチャー企業・スタートアップでフルスタックエンジニアを経験。その後、起業し学習サービス「InfraAcademy」を運営しています。
保有資格:ネットワークスペシャリストなど 運営会社:株式会社InfraAcademy

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る