【AWS SAA対策 Udemy】キャッシュの活用
ElasticCacheの概要
Amazon ElastiCache を使用すると、クラウド内の人気のオープンソース互換のインメモリデータストアをシームレスにセットアップ、実行、およびスケーリングできます。高スループットかつ低レイテンシーなインメモリデータストアからデータを取得して、大量のデータを扱うアプリケーションを構築したり、既存のアプリケーションのパフォーマンスを改善したりすることが可能です。ref:https://aws.amazon.com/jp/elasticache/ ElasticCache = メモリ + キャッシュというデータベースになる。
メモリ側DB(SDD)なので、ディスクよりも高速処理が可能になっている。
キャッシュは一度アクセスしたデータを保持して次回アクセス時に高速にアクセスできるようにする仕組みになっている
画像、データベースから画像などを取得する際に時間がかかる為、キャッシュからデータを取得してくる。
このキャッシュを更にメモリで管理するのが、インメモリーキャッシュになる
これがElasticCache の正体になる。
しかもフルマネージド型になっている
Redis
複雑なデータ型が必要である。
高速に値をRead/Writeできる
シングルスレッド
スナップショット機能がある
Memcashed
シンプルに高速で利用したい。
マルチスレッドで動作するするインメモリーキャッシュDB
スナップショット機能はない
シンプルに利用できるインメモリーキャッシュDB
ユースケース
DBへのアクセスを高速化
セッション管理
メタデータへの蓄積
アクセス頻度に高いデータをキャッシュに配置して可用性を高める
アプリケーションでデータの即時反映が必要なケースなどに活用する
RDSとElasticCacheを連携させて、高速に返したい場合はElasticCacheを行える。
pub/sub機能でチャットアプリが構築できる。
CloudFrontの概要
AWSにおけるCDNサービス
コンテンツをキャッシュしておいて、Webコンテンツの配信処理を高速化する為のサービス
オリジンサービスの負荷軽減
エッジサーバーで配信高速化
CloudFrontの方でキャッシュを持っている
大規模なアクセスも世界中にあるエッジサーバーのキャパシティを活用して、効率的かつ高速にコンテンツ配信が可能なサービス
AWS WAFでDDoS攻撃の対策ができる。
以前はエッジローケーションに配置してが、今は リージョナルエッジキャッシュを間に挟んでいる。
AWS側が管理するサービスとしてキャッシュ機能が追加されましたが、ユーザー側で選択する内容ではありません。あくまでもユーザーに近いエッジとリージョナルエッジがAWS側で選択されます。
利用方法としては、CloudFrontの配信設定を実施して各ドメインにて利用する
Distribution設定
Adobeメディアを利用する場合はRTMPディストリビューション
Adobe Flash、Flowplayer
CloudFrontのRTMP Distributionを選択することで対応可能でしたが、こちらは2020年末に廃止となりました。
通常はWebディストリビューションを選択する
画像や動画
またはApple HTTP Live Streamingなどのさまざま形式とのビデオオンデマンドが利用できる
Gzip圧縮機能
エッジ側でコンテンツをGZIP圧縮して提供する、高速に配信が可能
キャッシュコントロール機能
キャッシュヒット率を上昇させて効果的なキャッシュ活用を可能にする
必要キャッシュを無効化する事も可能
セキュリティ機能
SSL証明書を設定してHTTPS対応ができる。
AWS WAFによるファイヤーウォールとの連携が可能になる。
Amazon S3バケット配信の際も、OAIとCloudfrotを指すカスタムドメインによってアクセス制限が可能になる。
AWS ShieldによりDDoS攻撃を防ぐ事が可能になる。
利用設計
キャッシュの対象設定
TTLの設定
変換が反映されるまでの時間も考慮してキャッシュ時間(TTL)を決定する
その他の設定
セキュリティ対応等のそのほかの設定事項の要否を決定