MODULE 02 / CANDIDATE B · 図から理解する

AWSの関係を、 図から読み解く

まず図を見る。役割と方向を確かめる。それから短い説明で意味をつなぐ。関係を思い出すための、図を中心にした教材です。

Module 2全体 比較用・未採用 9セクション+公式資料

このModuleで学ぶこと

01EC2・仮想化・性能と料金の選択

02Console / CLI / SDKとAPI

03監視・増減・分散・高可用性

04SQS / SNSと疎結合

01

最初に、 役割の地図をつかむ

動かす EC2 OS・アプリを実行
操作する Console / CLI / SDK → API 入口とサービス操作
観測・増減 CloudWatch → Auto Scaling 状態を見て容量を調整
配置・分散 Region / AZ / ELB 障害と負荷の集中に備える
つなぐ SQS / SNS 仕事を保存・イベントを配信

このページでは、図を見てから説明へ進みます。図のサービス名の下にある短い役割を読み、矢印の方向や箱の包含を確かめてください。料金の選択は、これらの構成とは別の契約の軸です。

ここで押さえるEC2を中心に、操作・監視・増減・分散・メッセージングを組み合わせる。

02

EC2の下にあるもの

物理サーバーを共有し、 仮想サーバーを分離する HIERARCHY

物理サーバー · AWSが管理

EC2インスタンス A 利用者A · OS+アプリ
EC2インスタンス B 利用者B · OS+アプリ
EC2インスタンス C 利用者B · OS+アプリ
ハイパーバイザー· CPUやメモリなどの割り当てと分離
AWS:物理基盤・仮想化基盤を管理 利用者:ゲストOS・アプリを管理
これは仮想化の概念図です。1台の物理サーバー上に複数の仮想マシンを動かし、別々の利用者が基盤を共有する形を「マルチテナント」と呼びます。

EC2インスタンス

起動した1台のサーバー。LinuxやWindowsを選び、Webアプリ、データベース、バッチを動かす。

ハイパーバイザー

物理リソースを仮想マシンへ割り当て、分離する仮想化基盤。

マルチテナント

複数の利用者が物理基盤を共有。共有しても他者のOSやデータを自由に見られるわけではない。

図の外側はAWSが管理する物理サーバー、内側はOS・アプリを実行する独立した仮想マシンです。必要なときに起動し、不要になれば停止・終了できます。利用者はゲストOS・アプリ・ネットワーク設定を管理します。

ここで押さえる包含は「何の上で動くか」。通信の矢印とは意味が違う。

03

系統とサイズを 分けて読む

m5 ファミリー · 系統+世代
large サイズ · リソース量

例:m5.large全体がインスタンスタイプです。「汎用」などは用途別のカテゴリで、m5などが具体的なファミリー。命名にはプロセッサなどを示す追加文字が付く場合もあります。上の例は最新世代の推奨ではありません。

用途別に見る、主な5カテゴリ
カテゴリ 重視するリソース 適した処理の例
汎用 CPU・メモリ・ネットワークのバランス Webサーバー、開発環境
コンピューティング最適化 CPUの処理性能 計算量の多いバッチ、科学計算
メモリ最適化 大容量メモリ インメモリDB、大規模データ処理
高速コンピューティング GPUなどのアクセラレーター 機械学習、グラフィックス処理
ストレージ最適化 ローカルストレージのI/O性能 大量の読み書き、データ分析

ファミリー

性能の系統と世代。CPU・メモリ・I/Oなど、処理に合う特性を選ぶ。

サイズ

その系統で使うリソース量。同じ系統でも必要な量と費用を見比べる。

「汎用」などは用途別カテゴリ、m5などは具体的なファミリー、m5.large全体がインスタンスタイプです。小さい構成から負荷を実測し、ボトルネックを見つけて調整します。EBS(EC2で使う永続ストレージ)の容量は別に設定できます。

ここで押さえる強いか弱いかという1軸ではなく、性能の特性と量で選ぶ。

04

3つの入口が、 APIへ集まる

3つの操作方法、 共通するサービス操作 CONVERGENCE
Management Console ブラウザーで操作
AWS CLI コマンドで操作
AWS SDK プログラムで操作
AWS API 認証・権限を確認して実行
EC2などのAWSサービス リソースを作成・参照・変更
入口を変えても、権限の範囲を超えて操作できるわけではありません。どの方法でも認証情報と適切な権限が必要です。

