目次

AWSサービス選定ガイド

周辺資料: 学習インデックス · AWSサービス一覧(2026) · アーキテクチャパターン集 · アンチパターン集


AWSサービス選定時に迷いやすい論点を、実務で使える判断軸に落とし込んだガイド。


1. 選定前に決めるべき5つの軸

代表的な問い
性能 p99レイテンシ目標は? < 100ms / < 500ms / < 2s
可用性 必要SLAは? 99.9 / 99.95 / 99.99 / 99.999%
スケール ピーク時のRPS/データ量は? 1,000 RPS / 10TB/日
運用体制 専任SREがいるか? 24/7オンコールあり / 平日日中のみ
コスト構造 固定費と変動費どちら重視? 初期は従量課金、安定後はRI/SP

2. コンピューティング選定

Lambda vs ECS vs EC2

実行時間 < 15分 かつ イベント駆動
  → Lambda
    ただし: コールドスタート許容できる?
      No → Provisioned Concurrency または ECS へ

常時起動の HTTP API かつ コンテナ運用可
  → ECS Fargate(中小規模)/ EKS(Kubernetes必須 or 大規模)

OS/ミドルウェア制御が必要 / GPU/高性能コンピューティング
  → EC2(+Auto Scaling + Spot混在)

超低レイテンシ + ネットワーク集約処理
  → EC2 Bare Metal / HPC Cluster
比較軸 Lambda ECS Fargate EKS EC2
起動レイテンシ コールドスタートあり 20〜30秒 30〜60秒 1〜5分
最大実行時間 15分 無制限 無制限 無制限
スケール速度 秒単位(自動) 分単位 分単位 分単位
運用負荷 最小 低〜中 中〜高
コスト(低トラフィック) 最安
コスト(高トラフィック) 高くなる 中〜高 中〜高 RI活用で安価

バッチ処理

用途 推奨サービス 理由
軽量バッチ(< 15分) Lambda + EventBridge Scheduler 運用コスト最小
中〜大規模バッチ AWS Batch (Fargate Spot) コンテナ管理不要、Spot活用
Spark/Hadoop ジョブ EMR on EC2/EKS OSS エコシステム活用
ML 学習ジョブ SageMaker Training Job GPU/分散学習最適化

3. データストア選定

RDB vs NoSQL vs NewSQL

複雑なJOIN / ACID トランザクション必須
  → Aurora MySQL / Aurora PostgreSQL
    (グローバル展開 → Aurora Global Database)

高スケール KV / セッション / ゲームリーダーボード
  → DynamoDB
    アクセスパターンを先に固定 → Single Table Design

台帳(変更不能な履歴)
  → QLDB(イミュータブル台帳)

インメモリキャッシュ
  → ElastiCache Redis(セッション/Rate Limit/Pub-Sub)
  → ElastiCache Memcached(純粋な分散キャッシュ、クラスタリング不要)

時系列データ(IoT/メトリクス)
  → Amazon Timestream
  → DynamoDB + TTL でも代替可(小規模)
比較軸 Aurora DynamoDB RDS MySQL/PG Redshift
ACID △(条件付き) △(DML制限)
スケール ◯(垂直+Read Replica) ◎(水平自動) ◯(MPP)
レイテンシ < 5ms < 5ms < 5ms 100ms〜秒
用途 OLTP KV/ドキュメント OLTP OLAP/DWH
最大サイズ 128TB 無制限 64TB EB級

オブジェクト / ファイルストレージ

要件 サービス 備考
汎用オブジェクトストレージ S3 デフォルト選択
共有ファイルシステム(Linux) EFS 複数EC2/ECS間共有
共有ファイルシステム(Windows) FSx for Windows SMB プロトコル
高性能 HPC ファイル FSx for Lustre S3連携可
低頻度アクセス長期保管 S3 Glacier Deep Archive 最安ストレージ

4. メッセージング / イベント選定

