【CLF-C02】コンピューティング徹底比較|EC2・コンテナ(ECS/EKS)・サーバーレス(Lambda/Fargate)の使い分けを図解

コンピューティング EC2 コンテナ サーバーレスの使い分け CLF-C02 AWS資格の森 クラウドプラクティショナー(CLF)
無料CLF-C02 ドメイン3:テクノロジー|AWSのコンピューティング「EC2/コンテナ/サーバーレス」の使い分けを、図と4択クイズでまとめて攻略します。

AWS認定 クラウドプラクティショナー(CLF-C02)で最大配点のドメイン3(34%)。その中心が「コンピューティング=処理を動かす場所」です。AWSには大きく仮想サーバー(EC2)・コンテナ(ECS/EKS)・サーバーレス(Lambda/Fargate)の3系統があり、試験では「この要件ならどれ?」という使い分けが繰り返し問われます。この記事で3つの違いと、弾力性を支えるAuto Scaling・ロードバランサーまで一気に押さえましょう。全体像は CLF対策トップ へ。

AWSの3つのコンピューティング:仮想サーバー(EC2)・コンテナ(ECS/EKS)・サーバーレス(Lambda/Fargate)とオートスケーリングを示す図
図:処理を動かす3系統。「自分で管理する範囲」が EC2>コンテナ>サーバーレス の順に小さくなります。

① Amazon EC2:クラウド上の仮想サーバー

クラウド上の仮想サーバー(EC2)を自分で借りて、OSやソフトを自由に入れて使うイメージ図
図:EC2は「自分専用の仮想サーバーを借りる」イメージ。OS・ソフトを自由に入れて使えます。

EC2(Elastic Compute Cloud)は、必要なときに必要なだけ起動できる仮想サーバー。OSを選び、好きなソフトを入れて自由に使えます(その代わりOSのパッチなど管理も自分の責任→責任共有モデル)。用途に合わせてインスタンスタイプを選ぶのがポイントです。

タイプ 得意なこと
汎用 バランス型・迷ったらここ Webサーバー、小〜中規模アプリ
コンピュート最適化 CPUパワー重視 バッチ処理、動画エンコード、HPC
メモリ最適化 大容量メモリ重視 インメモリDB、大規模データ処理
ストレージ最適化 高速・大量のディスクI/O データウェアハウス、大規模DB

関連サービス:もっと手軽に固定価格でサーバーを立てたいなら Amazon Lightsail、コードを上げるだけでEC2環境を自動構築する AWS Elastic Beanstalk も選択肢です。

② コンテナ:ECS / EKS でアプリを箱に詰めて動かす

アプリをコンテナという箱に詰めて、どこでも同じように動かすイメージ図
図:アプリを「箱(コンテナ)」に詰めると、場所を問わず同じように動かせます。

コンテナは、アプリと必要な部品を「箱(コンテナ)」にまとめ、どこでも同じように動かす技術です。AWSでコンテナを動かす管理サービス(オーケストレーター)が2つあります。

  • Amazon ECS:AWS独自のコンテナ管理。シンプルで学習コストが低い
  • Amazon EKSマネージドなKubernetes。Kubernetes標準を使いたい・他環境と揃えたい場合に
  • Amazon ECR:コンテナイメージの保管庫(レジストリ)
試験のツボ
Kubernetesを使いたい=EKS」「AWS流のシンプルなコンテナ管理=ECS」。この対比だけ押さえればOKです。なお、これらの“動かす土台”はEC2にするかFargateにするかを選べます(次項)。

③ サーバーレス:Lambda / Fargate でサーバー管理ゼロ

サーバーを管理せず、イベントをきっかけにコードだけが動くサーバーレスのイメージ図
図:イベント(ファイル到着など)をきっかけにコードだけが動き、サーバー管理は不要です。

サーバーレスは、サーバーの存在を意識せず、使った分だけ課金で処理を動かせる方式。OSのパッチもキャパシティ管理も不要で、運用がぐっと軽くなります。

  • AWS Lambda:イベント(ファイル到着・APIリクエスト等)に応じて短いコードを実行。サーバーを常時立てずに済み、実行時間ぶんだけ課金
  • AWS Fargateコンテナをサーバーレスで動かすエンジン。ECS/EKSの土台としてEC2の代わりに選べ、インスタンス管理が不要になる

