SAA / ドメイン3 高パフォーマンスなアーキテクチャの設計
重要な内容
Amazon ElastiCache
は、Valkey、Memcached、Redis OSS互換のを提供するです。
SAA では、データベース読み取り負荷の軽減、セッション共有、頻繁に参照するデータの低遅延化で選びます。
概要
アプリケーションと永続データストアの間にを置き、繰り返し読み取るデータをメモリから返します。キャッシュ障害や失効時にも元データから復元できる設計が基本です。
主要技術
①エンジンの選択 ⚠️ 頻出
| エンジン | 特徴 | 向いている要件 |
|---|---|---|
| Valkey/Redis OSS | 、永続化、複雑なデータ型 | セッション、ランキング、高可用 |
| Memcached | 単純な分散キャッシュ | オブジェクトキャッシュを水平分割 |
Valkey/Redis OSSのソート済みセットは、スコアの順に並んだ状態を保つデータ型です。上位N件や特定のメンバーの順位をメモリ上で高速に返せるため、リアルタイムのランキングに使います。Memcachedは単純なキーと値だけを扱います。
②キャッシュ戦略
Lazy Loadingは要求時に読み込み、書き込みはまずDBへ行います。Write Throughは更新時にも更新します。を設定し、古いデータが残る時間を制御します。
③高可用性
Valkey/Redis OSSではとを構成できます。読み取りレプリカで負荷を分散し、障害時にプライマリへ昇格します。
クラスターモードを無効にした構成は1(プライマリ1台と最大5台)です。読み取りはレプリカで増やせますが、データ量と書き込みはプライマリ1台に収める必要があります。クラスターモードを有効にすると、データを複数のシャードへ分割して書き込みとメモリの容量を水平に広げられ、各シャードにレプリカを置いて自動フェイルオーバーも保てます。
④キャッシュ障害への備え
は性能向上の層として扱い、キャッシュミス時は永続DBへフォールバックします。大量同時失効によるキャッシュスタンピードを避けるため、分散やリクエスト制御を検討します。
⑤費用とデプロイの選択
Serverlessは、ノードの種類や台数を選ばずにを作れる構成です。保存したデータ量と処理したリクエスト(ECPU)に応じて課金され、負荷に合わせて自動で増減します。Valkeyはほかのエンジンより料金が低く設定され、Serverlessで課金される最小のデータ量も100MBと、Redis OSSの1GBより小さくなっています。負荷が読めて常に一定なら、ノードを選ぶ構成とリザーブドノードの組み合わせも候補です。
同じデータの繰り返しの読み取りがDBの負荷の大半なら、キャッシュでDBへの読み取りを減らせます。DBインスタンスの拡大やの追加は、キャッシュより高くつくことが多い対策です。
試験対策
「同じ読み取りが多い」「DB負荷を減らす」「セッションを複数で共有」はです。が必要な主データをだけへ保存しません。