1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

要件から迷わず選ぶAWS:機能×サービス対応表とDAU/同時接続ベースの設計指針

Posted at

本稿の目的

要件を「機能」と「規模(DAU・同時接続)」に落とすだけで、どのAWSサービスを選ぶかを即決できるようにする。


要点(先に結論)

  • 小〜中規模(同時接続〜5,000) はサーバレス中心(CloudFront/S3/API Gateway/Lambda/DynamoDB)で俊敏に開始し、負荷が安定・増加してきたら ECS Fargate に段階移行するのが定石。
  • 中〜大規模(同時接続〜50,000)ECS Fargate + RDS/Aurora + ElastiCache を基軸に、 SQS/SNS/Step Functions で“詰まりにくい”構造(疎結合)にする。
  • 超大規模(>50,000) やKubernetes資産がある場合は EKSKinesis/MSK を検討する。

1. 規模(DAU/同時接続)から逆算する

用語の最小セット

  • DAU:1日あたり実際に使ったユーザー数
  • 同時接続(Concurrency):同時に処理されているリクエスト数
  • RPS(Requests per Second):1秒あたりのリクエスト数
  • p95応答時間:95%のリクエストがこの時間以内に終わる目安(遅いほうの外れ値を除いた指標)

簡易試算(初動の見積根拠)

  • ピークRPS ≒ DAU × ピーク時同時利用率 × 1人あたり毎分リクエスト数 ÷ 60
  • 必要同時接続 ≒ ピークRPS × p95応答時間(秒)

例)DAU=10,000、ピーク同時利用率=5%、1人あたり毎分4リクエスト、p95=0.5秒
ピークRPS ≒ 10,000×0.05×4÷60 = 33RPS/必要同時接続 ≒ 33×0.5 = 約16

※実際の数値はアプリの処理内容やデータベース設計で上下する。上式は「初回アーキテクチャの当たりをつける」ための目安。


2. 要件 → AWSサービス 対応表

「最小セット」はPoC〜早期導入。「本番推奨」は監視・可用性・セキュリティを含めた現実解。
「備考」は非エンジニア向けの噛み砕き説明。