Console

ブラウザーの画面で設定・確認。初めてサービスに触れるときにも使いやすい。

CLI

コマンドで操作。繰り返しをシェルスクリプトにまとめられる。

SDK

Pythonなどのコードから操作。アプリの処理へ組み込める。

操作方法を、作業に合わせて選ぶ
入口 使う場面 具体例
Console 初めての設定、状態の確認 EC2の一覧画面を開く
CLI 繰り返す運用、シェルスクリプト aws ec2 describe-instances
SDK アプリやプログラムにAWS操作を組み込む PythonのBoto3でEC2一覧を取得

APIはソフトウェア間のやり取りの仕様です。AWS APIがリソースの作成・参照・変更を受け付けます。CLIはローカルや、CLIが用意されたAWS CloudShellで利用できます。どの入口にも認証と適切な権限が必要です。

ここで押さえる収束図は「入口は複数でも、共通のサービス操作へつながる」と読む。

05

性能の比較と、 制御のループ

1台を強くするか、 台数を増やすか COMPARISON

Scale Up · 垂直スケーリング

1台の処理能力を増やす
EC2
EC2

CPU・メモリが足りない1台を、より大きなインスタンスタイプに変更。逆方向はScale Downです。

Scale Out · 水平スケーリング

並列に処理する台数を増やす
EC2
EC2
EC2
EC2

複数のサーバーで処理を分担。台数を減らすScale Inと合わせ、EC2 Auto Scalingで自動化できます。

1台の性能を変えることと、台数を変えることは別の操作です。Scale Outには、複数台に仕事を分けられるアプリ設計が必要です。

Scale Up / Down

1台のタイプを大きく・小さくする。通常は停止して変更する。

Scale Out / In

並列に処理する台数を増やす・減らす。処理を分担できる設計が必要。

観測 → 判断 → 台数変更 → 再び観測 FEEDBACK LOOP
CloudWatchとEC2 Auto Scalingのフィードバックループ EC2がメトリクスをCloudWatchに送信。CloudWatchのアラームを用いてAuto Scalingがポリシーに従い台数を変更。その変化を再びCloudWatchが観測する。 EC2インスタンス群 処理を実行 Amazon CloudWatch メトリクス・アラーム EC2 Auto Scaling ポリシーで容量を調整 観測値 アラーム 起動・終了して台数を調整 → 負荷の変化を再び観測 設定例:最小2台 / 希望2台 / 最大6台 · 平均CPUの目標50%
矢印は観測・制御の方向を表します。これはターゲット追跡の概念図で、実際の反映には起動やウォームアップの時間がかかります。目標50%と台数は学習用の例です。

CloudWatch

CPUなどのメトリクスを収集・監視。状態を観測する。

EC2 Auto Scaling

ポリシーに従って台数を調整。ターゲット追跡では平均CPUなどの目標値を設定する。

スケーラビリティは処理能力を拡張できる性質。伸縮性は需要に合わせて増減できる性質。ループ図ではEC2の観測値がCloudWatchへ進み、Auto Scalingの制御がEC2へ戻ります。

ここで押さえる比較図は「どの能力を変えるか」。ループ図は「変化をどう観測し、調整するか」。

06

箱の中に置き、 矢印で送る

同じ入口から、 別々のAZへ分散する HIERARCHY + FAN-OUT
リージョン内のALBから、複数AZのEC2にリクエストを分散 ユーザーからALBへリクエスト。ALBからAZ AとAZ BのEC2へ分岐。各EC2はそれぞれのAZ内のサブネットに配置される。VPC、ルート、セキュリティ設定などは省略。 ユーザー / クライアント AWS Region Application Load Balancer ELB · 共通のDNS名で受け付け Availability Zone A Availability Zone B Subnet A · 単一AZに所属 Subnet B · 単一AZに所属 EC2 · Webアプリ 処理を実行 EC2 · Webアプリ 処理を実行 設定したルールで振り分け 配置とリクエストの方向を示す概念図。VPC・ALB用サブネット・経路設定は省略。
Compute:処理する Network:配置・通信
リージョンの中にAZがあり、サブネット(ネットワークを区切った範囲)は1つのAZに属します。EC2はサブネットへ配置されます。実際にはVPC(AWS内の仮想ネットワーク)が複数AZにまたがり、ALBにもサブネットの設定が必要です。

