目次

AWSユースケース学習: 動画配信プラットフォーム

0. この資料で作るもの

VODアップロードから配信、視聴分析までを一気通貫で構築する。

項目 内容
主な機能 S3連携、MediaConvert処理、監視運用
非機能要件 運用容易性、コスト効率、基本可用性
想定規模 同時利用 1,000
主な利用サービス S3, MediaConvert, CloudFront, Route 53, Lambda, DynamoDB, Kinesis Data Streams, Athena, Glue, CloudWatch, WAF

1. 構成図

architecture-beta
    service user(internet)[User]

    group vpc(logos:aws-vpc)[VPC]
    group pub[Public Subnet] in vpc
    group prv[Private Subnet] in vpc
    service n3_cloudfront(logos:aws-cloudfront)[CloudFront] in pub
    service n4_route_53(logos:aws-route53)[Route 53] in pub
    service n1_s3(logos:aws-s3)[S3] in prv
    service n5_lambda(logos:aws-lambda)[Lambda] in prv
    service n6_dynamodb(logos:aws-dynamodb)[DynamoDB] in prv
    service n7_kinesis_data_streams(logos:aws-kinesis)[Kinesis Data Streams] in prv
    service n2_mediaconvert(logos:aws-mediaconvert)[MediaConvert]
    service n8_athena(logos:aws-athena)[Athena]
    service n9_glue(logos:aws-glue)[Glue]

    user:R --> L:n3_cloudfront
    n3_cloudfront:R --> L:n4_route_53
    n4_route_53:R --> L:n1_s3
    n1_s3:R --> L:n5_lambda
    n5_lambda:R --> L:n6_dynamodb
    n1_s3:B --> T:n2_mediaconvert
    n1_s3:B --> T:n8_athena
    n1_s3:B --> T:n9_glue

構成図サービスリンク


2. サービス選定表

レイヤー 主要サービス 採用理由
Edge/API API Gateway / CloudFront / WAF 公開境界を統制しやすい
App/Workflow Lambda / Step Functions / EventBridge 変更に強く自動化しやすい
Data S3 / DynamoDB / Aurora 用途別に性能と整合性を最適化
Ops/Sec CloudWatch / KMS / CloudTrail 監視・暗号化・監査を統合

3. リクエスト処理シーケンス

sequenceDiagram
    User->>S3: リクエスト
    S3->>MediaConvert: 認証/入口制御
    MediaConvert->>CloudFront: 業務処理
    CloudFront->>Route 53: データ更新
    Route 53-->>User: 結果応答

4. データモデル(例)

論理データ 用途
video_entities / video_events / video_audit ユースケースで中心となるデータ

ポイント:

  • 認可境界を意識したキー設計にする
  • 監査/再処理のためイベント履歴を保持する

4.5 クラス図(アプリ構造)

classDiagram
    class Controller {
      +handle(request) Response
    }
    class UseCaseService {
      +execute(command) Result
    }
    class Repository {
      +save(entity)
      +find(query)
    }
    class EventPublisher {
      +publish(event)
    }

    Controller --> UseCaseService
    UseCaseService --> Repository
    UseCaseService --> EventPublisher

5. API設計(例)

POST /video-streaming-platform/events, GET /video-streaming-platform/status/{id}, GET /video-streaming-platform/metrics

認可方針:

  • エッジで認証し、ドメイン層で認可を強制する
  • ユーザー/テナント境界を越えるアクセスを禁止する

6. 実装ステップ(最短)

Step 作業 完了条件
1 データ/イベントモデル定義 主要ユースケースが表現できる
2 API + ワークフロー実装 正常系が通る
3 監視/通知/アラート設定 異常を検知できる
4 負荷/障害テスト SLOを満たす

7. 監視と運用

対象 指標 しきい値例 対応
API 5xx率/レイテンシ(p95) SLO逸脱(99.9%未達) 直近デプロイ差分と依存障害を確認
非同期処理 遅延/滞留件数 5分以上の継続増加 コンシューマ増強・DLQ再処理
データ層 エラー率/スロットル 継続発生 キー設計・クエリ・キャパシティ見直し
Edge/CDN キャッシュヒット率 低下傾向 TTL/無効化戦略を再調整

8. コスト見積もり観点

サービス群 主課金軸 最適化ポイント
Compute 実行回数/時間 無駄実行削減
Data 保存量/IO ライフサイクルと圧縮
Network 転送量 キャッシュと配信最適化

8.5 料金例(目安)

前提トラフィック: 月間 10万リクエスト / データ転送 200GB / 保存 500GB

規模 月額目安 主な前提
小規模 $50-150 / 月(約¥7,500-¥22,500) 単一リージョン、最低限の冗長化
中規模 $150-400 / 月(約¥22,500-¥60,000) 本番運用、監視/バックアップ標準実装
大規模 $400-900 / 月(約¥60,000-¥135,000) 高可用構成、ピーク対策、長期保管を含む

コストドライバー上位: S3, MediaConvert, CloudFront

注意:

  • 上記は学習用の概算レンジ
  • 正式見積もりはAWS Pricing Calculatorで試算

9. 次の発展課題

  • Blue/Greenデプロイ
  • マルチリージョンDR
  • IaC完全自動化(CDK)
  • セキュリティ運用の自動化

10. リスクと対策

リスク 影響 予防策 検知/復旧
想定外トラフィック急増 レイテンシ悪化/エラー増加 オートスケール閾値と負荷試験を事前実施 CloudWatchアラーム + 段階的スケール
権限設定ミス 情報漏えい/操作不能 最小権限ポリシー + 定期棚卸し CloudTrail監査 + 直近変更ロールバック
依存サービス障害 一部機能停止 非同期化・リトライ・フォールバック設計 DLQ/再実行手順で復旧