【キャッシュの利用の役割(設計のベストプラクティス)】
目次
🔍 1. 結論
💎 一言でいうと キャッシュの利用は、「同じデータを何度も計算・検索するのをやめ、手元(高速な場所)にコピーを置いておく」 ことで、システムのパフォーマンス向上とバックエンド(DB等)の負荷軽減を同時に達成する設計原理です。
- 静的コンテンツ / グローバル配信 → CloudFront(CDN)
- DBのクエリ結果 / セッション情報 → ElastiCache(Redis / Memcached)
- DynamoDBの超高速化 → DAX (DynamoDB Accelerator)
📈 2. SAAで出やすいポイント
- エッジでのキャッシュ (CloudFront): 画像や動画、HTMLなどの静的コンテンツをユーザーに近い「エッジロケーション」にキャッシュし、レイテンシ(遅延)を極限まで下げる。
- データベースのオフロード (ElastiCache): 読み取り(Read)が多いアプリケーションで、同じSQLクエリの結果をメモリ上(ElastiCache)に保持し、RDSへのクエリ発行を減らして負荷を劇的に下げる。
- ステートレス設計の補助: Webサーバー(EC2)がセッション情報を持つとスケールしづらいため、セッション情報を ElastiCache や DynamoDB に保存(キャッシュ)する。
🗝 3. キーワードでの判断
| 問題文のキーワード | 疑うサービス・キャッシュ層 |
|---|---|
| 🌍 「グローバルユーザー」「静的コンテンツの配信」「レイテンシ低減」 | Amazon CloudFront |
| 🚀 「DBの読み取り負荷が高い」「ミリ秒以下の応答」 | Amazon ElastiCache |
| ⚡ 「DynamoDBの読み取りをさらに高速化(マイクロ秒)」 | DAX (DynamoDB Accelerator) |
| 🔑 「セッション情報の共有・管理」 | Amazon ElastiCache (Redis), DynamoDB |
⚠️ 4. ひっかけポイント
🚫 よくある誤答パターン – 「DBへの書き込み(Write)負荷を下げるためにキャッシュを導入する」 → キャッシュ(ElastiCache等)は基本的に「読み取り(Read)」の負荷を下げるものです。書き込み負荷対策は、SQSでのバッファリングやシャーディングなどを検討します。 – 「CloudFrontでデータベースのクエリ結果をキャッシュする」 → CloudFrontはWebのHTTPリクエストのキャッシュ(CDN)です。DBのキャッシュはElastiCacheです。
💡 5. 覚え方
🧠 暗記ショートカット – CloudFront = 「世界中にあるコンビニ」。わざわざ遠くの工場(サーバー)に行かなくても近くで買える。 – ElastiCache = 「机の上の暗記メモ」。わざわざ分厚い辞書(RDS)を引かなくても、すぐ答えがわかる。
📚 6. 関連サービス
| アイコン | サービス名 | キャッシュとしての役割 |
|---|---|---|
| 🌍 | Amazon CloudFront | エッジロケーションを活用したコンテンツ配信(CDN)キャッシュ |
| ⚡ | Amazon ElastiCache | RDS等のクエリ結果やセッション情報を置くインメモリキャッシュ |
| 🚀 | Amazon DynamoDB DAX | DynamoDB専用のインメモリキャッシュクラスター |
🗒️ 7. Obsidian管理メモ
- 見返すタイミング: パフォーマンス向上やグローバル展開の問題演習時
- 関連ノート候補:
AWS_SAA_CloudFront,AWS_SAA_ElastiCache
8. HTMLファイル名:
AWS_設計原理_キャッシュ利用.html