機能/要件 最小セット 本番推奨 スケール目安 備考
静的サイト/LP配信 S3, CloudFront, ACM, Route53 WAF, CloudFront Functions, アクセスログ 〜極大 画像やHTMLをCDNで高速配信(CDN=世界にキャッシュ置き場がある配信網)
SPA+API(認証あり) S3+CloudFront, API Gateway, Lambda Cognito, WAF, CloudWatch/X-Ray, IaC 〜中 まずは“サーバ不要”構成で俊敏に開始、負荷が増えたらECSへ移行
.NET Web/API(コンテナ) ECR, ECS Fargate, ALB AutoScaling, Logs/Metrics, Secrets/Param, IaC 中〜大 Windows/IISからの脱出や常時負荷に強い(サーバ管理なしのコンテナ実行)
既存IISの暫定移行 EC2(Windows), ALB ASG, SSM, CloudWatch Agent 小〜中 まず“動かす”優先→並行でコンテナ化へ
RDB(トランザクション) RDS/Aurora Multi-AZ, バックアップ, Proxy, Perf Insights 小〜超 いわゆる普通のDB。金融や在庫のように整合性重視向き
NoSQL/高スループット DynamoDB On-demand, DAX, PITR 中〜超 キーで高速読む/書く。大きなスパイクや巨大スケールに強い
キャッシュ/セッション共有 ElastiCache for Redis Multi-AZ, フェイルオーバー, TLS 中〜超 一時的な“置き場”。読取りを速くしてDBの負荷を下げる
全文検索 OpenSearch Service Multi-AZ, UltraWarm, ISM 中〜大 “検索専用DB”。ログ分析やサイト内検索で活躍
メール送信 Amazon SES 専用IP/DMARC/DKIM, 配信統計 小〜大 ドメイン認証や迷惑メール対策までセットで設計
認証/SSO Cognito(B2C) Identity Center(社内SSO), IdP連携 小〜大 会員ログインと社内シングルサインオンを役割分担
秘匿情報の管理 Secrets Manager / Parameter Store ローテーション, KMS(鍵) 小〜大 パスワードやAPIキーを安全に保管・自動更新
監視/ログ/追跡 CloudWatch, CloudTrail アラーム, ダッシュボード, X-Ray, Log分析 小〜超 いつ・どこで・何が起きたかを“見える化”
セキュリティ基盤 GuardDuty, Security Hub, Config Organizations, SCP, Access Analyzer 小〜超 危険設定の検出と是正の“土台”
CDN/大容量配信 CloudFront WAF, Origin Shield, 署名URL/Cookie 大〜超 動画や大ファイルを安定配信(著作権対策も可)
ファイルアップロード S3(プリサインドURL) Lifecycle, Object Lambda, Macie 小〜大 ブラウザ→S3に直接アップでサーバ負荷を減らす
VOD(動画変換) S3, MediaConvert, CloudFront Step Functions, SQS, DRM 中〜超 自動で解像度/ビットレートを作り分けて配信
ライブ配信 IVS CloudFront(録画), モデレーション(Lambda), チャット(DynamoDB) 中〜超 低遅延のインタラクティブ配信
バッチ/定期処理 EventBridge, Lambda/Batch Step Functions, SQS, DLQ/リトライ 小〜大 “夜間まとめ処理”や“毎時の集計”の枠組み
非同期処理/疎結合 SQS SNS, FIFO/遅延, EventBridge 中〜超 混雑時も行列で順番に処理して落ちにくくする
データレイク/ETL S3, Glue Data Catalog, Athena Glue ETL/Workflow, Lake Formation 中〜超 “ためる場所(S3)”と“都度クエリ(Athena)”で低コスト分析
DWH/ダッシュボード Redshift(Serverless可) QuickSight, Spectrum 中〜超 大量データを多人数で分析・可視化
機械学習(推論API) SageMaker Endpoint / Lambda(ECR) AutoScaling, Model Monitor 小〜大 予測モデルを“呼べるAPI”として提供
既成AI(OCR/翻訳等) Textract/Translate/Rekognition など Step Functions, S3 Events 小〜大 作り込みなしでAI機能を部品として利用
リアルタイム双方向 API GW(WebSocket) / AppSync DynamoDB, Cognito, CloudWatch 中〜大 チャットや通知など“押し込み”更新
位置情報 Amazon Location トラッキング/ジオフェンス 小〜中 地図表示・到達検知などを手早く実装
ドメイン/証明書 Route53, ACM フェイルオーバー, ヘルスチェック 小〜超 独自ドメインとSSL証明書(自動更新)
WAF/DDoS AWS WAF, Shield(Standard) Bot Control, Shield Advanced 中〜超 不正アクセスや攻撃を入り口でブロック
CI/CD GitHub Actions / CodePipeline OIDC, 承認ゲート, Blue/Green 小〜超 自動テストと自動デプロイの仕組み
IaC(構成のコード化) Terraform(S3+DynamoDB Lock) モジュール分割, CI連携 小〜超 “環境をコードで再現”できるようにする
ネットワーク/VPN VPC, NAT/IGW, Site-to-Site VPN Direct Connect, Transit Gateway 小〜超 社内とクラウドを安全に専用線/暗号化でつなぐ
マルチアカウント AWS Organizations Control Tower, SCP 中〜超 本番・検証・運用チームでアカウントを分離し統制
コスト管理 Budgets, Cost Explorer Anomaly Detection, タグ配賦 小〜超 使い過ぎ通知・部門別の費用見える化

3. スケール別リファレンス(Web+API/動画)

