この記事のゴール(AWS Certified Cloud Practitioner 対策)
AWSの「コンピューティング(Compute)」は、試験でも実務でも頻出です。特に初心者が混乱しやすいのが、仮想マシン(EC2)・コンテナ(ECS/EKS)・サーバーレス(Lambda/Fargate)の違いです。
本記事では、用語を短く定義しつつ、具体例で「どれを選ぶべきか」がイメージできるように整理します。試験ガイド(CLF-C02)自体も公式に公開されています:https://docs.aws.amazon.com/aws-certification/latest/examguides/cloud-practitioner-02.html
AWSのコンピューティングを3つに分ける
AWSのComputeは、ざっくり次の3系統で理解すると整理しやすいです。
- 仮想マシン:OSごと動かす「クラウド上のサーバー」 → Amazon EC2
- コンテナ:アプリ実行に必要なものを箱(イメージ)にまとめる → Docker、オーケストレーションはKubernetes/AWSではECS/EKS
- サーバーレス:サーバー管理を極力AWSに任せて、実行単位に課金 → AWS Lambda/AWS Fargate
1) 仮想マシン(Virtual Machine)= Amazon EC2
仮想マシンとは
仮想マシン(VM)は「OSが入ったサーバーを、クラウド上で借りる」イメージです。CPU・メモリのスペックを選び、OSを起動して、その上にWebサーバーやアプリを入れて動かします。
Amazon EC2とは(試験での覚え方)
Amazon EC2は、オンデマンドで起動できる仮想サーバー(インスタンス)を提供します:https://aws.amazon.com/jp/ec2/
EC2の「核」は次の通りです。
- インスタンス:起動した仮想サーバー本体
- OS管理が必要:OS更新、セキュリティパッチ、ミドルウェア運用などを自分で行う(責任共有モデル上)
責任共有モデルの公式説明では、EC2利用者はゲストOS(更新・セキュリティパッチ含む)やインストールしたソフト、Security Group設定などを管理する責任があると明記されています:https://aws.amazon.com/compliance/shared-responsibility-model/
EC2の具体例
- 例1:社内向けの業務Webアプリ
既存の構成(Linux + Nginx + PHP/Java)をそのまま持ち込みたい。OSレベルで細かく設定したい → EC2が合うことが多い。 - 例2:学習用に「サーバー運用」を理解したい
SSHで入り、ログやプロセス、OS設定を触りながら学ぶ → EC2は理解が深まりやすい。
2) コンテナ(Container)= Docker/Kubernetes、AWSでは ECS・EKS
コンテナとは(初心者向けの定義)
コンテナは、アプリを動かすのに必要なもの(ライブラリや設定など)をまとめて、同じ形でどこでも動かしやすくする仕組みです。よく「アプリの実行環境を持ち運べる(ポータブル)」と言われます。
代表的なコンテナ技術がDockerです(公式ドキュメント):https://docs.docker.com/
なぜKubernetesが出てくるのか(オーケストレーション)
コンテナが増えると、「どのサーバーで動かす?」「落ちたら再起動する?」「台数を増減する?」が大変になります。これを自動化して管理する仕組みがコンテナオーケストレーションで、その代表例がKubernetesです(公式ドキュメント):https://kubernetes.io/docs/home/
AWSでの位置づけ:ECS と EKS
AWSでは、コンテナを「運用しやすく」するためのマネージドサービスが用意されています。コンテナ全体の入口としてAWS公式の整理もあります:https://aws.amazon.com/jp/containers/
Amazon ECS(AWSネイティブのコンテナオーケストレーション)
Amazon ECSは、AWSが提供するフルマネージドのコンテナオーケストレーションサービスです:https://aws.amazon.com/jp/ecs/
公式ドキュメントでも、ECSは「コンテナ化アプリをデプロイ、管理、スケール」するサービスで、Dockerなどのツールと統合されていると説明されています:https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/Welcome.html
Amazon EKS(マネージドKubernetes)
Amazon EKSは、Kubernetesクラスター運用の複雑さを減らすフルマネージドKubernetesサービスです:https://aws.amazon.com/jp/eks/
「EKSとは」の公式説明:https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/what-is-eks.html
コンテナの具体例(ECS/EKSの使いどころ)
- 例1:複数の小さなサービス(マイクロサービス)を運用
API、バッチ、管理画面などを別コンテナにして独立デプロイしたい → ECS/EKSが候補。 - 例2:Kubernetes前提のツールやノウハウがある
既にKubernetesで運用していて、同じ仕組みでAWSでも動かしたい → EKSが候補。
3) サーバーレス(Serverless)= AWS Lambda と AWS Fargate
サーバーレスとは(誤解しやすい点)
サーバーレスは「サーバーが存在しない」ではなく、サーバー管理(プロビジョニング、パッチ適用、容量管理など)を利用者が意識しにくい形でAWSに任せる考え方です。
AWS Lambda(コードを動かすサーバーレス)
AWS Lambdaは、サーバーを管理せずにコードを実行できるコンピューティングサービスで、実行に応じて自動的にスケールし、従量課金であると公式に説明されています:https://docs.aws.amazon.com/lambda/latest/dg/welcome.html
製品ページ:https://aws.amazon.com/jp/lambda/
Lambdaの具体例
- 例:S3にファイルがアップロードされたら自動処理
画像リサイズ、CSV変換、ログ加工など「イベントが来たときだけ動けばよい」処理に強い(公式例も記載あり):https://docs.aws.amazon.com/lambda/latest/dg/welcome.html
AWS Fargate(コンテナを動かすサーバーレス)
AWS Fargateは、コンテナ向けのサーバーレスコンピューティングエンジンで、ECSやEKSと組み合わせて使います:https://aws.amazon.com/jp/fargate/
公式説明では、Fargateにより「コンテナを動かすための仮想マシン群を自分でプロビジョニング/設定/スケールする必要がない」ことが明確に述べられています(ECS向け):https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html
EKSでPodをFargate上で動かす公式説明(EKS向け):https://docs.aws.amazon.com/eks/latest/userguide/fargate.html
Fargateの具体例
- 例:コンテナ化したWeb APIを、サーバー管理なしで常時稼働
「Dockerで固めたアプリを動かしたい」でも「EC2の台数管理やOSパッチはやりたくない」 → ECS + Fargate の組み合わせが典型。
試験で効く!EC2/ECS・EKS/Lambda・Fargateの比較(最重要)
| 分類 | 代表サービス | 実行単位 | 利用者が主に考えること | 初心者向けの覚え方 |
|---|---|---|---|---|
| 仮想マシン | Amazon EC2 | インスタンス(仮想サーバー) | OS/ミドルウェア運用、パッチ、台数設計(責任共有モデル上も重要) | 「クラウド上のサーバーを借りる」 |
| コンテナ運用 | Amazon ECS | コンテナ(タスク/サービス) | コンテナ配置・スケール・デプロイ(オーケストレーション) | 「AWS流のコンテナ運用」 |
| コンテナ運用(Kubernetes) | Amazon EKS | コンテナ(Pod/Deployment) | Kubernetesの概念で運用(マネージドK8s) | 「KubernetesをAWSで」 |
| サーバーレス(コード) | AWS Lambda | 関数(Function) | イベント駆動でコード実行、権限/IAM、周辺サービス連携 | 「イベントで動く関数」 |
| サーバーレス(コンテナ) | AWS Fargate | コンテナ(ECS/EKS上) | サーバー管理なしでコンテナ実行(ECS/EKSとセット) | 「コンテナ版サーバーレス」 |
よくある混同ポイント(CLF-C02の引っかけ対策)
- Lambda と Fargate:どちらも「サーバーレス」だが、Lambdaは“関数(コード)”、Fargateは“コンテナ”を動かす。
- ECS と EKS:どちらもコンテナ運用だが、EKSはKubernetes、ECSはAWSネイティブのオーケストレーション。
- ECS/EKS と EC2:コンテナは「実行形式」。実行基盤としてEC2を使うこともあるし、Fargateでサーバーレス実行もできる(FargateはECS/EKSと組み合わせる):https://aws.amazon.com/jp/fargate/
- EC2の責任範囲:EC2はゲストOS管理(更新・パッチなど)が利用者側の責任になりやすい点が試験でも重要:https://aws.amazon.com/compliance/shared-responsibility-model/
公式情報リンク(一次情報)
- AWS Certified Cloud Practitioner(認定ページ):https://aws.amazon.com/certification/certified-cloud-practitioner/
- CLF-C02 試験ガイド(Exam Guide):https://docs.aws.amazon.com/aws-certification/latest/examguides/cloud-practitioner-02.html
- Amazon EC2:https://aws.amazon.com/jp/ec2/
- 責任共有モデル:https://aws.amazon.com/compliance/shared-responsibility-model/
- Amazon ECS:https://aws.amazon.com/jp/ecs/
- ECS 開発者ガイド(Welcome):https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/Welcome.html
- Amazon EKS:https://aws.amazon.com/jp/eks/
- EKS ユーザーガイド(What is EKS):https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/what-is-eks.html
- AWS Lambda:https://aws.amazon.com/jp/lambda/
- Lambda 開発者ガイド(What is AWS Lambda?):https://docs.aws.amazon.com/lambda/latest/dg/welcome.html
- AWS Fargate:https://aws.amazon.com/jp/fargate/
- ECSでのFargate(公式ドキュメント):https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html
- EKSでのFargate(公式ドキュメント):https://docs.aws.amazon.com/eks/latest/userguide/fargate.html
- AWSのコンテナ全体像:https://aws.amazon.com/jp/containers/
- Docker公式ドキュメント:https://docs.docker.com/
- Kubernetes公式ドキュメント:https://kubernetes.io/docs/home/