シンプルなタスクキュー(1メッセージ = 1処理)
  → SQS Standard + DLQ
    FIFO が必要なら → SQS FIFO(最大3,000 msg/s)

リアルタイムストリーミング(複数コンシューマー / 再生可能)
  → Kinesis Data Streams
    Kafka 互換が必要 / 既存 Kafka 移行 → MSK (Managed Kafka)

イベントルーティング(フィルタリング / スケジューラ / SaaS連携)
  → EventBridge
    スケジューラ単体なら EventBridge Scheduler

単純な Pub/Sub(1対多 プッシュ型通知)
  → SNS
    Lambda + メール + SQS の組み合わせに最適

ストリーム → S3/Redshift/OpenSearch への配信
  → Kinesis Data Firehose(変換・圧縮・バッファリング込み)
比較軸 SQS EventBridge SNS Kinesis
配信モデル Pull Push(ルーティング) Push Pull
フィルタリング 限定的 豊富(JSON属性) 属性フィルタ なし
順序保証 FIFOのみ なし なし シャード内
保持期間 最大14日 なし なし 最大365日
再生 不可 不可 不可 可能

5. ネットワーク選定

ロードバランサー

要件 推奨
HTTP/HTTPS コンテンツルーティング(パス/ホスト) ALB
TCP/UDP 超低レイテンシ / 静的IPが必要 NLB
EC2 Classic(旧世代) CLB(非推奨)

CDN / エッジ

要件 推奨
静的コンテンツ配信・キャッシュ CloudFront
グローバル低レイテンシ TCP/UDP(ゲーム・IoT) Global Accelerator
エッジでロジック実行(A/Bテスト・認証) CloudFront Functions / Lambda@Edge

DNS

要件 推奨
AWSリソースへのルーティング Route 53 Alias レコード
加重・レイテンシ・フェイルオーバールーティング Route 53 ルーティングポリシー
プライベートDNS(VPC内) Route 53 Resolver / Private Hosted Zone
DNSベースのフィルタリング(マルウェア遮断) Route 53 Resolver DNS Firewall

VPC 接続

接続パターン 推奨サービス 注意
複数VPCのハブ接続 Transit Gateway リージョン内通信に最適
同一リージョンの2VPC接続 VPC Peering 推移的ルーティング不可
オンプレ ↔ AWS(専用線) Direct Connect 帯域・レイテンシ保証あり
オンプレ ↔ AWS(VPN) Site-to-Site VPN 低コスト、インターネット経由
VPCサービス間プライベート接続 PrivateLink インターネット非経由
グローバルなWAN統合 Cloud WAN マルチリージョン管理

6. AI/ML サービス選定

用途別サービスマップ

用途 推奨サービス 代替
テキスト生成・チャット Bedrock(Claude/Nova) SageMaker JumpStart
画像生成 Bedrock(Stability AI/Nova Canvas)
検索拡張生成(RAG) Bedrock Knowledge Bases Bedrock + OpenSearch 自前実装
AI エージェント Bedrock Agents
感情分析・エンティティ抽出 Comprehend Bedrock(高精度だが高コスト)
画像分類・物体検出(ラベル) Rekognition SageMaker Custom Labels
顔認証 Rekognition(Face)
文書 OCR Textract
音声→テキスト Transcribe
テキスト→音声 Polly
機械翻訳 Translate
カスタム ML(学習〜推論) SageMaker
需要予測 Forecast / SageMaker DeepAR
レコメンデーション Personalize SageMaker Factorization Machines
不正検知 Fraud Detector / SageMaker RCF
コード補完 Amazon Q Developer

Bedrock vs SageMaker の使い分け

Bedrock を選ぶ場合:
  - 基盤モデルをAPIとして使いたい(ファインチューニング不要 or 軽微)
  - RAG / エージェント / ガードレールをマネージドで使いたい
  - モデルの重みを管理したくない

