MODULE 02 / CANDIDATE C · 例えでつかむ
知っている物語から、 AWSへつなぐ
得意な仕事、個の能力、チームでの分担。フリーレンとワールドトリガーを理解のきっかけにしながら、AWSの仕組みへ戻って学びます。
このModuleで学ぶこと
01EC2・仮想化・性能と料金の選択
02Console / CLI / SDKとAPI
03監視・増減・分散・高可用性
04SQS / SNSと疎結合
サーバーを、必要なときに呼び出す
アプリを動かしたい。そのために物理サーバーを購入して、設置して、配線して…と準備する代わりに、AWSへ必要な処理能力をリクエストする。これがAmazon EC2の出発点です。
起動した1台をインスタンスと呼びます。LinuxやWindowsのOSを選び、Webアプリ、データベース、バッチ処理などを載せられます。OSやアプリを自由に設定できる分、その管理も利用者の仕事です。
物理サーバー · AWSが管理
1台の物理サーバーを複数のコンピューターとして扱うのが仮想化。その割り当てと分離を担うのがハイパーバイザー。複数の利用者が物理基盤を共有する形がマルチテナントです。
ここで押さえるEC2は、アプリを動かす独立したサーバーを必要なときに使う仕組み。
「誰が強いか」より「何を任せるか」
EC2には用途に合わせた性能の系統があります。ファミリーとサイズを分けて読むと、選ぶポイントを整理できます。m5.largeならm5がファミリー、largeがサイズで、全体がインスタンスタイプです。「汎用」などは用途別カテゴリです。
m5
ファミリー · 系統+世代
large
サイズ · リソース量
例:m5.large全体がインスタンスタイプです。「汎用」などは用途別のカテゴリで、m5などが具体的なファミリー。命名にはプロセッサなどを示す追加文字が付く場合もあります。上の例は最新世代の推奨ではありません。
| カテゴリ | 重視するリソース | 適した処理の例 |
|---|---|---|
| 汎用 | CPU・メモリ・ネットワークのバランス | Webサーバー、開発環境 |
| コンピューティング最適化 | CPUの処理性能 | 計算量の多いバッチ、科学計算 |
| メモリ最適化 | 大容量メモリ | インメモリDB、大規模データ処理 |
| 高速コンピューティング | GPUなどのアクセラレーター | 機械学習、グラフィックス処理 |
| ストレージ最適化 | ローカルストレージのI/O性能 | 大量の読み書き、データ分析 |
まず必要な能力を選び、その量を決めます。大きなサイズにしても、処理の原因が別のところにあれば期待ほど速くなりません。負荷を測って見直しましょう。EBS(EC2で使う永続ストレージ)の容量は別に設定できます。
ここで押さえる性能の特性を選ぶのがファミリー。必要なリソース量を選ぶのがサイズ。
画面・コマンド・コードから同じAWSへ
最初は画面で1台を起動する。それが毎日の作業になったらコマンドにする。アプリの中から操作したくなったらコードに組み込む。使い方は変わっても、その先ではAWSのAPIが操作を受け付けます。
| 入口 | 使う場面 | 具体例 |
|---|---|---|
| Console | 初めての設定、状態の確認 | EC2の一覧画面を開く |
| CLI | 繰り返す運用、シェルスクリプト |
aws ec2 describe-instances
|
| SDK | アプリやプログラムにAWS操作を組み込む | PythonのBoto3でEC2一覧を取得 |
APIはソフトウェア同士がやり取りするための仕様です。Consoleはブラウザー、CLIはコマンド、SDKはPythonなどのプログラムから呼び出します。CLIは、ローカル端末やCLIが用意されたAWS CloudShellから利用できます。
ここで押さえる見た目が違う3つの入口が、AWS APIへの操作につながる。
個の能力と、チームで分ける能力
Scale Up · 垂直スケーリング
1台の処理能力を増やすCPU・メモリが足りない1台を、より大きなインスタンスタイプに変更。逆方向はScale Downです。
Scale Out · 水平スケーリング
並列に処理する台数を増やす複数のサーバーで処理を分担。台数を減らすScale Inと合わせ、EC2 Auto Scalingで自動化できます。
スケーラビリティは、負荷が増えても処理能力を拡張できる性質。伸縮性は、混んだときに増やして、落ち着いたら減らせる性質です。常にピーク人数を動かし続けるより、必要な容量へ調整します。
増減の判断には状況の観測が必要です。CloudWatchがCPUなどを監視し、EC2 Auto Scalingが設定したポリシーに従って台数を変えます。平均CPUの目標値を追うターゲット追跡なら、図のように観測と制御のループを作れます。
ここで押さえる観測するCloudWatch、増減するAuto Scaling。役割を分けて覚える。
仲間を増やしたら、配置も考える
サーバーを複数台にした。でも、その全員が同じ場所の障害に巻き込まれたら、処理は止まってしまいます。台数とは別に、どこへ置くかを考えます。
リージョンは地理的なエリア。AZ(Availability Zone)はその中の独立した配置単位で、1つ以上のデータセンターから構成されます。ネットワークを区切ったサブネットは1つのAZに属し、EC2はそこへ配置。複数AZへ分散すると、配置場所の障害に備えやすくなります。
高可用性
障害時もサービスを継続しやすい性質。配置を分け、残った側で処理できる容量も確保。
ELB
リクエストを複数のターゲットへ分散。ALBはWeb向けの種類。基盤の保守はAWSが担当。
ELBが受け付けたリクエストを分散し、ヘルスチェックで状態を見ます。通常は正常なターゲットへ送ります。Auto Scalingとの連携を設定すれば、新しいインスタンスも分散先へ登録できます。
内部ELBは、フロントエンドから見えるバックエンドの入口を共通のDNS名にします。個別アドレスの増減を隠せますが、相手の応答を待つ依存は残ります。EC2以外にも、データベース・セッション保存先などの単一障害点を見直します。
ここで押さえる強くする、増やす、場所を分ける、仕事を振り分ける。それぞれ別の設計。
受付は先へ、重い処理は後へ
注文は受け付けたい。でも配送処理が忙しくて、毎回その終了を待っていたら受付まで詰まる。そんなときは「依頼を渡す」と「実行を終える」のタイミングを分けます。
SQSは処理待ちの仕事を保存するキュー。ワーカーがポーリングして取りに行きます。SNSはイベントを複数の購読先へ配るトピック。Pub/Sub(発行・購読)で配送・分析などへ同じイベントを届けます。
| 比較する点 | Amazon SQS | Amazon SNS |
|---|---|---|
| 中心となる役割 | 処理待ちの仕事をバッファリング | イベントを購読先へ配信 |
| 受信側との関係 | 受信側がポーリングして取得 | サービスが購読先へ配信 |
| 複数の受信者 | ワーカーが仕事を分担。重複受信に備える | 各購読先へ配信(フィルター設定で対象を絞れる) |
| 用途 | 配送、画像変換、非同期バッチ | 注文イベントの配信、メール・SMS・プッシュ通知 |
| 組み合わせ | SNS → 複数のSQS → 各処理。イベントの配信と、処理待ちの保存を両立 | |
SNSから用途別のSQSへつなげば、配送と分析がそれぞれ自分のペースで進めます。メッセージの中身がペイロードで、例えば注文IDや配送先です。相手の状態や内部実装への依存を減らすことが疎結合。直接通信をすべて悪い設計と決めつける話ではありません。
ここで押さえる受付済みと処理完了は別。ためる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 (専有ホスト) |
物理サーバーを専有し、配置を制御 | ソフトウェアのライセンス要件や規制要件に対応 |
利用が読めないうちはオンデマンド。安定した利用額が見えたらSavings Plans、特定条件の継続利用にはReserved Instancesも候補です。Compute Savings PlansはEC2に加えLambda・Fargateの対象利用にも適用し、EC2 Instance Savings Plansは対象が限定されます。専有ホストはライセンスや規制などの要件に応じて物理サーバーを専有する別の選択です。
ここで押さえる価格だけではなく、継続利用の約束や、中断してもよいかまで含めて選ぶ。
例えを外して、AWSの言葉で話してみる
例えは入口です。最後はサービス名と役割だけで説明できるか、次の問いで確かめてみましょう。
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日)。構成図は概念図で、完全な構築手順ではありません。
読み終えたら、同じ内容を別の構成でも確かめてみてください。
比較ページへ戻る →