はじめに
AWS CLF(Cloud Practitioner)試験に向けた勉強記録 #4 です。
AWSのコンピューティングサービスを勉強し始めたとき、
正直なところ 公式ドキュメントを読んでも全然ピンときませんでした。
オンデマンドのスケーラブルなコンピューティングキャパシティを提供します
日本語ではあるけど、
「で、結局なに?」という状態。
EC2、Lambda、ECS という名前はよく見るものの、
- 何がどう違うのか
- どんな場面で使い分けるのか
が頭の中で全く整理できていませんでした。
この記事では、
- EC2
- Lambda
- ECS
について、
公式を読んで混乱したポイント と
自分なりに噛み砕いて理解した内容 をまとめています。
※ 完全な技術解説というより、
「最初に頭に入れるための整理メモ」に近い内容です。
同じように AWS 初学者の方の参考になれば嬉しいです。
EC2とは何か?
AWS公式では EC2 をこう説明している。
EC2 インスタンスは AWS クラウド上の仮想サーバーです
仮想サーバー=インスタンス
最初につまずいたのが 「インスタンス」 という言葉。
結論から言うと、
- EC2インスタンス = 仮想サーバーそのもの
だと思ってよかった。
つまり EC2 とは、
- 物理サーバーの代わりに
- AWS上で
- 仮想サーバーを借りられるサービス
ということ。
EC2の特徴(ざっくり)
- 仮想サーバーなので起動が早い
- CPUやメモリなどのスペックを後から変更できる
- 使った分だけ支払う従量課金
- OS・ミドルウェア・アプリは自分で管理する
セキュリティグループとは?
EC2には セキュリティグループ という仕組みがある。
これは一言でいうと、
- 仮想ファイアウォール
- 例えるなら「警備員」
どの通信を通して、どれを拒否するかを設定できる。
Lambdaとは何か?
次に Lambda。
公式ではこう書いてある。
サーバーの管理を行うことなくコードを実行できる
感覚的には「ジョブ」に近い
Lambdaを理解する上で大事なのは、
- サーバーを意識しなくていい
- プログラムだけ書けばいい
という点。
今までの構成だと、
- OSを用意して
- Webサーバーを立てて
- APサーバーを設定して
- その上でプログラムを書く
という流れだった。
でも Lambda は違う。
- プログラムさえあればOK
- 実行するときだけ裏でサーバーが動く
- 実行が終わったら止まる
だから感覚的には、
「処理単位で動くジョブ」
にかなり近い。
Lambdaの特徴
- サーバー管理不要(サーバーレス)
- 自動でスケールする
- 実行時間分だけ課金
- 小さな処理・イベント駆動に向いている
ECSとは何か?
ECSは名前が EC2 と似ていて混乱する。
Amazon Elastic Container Service
コンテナを管理するサービス
ECSは、
- コンテナ化されたアプリケーション
- をまとめて管理するためのサービス。
ここで出てくるのが コンテナ。
仮想サーバとコンテナの違い
- 仮想サーバ:ハイパーバイザーでOSごと分ける
- コンテナ:OSは共有してアプリ単位で分ける
ECSはこの コンテナたちを管理する指揮者 みたいな存在。
ECSでできること
- コンテナの起動・停止
- オートスケーリング
- 自動復旧
- スケジューリング
つまり、
「コンテナ運用の面倒な部分をAWSがやってくれる」
サービス。
結局どう使い分けるのか?
今の理解を一言でまとめるとこう。
| サービス | 何か |
|---|---|
| EC2 | 仮想サーバー |
| Lambda | サーバー不要でコードだけ動かす |
| ECS | コンテナをまとめて管理する |
使い分けの感覚
- 自由にサーバーを触りたい → EC2
- 小さな処理をサクッと動かしたい → Lambda
- コンテナ運用を楽にしたい → ECS
公式が分かりにくかった理由
公式ドキュメントは、
- 機能説明が正確すぎる
- 前提知識がある人向け
なので、初心者が読むと
「言葉は分かるけどイメージできない」 状態になりやすい。
一度「何者か」を噛み砕いてから読むと、
公式の説明もだいぶ理解しやすくなった。
まとめ
- EC2 = 仮想サーバー
- Lambda = サーバーレスで処理単位実行
- ECS = コンテナの指揮者
最初ピンとこなくても、
分からないまま公式を読む → 他の記事で補う
この繰り返しで少しずつ理解できた。
同じところで詰まっている人の参考になれば嬉しい。
参考リンク
-
Amazon EC2 とは
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/concepts.html -
AWS Lambda とは
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html -
Amazon ECS とは
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/Welcome.html -
EC2とは?仮想サーバーの基礎解説
https://www.itechh.ne.jp/blog/column/ec2-explain.html -
AWS Lambdaとは?サーバーレスの考え方
https://www.stylez.co.jp/aws_columns/cloud-native_development_on_aws_and_serverless/what_is_aws_lambda/ -
Amazon ECSとはどんなサービスか
https://dx.nid.co.jp/column/what-kind-of-service-is-Amazon-ECS
次回学習予定
次回は AWSの主要サービス(ストレージ分野) について整理する予定です。