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 を初日に設定 |