キャッシュ戦略設計 ElastiCache・DAX・CloudFrontの使い分け
本記事はSAA(Solutions Architect Associate)を目指す方向けに、アプリケーションの応答速度とバックエンド負荷を左右するキャッシュ戦略を解説します。試験では、どの層でどのキャッシュサービスを使うべきかを要件から見極める力が問われます。
覚え方のフレームは3つの観点です。対象(何をキャッシュするか)・配置(どのレイヤーに置くか)・整合性(データの鮮度をどう保つか)。この3点でサービスの役割を整理すると迷いません。
対象 ElastiCacheでアプリケーション層をキャッシュ
ElastiCacheはRedisまたはMemcachedのマネージド型インメモリキャッシュで、セッション情報やDBクエリ結果など任意のデータをアプリケーション層でキャッシュします。セッション共有や高可用性(レプリケーション・自動フェイルオーバー)が必要な要件ではRedis、単純なキーバリューを複数スレッドで高速に処理したいだけの要件ではMemcachedを選びます。
配置 DAXでDynamoDBを専用に高速化
DynamoDB Accelerator(DAX)はDynamoDB専用のインメモリキャッシュで、アプリケーションコードをほぼ変更せずマイクロ秒単位の読み込みを実現します。読み取りが集中するテーブルへのアクセスをアプリ側の実装なしに高速化したい要件ではDAXを選び、汎用的なキャッシュが必要な場合はElastiCacheと使い分けます。
整合性 CloudFrontでエッジにキャッシュ
CloudFrontは静的コンテンツやAPIレスポンスを世界中のエッジロケーションにキャッシュし、オリジンへのリクエストそのものを減らします。更新頻度が低く世界中から参照されるコンテンツを配信したい要件ではTTLを長めに設定し、更新直後に反映したい要件ではキャッシュ無効化やファイル名変更で対応します。
| サービス | キャッシュ対象 | 選ぶ要件 |
|---|---|---|
| ElastiCache | アプリ層の任意のデータ | セッション共有・高可用性が必要 |
| DAX | DynamoDBの読み込み結果 | DynamoDB専用で実装変更を避けたい |
| CloudFront | 静的コンテンツ・APIレスポンス | 利用者に近いエッジで配信したい |
チェックリスト
- ElastiCacheのRedisとMemcachedを可用性要件で使い分けられる
- DAXがDynamoDB専用キャッシュである理由を説明できる
- CloudFrontのキャッシュ更新方法(TTL・無効化・ファイル名変更)を説明できる
- 3つのキャッシュ層の役割の違いを説明できる
まとめ
キャッシュ戦略は「対象・配置・整合性」の3観点で捉え、ElastiCacheでアプリ層、DAXでDynamoDB専用、CloudFrontでエッジを固めるのが定石です。この記事の理解度はクイズで確認し、最新の試験範囲はAWS認定 公式ページで確認しましょう。
SAA(ソリューションアーキテクト アソシエイト) におすすめの教材
徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書 第3版[SAA-C03]対応
AWS認定ソリューションアーキテクト−アソシエイト問題集
これだけでOK! AWS認定SAA(SAA-C03)試験突破講座
AWS認定SAA 本番模試(6回分/390問)
本セクションにはAmazonアソシエイト・Udemyアフィリエイトのリンクが含まれます。