🚀 キャッシュの利用の設計原理

【キャッシュの利用の役割(設計のベストプラクティス)】

目次

🔍 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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次