使い分けの軸:「イベント駆動の小さな処理」=Lambda「コンテナをサーバー管理なしで動かす」=Fargate

弾力性を支える:Auto Scaling とロードバランサー

ロードバランサーが負荷を複数サーバーに振り分け、Auto Scalingが台数を自動で増減するイメージ図
図:ロードバランサーが複数サーバーへ均等に振り分け、Auto Scalingが負荷に応じて台数を増減します。

クラウドの強みである弾力性(elasticity)=必要に応じて自動で増減する仕組みを、2つのサービスが支えます。混同しやすいので役割を分けて覚えましょう。

サービス 役割 ひとことで
Auto Scaling 負荷に応じてインスタンス数を自動で増減 台数を変える(弾力性)
Elastic Load Balancing(ELB) 複数のサーバーへトラフィックを振り分け 負荷を分散する(可用性)

セットで効きます:ELBで複数台に均等に流し、Auto Scalingで台数を需要に合わせる。これで「アクセス急増にも自動で耐え、暇な時間はコストを抑える」が実現します。

3系統まるごと比較

  EC2 コンテナ(ECS/EKS) サーバーレス(Lambda)
自分で管理する範囲 多い(OSも) 中くらい 少ない(コードだけ)
向いている用途 自由度の高い既存アプリ 移植性の高いアプリ群 イベント駆動の小さな処理
課金イメージ 起動している時間 土台(EC2/Fargate)に準ずる 実行した分だけ

確認クイズ

Q1. 画像がS3にアップロードされるたびに、サーバーを常時立てずにサムネイルを生成する短い処理を実行したい。最適なサービスは?

A. Amazon EC2(常時起動)
B. AWS Lambda
C. Amazon Lightsail
D. Amazon ECR

Q2. アクセスが時間帯で大きく変動するWebサービスで、負荷に応じてEC2の台数を自動で増減させたい。使うべき仕組みは?

A. Elastic Load Balancing だけ
B. Auto Scaling
C. Amazon ECR
D. AWS Elastic Beanstalk

Q3. すでにKubernetesでアプリを運用しており、その標準をそのままAWSのマネージド環境で使いたい。適切なサービスは?

A. Amazon ECS
B. Amazon EKS
C. AWS Lambda
D. Amazon EC2 単体

Q4. コンテナアプリを動かしたいが、EC2インスタンスの管理(パッチ・キャパシティ)はしたくない。最適な土台は?

A. EC2 起動タイプ
B. AWS Fargate
C. Amazon Lightsail
D. Amazon Route 53

よくある質問(FAQ)

Q. EC2・コンテナ・サーバーレス、結局どう選ぶ?

A. 管理の手間と自由度のトレードオフです。自由度がほしい・既存アプリをそのまま動かす=EC2、移植性とリソース効率=コンテナ、運用を最小化したい小さな処理=サーバーレス(Lambda)。迷ったら「サーバー管理をどれだけ減らしたいか」で考えます。

Q. Auto Scaling と ロードバランサーの違いは?

A. Auto Scalingは「台数を増減」、ELBは「トラフィックを分散」。役割が別で、ふつうは併用します。ELBで複数台に均等に流しつつ、Auto Scalingで需要に応じて台数を調整します。

Q. Fargate と Lambda はどちらもサーバーレス。違いは?

A. 動かす対象が違います。Fargateは「コンテナ」をサーバーレスで動かす土台、Lambdaは「関数(短いコード)」をイベント駆動で実行します。コンテナならFargate、小さなイベント処理ならLambdaです。

まとめ

  • 3系統=EC2(仮想サーバー)・コンテナ(ECS/EKS)・サーバーレス(Lambda/Fargate)。右ほど管理が軽い
  • コンテナはKubernetes=EKS/AWS流=ECS、土台はEC2かFargateを選べる
  • サーバーレスはイベント処理=Lambda/コンテナ土台=Fargate
  • 弾力性はAuto Scaling(台数増減)+ELB(負荷分散)のセットで実現

※本記事はAWS公式試験ガイド(CLF-C02)および各サービスの公開ドキュメントに基づき、エンジニアKが作成しています。サービス仕様は更新されることがあるため、最新は必ずAWS公式でご確認ください。本サイトはAmazon Web Services, Inc.の公式サイトではありません。AWSは同社の商標です。

コメント

タイトルとURLをコピーしました