CQRS(Command Query Responsibility Segregation)パターンを採用し、書き込みと読み込みを分離した低レイテンシー分散アーキテクチャの参照構成図です。
書き込み側はDynamoDBをプライマリストアとし、CDC(Change Data Capture)でDynamoDB Streams → Kinesis経由で列指向DB(Amazon Keyspaces / Redshift)にリアルタイム同期します。読み込み側はDAX(DynamoDB Accelerator)によるマイクロ秒レイテンシーのホットリードと、Keyspaces/Redshiftによる分析クエリの2パスを提供します。
DynamoDB Global Tablesによるマルチリージョンレプリケーションと、Route 53のレイテンシーベースルーティングにより、グローバルに低レイテンシーなアクセスを実現します。
| レイヤー | AWSサービス | 用途 |
|---|---|---|
| エッジ | CloudFront + API Gateway | グローバルCDN + APIルーティング |
| コマンド処理 | Lambda (Command Handler) | 書き込みリクエストの処理・バリデーション |
| プライマリストア | DynamoDB | 低レイテンシーKey-Valueストア。単一桁ミリ秒の書き込み |
| キャッシュ | DAX (DynamoDB Accelerator) | マイクロ秒レイテンシーのインメモリキャッシュ |
| セッションキャッシュ | ElastiCache for Redis | セッション管理・集計キャッシュ |
| CDC | DynamoDB Streams | 変更データキャプチャ(リアルタイム) |
| イベント処理 | Kinesis Data Streams + Lambda | CDC イベントのファンアウト・変換・同期 |
| 列指向DB(ワイドカラム) | Amazon Keyspaces (Cassandra) | 分散ワイドカラムストア。時系列・パーティション集約クエリ |
| 列指向DB(DWH) | Amazon Redshift | カラムナストレージによる高速集計・分析クエリ |
| グローバル複製 | DynamoDB Global Tables | マルチリージョン自動レプリケーション |
| ルーティング | Route 53 (Latency Routing) | レイテンシーベースの最寄りリージョンルーティング |
| 可観測性 | CloudWatch + X-Ray | メトリクス監視 + 分散トレーシング |
| アクセスパターン | 経路 | レイテンシー |
|---|---|---|
| ホットリード(キャッシュヒット) | API GW → Lambda → DAX | < 1 ms |
| ホットリード(キャッシュミス) | API GW → Lambda → DAX → DynamoDB | 1-5 ms |
| 書き込み | API GW → Lambda → DynamoDB | 5-10 ms |
| ワイドカラムクエリ | Keyspaces (Cassandra) | 5-10 ms |
| 分析クエリ | Redshift (Columnar) | 100ms-数秒 |
| CDC同期遅延 | Streams → Kinesis → Lambda | 1-3 秒 |
ap-northeast-1 (東京) リージョン基準の月額概算。実際の費用は利用量により変動します。為替レート: $1 = 150円
| サービス | 構成 | Dev (月額) | Prod (月額) |
|---|---|---|---|
| API Gateway | Command / Query API | $3-10 (450-1,500円) | $10-50 (1,500-7,500円) |
| Lambda | Command / Query ハンドラ | $0-5 (0-750円) | $5-50 (750-7,500円) |
| DynamoDB | Command Store (On-Demand) | $5-20 (750-3,000円) | $20-100 (3,000-15,000円) |
| DAX | DynamoDBキャッシュ | $30-40 (4,500-6,000円) | $60-120 (9,000-18,000円) |
| ElastiCache (Redis) | Query Side キャッシュ | $25-50 (3,750-7,500円) | $90-180 (13,500-27,000円) |
| DynamoDB Streams | イベントソース | $0-5 (0-750円) | $5-20 (750-3,000円) |
| Kinesis Data Streams | イベントパイプライン (1-2 shard) | $15-30 (2,250-4,500円) | $30-60 (4,500-9,000円) |
| Amazon Keyspaces | Read Model Store | $10-30 (1,500-4,500円) | $30-100 (4,500-15,000円) |
| Redshift | 分析用 (Serverless) | $50-150 (7,500-22,500円) | $200-500 (30,000-75,000円) |
| CloudFront | エッジキャッシュ | $1-5 (150-750円) | $20-50 (3,000-7,500円) |
| Route 53 | DNS + ヘルスチェック | $1-2 (150-300円) | $2-5 (300-750円) |
| CloudWatch + X-Ray | 監視 + トレーシング | $10-20 (1,500-3,000円) | $20-40 (3,000-6,000円) |
| 合計 | $150-367 (約22,500-55,050円) | $492-1,275 (約73,800-191,250円) | |
前提条件: Dev=100万リクエスト/月、Prod=1,000万リクエスト/月。CQRS Read/Write比率は8:2想定。DynamoDB Global Tables使用時はリージョンあたり追加。
コスト最適化: DAXキャッシュヒット率を80%以上に維持しDynamoDB読取コスト削減。Redshiftは業務時間帯のみ利用。DynamoDB Reserved Capacityで最大75%削減。
CQRSによる書き込み/読み込みの分離: コマンド(書き込み)とクエリ(読み込み)を別々のデータストアで最適化。書き込みはDynamoDBで一貫性を保証し、読み込みはDAX/Keyspaces/Redshiftで用途に応じた最適なレイテンシーを提供します。
列指向DBの使い分け: Amazon Keyspaces(Cassandra互換)はワイドカラム型で、パーティションキーによる高速な範囲クエリに適します。Redshiftはカラムナストレージで大量データの集計・分析に最適。用途に応じて2つの列指向DBを使い分けることで、OLTPとOLAPの両方をカバーします。
DynamoDB Streams によるリアルタイムCDC: プライマリストア(DynamoDB)への書き込みが即座にStreamsに流れ、Kinesis経由でKeyspaces/Redshiftに同期。結果整合性モデルで1-3秒のラグはありますが、ほぼリアルタイムに列指向DB側のデータが更新されます。
Global Tables + Latency Routing: DynamoDB Global Tablesで複数リージョンに自動レプリケーション。Route 53のレイテンシーベースルーティングと組み合わせることで、ユーザーの地理的位置に関わらず低レイテンシーを実現します。
Powered by AWS Diagram MCP Server