人気の動画配信サービスや、SNS。特定のタイミングで爆発的なアクセスがあり、データベース(RDS)の読み取り負荷が限界に達してサイトが重くなる⋯⋯。そんな危機を救うのが、インメモリキャッシュのAmazon ElastiCacheです。
私は最初、「読み取りが遅いなら、RDSのリードレプリカを増やせばいいんじゃない?」と考えていました。しかし、試験の要件は「ミリ秒単位の超低遅延」と「極度のコスト効率」。
これらを満たすための、RDSとElastiCacheの「黄金コンビ」について解説します!
データベースの前に「高速なメモ」を置く
ElastiCacheは、ハードディスクではなく「メモリ(RAM)」の上にデータを保存するデータベースです。
- 驚異のスピード
ミリ秒(1000分の1秒)ではなく、マイクロ秒(100万分の1秒)単位の応答時間を実現します。 - RDSを休ませる
一度DBから読み取ったデータをElastiCacheにキャッシュしておけば、次に同じリクエストが来た時はDBまで行かずに済みます。これで、高価なDBインスタンスの負荷を劇的に減らせます。
試験で狙われる「Redis」と「Memcached」の選び方
ElastiCacheには2つのエンジンがありますが、SAA試験で問われるのは「どっちを使うべきか」の判断です。
①Redis
- 多機能
データのバックアップ(スナップショット)や、レプリケーションによる高可用性に対応。 - 高度なデータ構造
リストやセットなど、複雑なデータを扱えます。 - 用途
ランキング機能、セッション管理、高可用性が必要なシステム。
②Memcached
- シンプル
機能は少ないですが、その分極めてシンプルで高速。 - マルチスレッド
複数のCPUコアを効率よく使えます。 - 用途
構造が単純なキャッシュ。
【比較表】RDS vs ElastiCache
| 特徴 | Amazon RDS / Aurora | Amazon ElastiCache |
| データの置き場所 | ストレージ(永続的) | メモリ(一時的) |
| レスポンス速度 | ミリ秒単位 | マイクロ秒単位(爆速) |
| 主な役割 | データの正確な保存 | 読み取りの高速化・負荷分散 |
試験で役立つ!キーワード判別法
パフォーマンス最適化の問題で、以下の言葉があればAmazon ElastiCacheが正解の鍵です!
- 「ミリ秒未満(Sub-millisecond)のレイテンシー」
- 「データベースの読み取り負荷を軽減」
- 「インメモリデータストア」
- 「リードレプリカよりも高いパフォーマンス」
今回の学び:攻略の格言
「重いDB、叩く前(読み取る前)にキャッシュを見ろ!ミリ秒未満の壁を超えるならElastiCacheの一択だ!」
あとがき:一歩ずつ、合格へ
最後まで読んでいただき、ありがとうございました。
今回の構成は、動画配信サービスなど、現代のWebアプリケーションでは欠かせないアーキテクチャです。RDSだけで無理に頑張るのではなく、キャッシュを組み合わせて「適材適所」で負荷を逃がす。この考え方ができるようになると、インフラ設計がぐっと楽しくなりますね。
「速さは正義」。ユーザー体験を向上させるための強力な武器を、また一つ手に入れました。
それでは、次回の記事でお会いしましょう!