Web+API(B2C想定)

  • 小規模(〜500並列):CloudFront+S3(フロント)、API Gateway+Lambda(API)、DynamoDBまたはRDS
    → サーバ運用なし、スパイク(急増)に強い。まずはこれで素早く。
  • 中規模(〜5,000並列):CloudFront、ECS Fargate+ALB(API)、RDS/Aurora、ElastiCache、SQS
    → 常時負荷や長時間接続があるならコンテナ有利。キューとキャッシュで“平準化”。
  • 大規模(〜50,000並列):CloudFront、Fargate/EKS、Aurora(リードレプリカ)、Redis、Kinesis/MSK
    → 読み分散・非同期・観測(メトリクス/トレース)を固める。
  • 超大規模(50,000+):EKS、Global Accelerator、マルチリージョン、Shield Advanced
    → SRE体制とガバナンス(権限/監査)を前提に。

動画配信

  • VOD:S3 → MediaConvert(自動で複数ビットレート生成)→ CloudFront
    → 署名URL/署名Cookieでアクセス制御、DRMが必要なら追加。
  • ライブIVS + CloudFront(録画配信) + DynamoDB(チャット)
    → 低遅延の配信に強い。放送品質なら MediaLive/MediaPackage も選択肢。

4. Lambda / ECS Fargate / EKS の選び分け

  • Lambda:短時間の処理・イベント駆動・アイドル時間が多い・コネクション保持が不要
    → “使った分だけ”課金で初期コストを抑えやすい。
  • ECS Fargate:常時負荷・接続維持・コンテナ単位のチューニングが必要
    → “サーバ管理なしのコンテナ”。Windows/IIS脱却にも相性良。
  • EKS:既にKubernetesの資産や運用知見がある・サイドカーや高機能メッシュが必要
    → 大規模組織の標準基盤として有力。

5. RDB と NoSQL の使い分け

  • RDS/Aurora:整合性重視(ACID)、複雑なJOIN、既存SQL資産の活用。レポート/BIとも親和性が高い。
  • DynamoDB:巨大スケールやスパイク、スキーマ進化に強い。アクセスパターン設計(どのキーで読むか)を先に決める。
  • 折衷案:書き込みはDynamoDB、集計/可視化はAurora/Redshift(Kinesis/Glueで橋渡し)。

6. 最初に入れておく安全装置

  • セキュリティ:GuardDuty / Security Hub / Config、WAF、Secrets Manager、KMS
  • 監視と記録:CloudTrail(全リージョン)、CloudWatch(ダッシュボード/アラーム)、X-Ray(遅い箇所の特定)
  • ガバナンス:Organizations + SCP、IAM Identity Center(人の権限を集約)
  • コストの見張り:Budgets(使いすぎ通知)、Cost Explorer(部門/システム別の配賦タグ)

7. 仕様詰めのためのヒアリング項目

  • 負荷:DAU/MAU、ピーク時間、同時接続、1人あたり操作頻度、最大ファイルサイズ
  • 機能:ログインの有無、決済/外部SaaS連携、アップロード/配信の有無
  • 非機能:SLA、RTO/RPO(どれだけ止められないか/復旧に何分まで許容か)、監査・個人情報の扱い
  • 運用:誰が日々の運用・一次対応を行うか、アプリ更新頻度、監視画面/アラートの受け口
  • 費用:月額の上限、変動許容、タグ運用(部門別配賦)
  • 期限:PoCと本番の予定、移行で止められない期間

8. この表の使い方

  1. まず DAU・同時接続・p95 の仮置きを出す(計算式でサッと当たりをつける)。
  2. 対応表で「最小セット」を叩き台に、「本番推奨」を“外せない項目”として上乗せする。
  3. PoCで実測(RPS/同時接続/コスト)を取り、Lambda→ECS など段階移行の是非を決める。

免責

本稿のスケール目安は一般的なWeb/モバイル向けアプリケーションを想定したものであり、実際の必要リソースはアプリの処理内容やデータ設計、外部連携の有無によって大きく変動する。最終判断はPoCでの実測値を用いて行うことを推奨する。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?