MODULE 02 / CANDIDATE B · 図から理解する
AWSの関係を、 図から読み解く
まず図を見る。役割と方向を確かめる。それから短い説明で意味をつなぐ。関係を思い出すための、図を中心にした教材です。
このModuleで学ぶこと
01EC2・仮想化・性能と料金の選択
02Console / CLI / SDKとAPI
03監視・増減・分散・高可用性
04SQS / SNSと疎結合
最初に、 役割の地図をつかむ
このページでは、図を見てから説明へ進みます。図のサービス名の下にある短い役割を読み、矢印の方向や箱の包含を確かめてください。料金の選択は、これらの構成とは別の契約の軸です。
ここで押さえるEC2を中心に、操作・監視・増減・分散・メッセージングを組み合わせる。
EC2の下にあるもの
物理サーバー · AWSが管理
EC2インスタンス
起動した1台のサーバー。LinuxやWindowsを選び、Webアプリ、データベース、バッチを動かす。
ハイパーバイザー
物理リソースを仮想マシンへ割り当て、分離する仮想化基盤。
マルチテナント
複数の利用者が物理基盤を共有。共有しても他者のOSやデータを自由に見られるわけではない。
図の外側はAWSが管理する物理サーバー、内側はOS・アプリを実行する独立した仮想マシンです。必要なときに起動し、不要になれば停止・終了できます。利用者はゲストOS・アプリ・ネットワーク設定を管理します。
ここで押さえる包含は「何の上で動くか」。通信の矢印とは意味が違う。
系統とサイズを 分けて読む
m5
ファミリー · 系統+世代
large
サイズ · リソース量
例:m5.large全体がインスタンスタイプです。「汎用」などは用途別のカテゴリで、m5などが具体的なファミリー。命名にはプロセッサなどを示す追加文字が付く場合もあります。上の例は最新世代の推奨ではありません。
| カテゴリ | 重視するリソース | 適した処理の例 |
|---|---|---|
| 汎用 | CPU・メモリ・ネットワークのバランス | Webサーバー、開発環境 |
| コンピューティング最適化 | CPUの処理性能 | 計算量の多いバッチ、科学計算 |
| メモリ最適化 | 大容量メモリ | インメモリDB、大規模データ処理 |
| 高速コンピューティング | GPUなどのアクセラレーター | 機械学習、グラフィックス処理 |
| ストレージ最適化 | ローカルストレージのI/O性能 | 大量の読み書き、データ分析 |
ファミリー
性能の系統と世代。CPU・メモリ・I/Oなど、処理に合う特性を選ぶ。
サイズ
その系統で使うリソース量。同じ系統でも必要な量と費用を見比べる。
「汎用」などは用途別カテゴリ、m5などは具体的なファミリー、m5.large全体がインスタンスタイプです。小さい構成から負荷を実測し、ボトルネックを見つけて調整します。EBS(EC2で使う永続ストレージ)の容量は別に設定できます。
ここで押さえる強いか弱いかという1軸ではなく、性能の特性と量で選ぶ。
3つの入口が、 APIへ集まる
Console
ブラウザーの画面で設定・確認。初めてサービスに触れるときにも使いやすい。
CLI
コマンドで操作。繰り返しをシェルスクリプトにまとめられる。
SDK
Pythonなどのコードから操作。アプリの処理へ組み込める。
| 入口 | 使う場面 | 具体例 |
|---|---|---|
| Console | 初めての設定、状態の確認 | EC2の一覧画面を開く |
| CLI | 繰り返す運用、シェルスクリプト |
aws ec2 describe-instances
|
| SDK | アプリやプログラムにAWS操作を組み込む | PythonのBoto3でEC2一覧を取得 |
APIはソフトウェア間のやり取りの仕様です。AWS APIがリソースの作成・参照・変更を受け付けます。CLIはローカルや、CLIが用意されたAWS CloudShellで利用できます。どの入口にも認証と適切な権限が必要です。
ここで押さえる収束図は「入口は複数でも、共通のサービス操作へつながる」と読む。
性能の比較と、 制御のループ
Scale Up · 垂直スケーリング
1台の処理能力を増やすCPU・メモリが足りない1台を、より大きなインスタンスタイプに変更。逆方向はScale Downです。
Scale Out · 水平スケーリング
並列に処理する台数を増やす複数のサーバーで処理を分担。台数を減らすScale Inと合わせ、EC2 Auto Scalingで自動化できます。
Scale Up / Down
1台のタイプを大きく・小さくする。通常は停止して変更する。
Scale Out / In
並列に処理する台数を増やす・減らす。処理を分担できる設計が必要。
CloudWatch
CPUなどのメトリクスを収集・監視。状態を観測する。
EC2 Auto Scaling
ポリシーに従って台数を調整。ターゲット追跡では平均CPUなどの目標値を設定する。
スケーラビリティは処理能力を拡張できる性質。伸縮性は需要に合わせて増減できる性質。ループ図ではEC2の観測値がCloudWatchへ進み、Auto Scalingの制御がEC2へ戻ります。
ここで押さえる比較図は「どの能力を変えるか」。ループ図は「変化をどう観測し、調整するか」。
箱の中に置き、 矢印で送る
Region → AZ → Subnet
リージョンは地理的なエリア。その中にAZがあり、1つのAZにサブネットが属する。AZは1つ以上の独立したデータセンターから構成。EC2はサブネット内へ配置。
ELB / ALB
ELBは負荷分散のサービス。ALBはWeb向けの種類。ヘルスチェックで状態を見て、通常は正常なターゲットへ送る。
高可用性は、障害が起きてもサービスを継続しやすいこと。複数AZへ分散するのは、同じ配置場所の障害にまとめて巻き込まれないためです。Auto ScalingとELBを連携させれば、新しいEC2を分散先へ登録できます。
内部ELBは、バックエンドの個別アドレスを共通のDNS名の後ろへ隠します。配置への依存を減らしても、同期通信では応答を待つ関係が残ります。
ここで押さえる包含は配置。分岐する矢印はリクエスト。台数の制御はAuto Scalingの役割。
仕事をためるか、 イベントを配るか
| 比較する点 | Amazon SQS | Amazon SNS |
|---|---|---|
| 中心となる役割 | 処理待ちの仕事をバッファリング | イベントを購読先へ配信 |
| 受信側との関係 | 受信側がポーリングして取得 | サービスが購読先へ配信 |
| 複数の受信者 | ワーカーが仕事を分担。重複受信に備える | 各購読先へ配信(フィルター設定で対象を絞れる) |
| 用途 | 配送、画像変換、非同期バッチ | 注文イベントの配信、メール・SMS・プッシュ通知 |
| 組み合わせ | SNS → 複数のSQS → 各処理。イベントの配信と、処理待ちの保存を両立 | |
SQS:処理時刻を分ける
キューへメッセージを保存し、ワーカーがポーリングして受信する。複数ワーカーで仕事を分担。
SNS:配信先を分ける
トピックへ発行し、購読先へ配るPub/Sub。SQSのほか、メール・SMS・プッシュ通知にも使える。
メッセージの中身がペイロードです。仕事をキューへ挟むと、送信側と処理側が同時に動く必要を減らせます。相手の状態や内部実装への依存を減らす設計が疎結合。直接通信かどうかだけで決まるわけではありません。
ここで押さえるSQSの複数ワーカーは分担。SNSの複数購読先はそれぞれ受け取る。
構成とは別に、 料金の軸を持つ
| 選択肢 | 考え方 | 向いている状況 / 注意点 |
|---|---|---|
| オンデマンド | 長期の利用コミットなしで使う | 試作、短期利用、需要が読めない処理。課金単位はOSなどで異なる |
| Savings Plans | 1年・3年の一定利用額($/時)を約束し、対象利用を割引 | 安定した利用。Compute Savings PlansはEC2に加えLambda・Fargateにも適用。EC2 Instance Savings Plansは対象が限定される |
| Reserved Instances | 1年・3年の契約で、条件に合うインスタンス利用を割引 | 予測可能な継続利用。条件や支払い方法で割引が変わる。すべてがキャパシティ予約を伴うわけではない |
| Spot Instances | 余剰キャパシティを割安で利用 | 再実行できるバッチなど。中断を前提に設計する |
| Dedicated Hosts (専有ホスト) |
物理サーバーを専有し、配置を制御 | ソフトウェアのライセンス要件や規制要件に対応 |
利用量の調整
需要に合わせて台数・サイズを見直す。不要な容量を減らす。
購入方法の選択
オンデマンド、長期コミット、余剰容量の利用を使い分ける。専有ホストは物理配置の別軸。
Compute Savings PlansはEC2に加えLambda・Fargateの対象利用にも適用します。EC2 Instance Savings Plansは対象が限定されます。Reserved Instancesも条件に合う利用への割引で、すべてがキャパシティ予約を伴うわけではありません。
ここで押さえる「どう配置するか」「どれだけ動かすか」「どう購入するか」を混ぜない。
図を閉じて、 関係を復元する
色がなくても説明できるか、矢印を消しても関係を思い出せるか。次の問いで役割の違いを確かめます。
Q1. EC2を増やしても、一部の台だけが忙しい。何を見直す?
ELBなどの分散の仕組み、ターゲット登録やヘルスチェック、振り分けの設定を確認します。台数の制御とリクエストの分散は別の役割です。
Q2. 大きなEC2を1台にすれば、AZの障害にも耐えられる?
1台の性能を上げても配置場所の障害には備えられません。複数AZに配置し、障害時に残る容量やデータの扱いも考えます。
Q3. 処理側が止まっても、受付を続けるには?
処理依頼をSQSへ保存し、ワーカーが後から受信します。SQSへの送信成功と保持期間内の復旧が必要で、受付成功と処理完了は別の状態です。
Q4. 同じ注文イベントを、配送と分析の両方へ届けるには?
SNSへ発行し、配送用と分析用のSQSをそれぞれ購読させます。各処理が別のキューを持ち、独立したペースで動けます。
ここで押さえるEC2は動かす。CloudWatchは観測する。Auto Scalingは増減する。ELBは分散する。SQSはためる。SNSは配る。
確認した資料
元データはModule 2のトランスクリプトです。仕様の補足はAWS公式資料で確認しています(参照:2026年10月4〜5日)。構成図は概念図で、完全な構築手順ではありません。
読み終えたら、同じ内容を別の構成でも確かめてみてください。
比較ページへ戻る →