SageMaker を選ぶ場合:
  - 独自データでゼロからまたは深くファインチューニングしたい
  - 独自アルゴリズムを実装して学習・推論したい
  - Feature Store / Model Monitor / Pipelines を使ったMLOpsを構築したい
  - オープンソースモデルをホストしたい(Llama 等)

7. セキュリティサービス選定

カテゴリ サービス 役割
脅威検知 GuardDuty CloudTrail/VPC Flow/DNS ログのML分析
CSPM Security Hub セキュリティスコア・ベストプラクティス確認
調査・分析 Detective 侵害の根本原因分析(グラフ分析)
設定管理 Config リソース設定変更の記録・評価
脆弱性 Inspector EC2/ECR/Lambda の脆弱性スキャン
データ分類 Macie S3内の PII 検出
WAF WAF v2 SQLi/XSS/レートリミット
DDoS Shield Standard(無料)/ Shield Advanced L3-L7 DDoS軽減
証跡 CloudTrail API操作ログ
秘密管理 Secrets Manager DB認証情報・APIキーのローテーション自動化
暗号化キー KMS エンベロープ暗号化、CMK管理
ゼロトラスト Verified Access VPN不要のアプリアクセス制御
SIEMデータ統合 Security Lake OCSF形式でのログ集約

「似ているサービス」の使い分け

GuardDuty vs Security Hub:
  GuardDuty = 脅威の「検知」(異常行動・マルウェアを発見)
  Security Hub = セキュリティ「姿勢」の集約管理(GuardDuty等の結果を集める)

Config vs CloudTrail:
  CloudTrail = 「誰が・いつ・何のAPIを呼んだか」のログ
  Config = 「リソースの設定が今どうなっているか・変化したか」の記録

Secrets Manager vs SSM Parameter Store:
  Secrets Manager = 自動ローテーション機能付き(コスト高)
  SSM Parameter Store = シンプルな設定値保管(SecureString で暗号化可、安価)

8. 選定フロー(実務手順)

Step 1: 要件整理
  ├── 機能要件: 何をするか
  └── 非機能要件: レイテンシ・可用性・スケール・セキュリティ・コスト

Step 2: 必須要件でサービスを絞る
  └── SLA / セキュリティ要件を満たさないものを除外

Step 3: 運用負荷を比較
  ├── マネージド度(フルマネージド > サーバーレス > コンテナ > EC2)
  └── チームのスキル・習熟度

Step 4: 料金見積もり(3パターン)
  ├── 低トラフィック(PoC/dev)
  ├── 中トラフィック(本番平常時)
  └── ピークトラフィック(年次キャンペーン等)

Step 5: PoC で最大リスクを検証
  └── 「これが動かなければ採用できない」仮説を1つ選んで試す

Step 6: 選定理由を1ページで文書化
  └── 要件 → 選定理由のトレーサビリティを残す

9. よくある選定ミスと回避策

ミスパターン 結果 回避策
「慣れている」だけでEC2を選ぶ 運用負荷が増大、スケール対応が遅延 Lambda / Fargate を先に検討し、不適合なら EC2
DynamoDBをRDB感覚で使う スキャン多発・コスト爆発 アクセスパターンを先に定義、Single Table Design
CloudFrontなしで S3 直接公開 レイテンシ高・コスト高・セキュリティリスク CloudFront + OAC(Origin Access Control)を標準に
SQS と SNS を混在させすぎる データフローが複雑化 EventBridge で統一するか、SQS→Lambda→SNS の順を固定
本番環境をマルチAZにしない AZ障害時にサービス停止 DB/LB/EC2 すべてマルチAZ を最低ライン
Secrets を環境変数に直書き 認証情報漏洩リスク Secrets Manager または SSM Parameter Store を使用
コスト監視なしで運用開始 月末に予算超過を知る AWS Budgets + Cost Anomaly Detection を初日に設定