Region → AZ → Subnet

リージョンは地理的なエリア。その中にAZがあり、1つのAZにサブネットが属する。AZは1つ以上の独立したデータセンターから構成。EC2はサブネット内へ配置。

ELB / ALB

ELBは負荷分散のサービス。ALBはWeb向けの種類。ヘルスチェックで状態を見て、通常は正常なターゲットへ送る。

高可用性は、障害が起きてもサービスを継続しやすいこと。複数AZへ分散するのは、同じ配置場所の障害にまとめて巻き込まれないためです。Auto ScalingとELBを連携させれば、新しいEC2を分散先へ登録できます。

呼び出し先の 個別アドレスを隠す FLOW
フロントエンド リクエストを送る
内部ELB 共通のDNS名
バックエンド群 台数を独立に変更
個々のバックエンドの増減を、呼び出す側から切り離します。ELBを入れただけで、すべての依存関係がなくなるわけではありません。

内部ELBは、バックエンドの個別アドレスを共通のDNS名の後ろへ隠します。配置への依存を減らしても、同期通信では応答を待つ関係が残ります。

ここで押さえる包含は配置。分岐する矢印はリクエスト。台数の制御はAuto Scalingの役割。

07

仕事をためるか、 イベントを配るか

SQSは仕事をためる。 SNSはイベントを配る。 COMPARISON + MESSAGE FLOW

Amazon SQS · キュー

仕事を保存し、受信側が取りに行く。

注文受付アプリ 配送依頼を送信
SQSキュー 処理待ちのメッセージを保存
配送ワーカー群 受信 → 処理 → 削除

Amazon SNS · Pub/Sub

1つのイベントを複数の購読先へ配信。

注文受付アプリ 「注文確定」イベントを発行
SNSトピック 購読先へファンアウト
配送用SQS 配送処理へ
分析用SQS 分析処理へ
矢印はメッセージが進む方向。SQSの受信はワーカーがポーリングします。複数のワーカーは同じ仕事を分担し、SNSの複数購読先はそれぞれ同じイベントを受け取ります。
キューとトピックの違い
比較する点 Amazon SQS Amazon SNS
中心となる役割 処理待ちの仕事をバッファリング イベントを購読先へ配信
受信側との関係 受信側がポーリングして取得 サービスが購読先へ配信
複数の受信者 ワーカーが仕事を分担。重複受信に備える 各購読先へ配信(フィルター設定で対象を絞れる)
用途 配送、画像変換、非同期バッチ 注文イベントの配信、メール・SMS・プッシュ通知
組み合わせ SNS → 複数のSQS → 各処理。イベントの配信と、処理待ちの保存を両立

SQS:処理時刻を分ける

キューへメッセージを保存し、ワーカーがポーリングして受信する。複数ワーカーで仕事を分担。

SNS:配信先を分ける

トピックへ発行し、購読先へ配るPub/Sub。SQSのほか、メール・SMS・プッシュ通知にも使える。

メッセージの中身がペイロードです。仕事をキューへ挟むと、送信側と処理側が同時に動く必要を減らせます。相手の状態や内部実装への依存を減らす設計が疎結合。直接通信かどうかだけで決まるわけではありません。

ここで押さえるSQSの複数ワーカーは分担。SNSの複数購読先はそれぞれ受け取る。

08

構成とは別に、 料金の軸を持つ

利用パターンと購入方法
選択肢 考え方 向いている状況 / 注意点
オンデマンド 長期の利用コミットなしで使う 試作、短期利用、需要が読めない処理。課金単位は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も条件に合う利用への割引で、すべてがキャパシティ予約を伴うわけではありません。

ここで押さえる「どう配置するか」「どれだけ動かすか」「どう購入するか」を混ぜない。

09

図を閉じて、 関係を復元する

色がなくても説明できるか、矢印を消しても関係を思い出せるか。次の問いで役割の違いを確かめます。

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日)。構成図は概念図で、完全な構築手順ではありません。

参照した公式資料を開く

読み終えたら、同じ内容を別の構成でも確かめてみてください。

比較ページへ戻る →