「AWSのキャッシュって何?」を解決!よく使う4サービスのまとめ

 

★悩み★
・AWSのキャッシュを使えば、ある処理が高速化するって聞いたけど本当?
・そもそも、AWSのキャッシュって何?
・よく使う「AWSのキャッシュ」の利用例とメリットを知りたいな。



こういった「悩み」に答えます。
 

★本記事の内容★
① AWSにおけるキャッシュとは?
② キャッシュの仕組みとは?
③ よく使う4つの「AWSのキャッシュ」の利用例とメリットをご紹介



これからご紹介する『「AWSのキャッシュって何?」を解決!よく使う4サービスのまとめ』を理解することで、「AWS Certified Solutions Architect – Associateの合格率アップ(筆者は合格済み)」および「AWSのキャッシュを利用するべきユースケースの理解」を見込めます。
 



記事の前半では「AWSにおけるキャッシュとは何か?」を解説します。
記事の後半では「よく使われるAWSキャッシュサービスの利用例とメリット」を紹介します。
 

この記事を読み終えることで、「よく使われるAWSのキャッシュサービスとは何か?」を把握できるだけでなく、「AWSのキャッシュをどういった場面で使うべきか」も把握した状態になります。
 

ちなみに、「そもそもAWSとは何?」を知りたい方には、以下の記事がオススメです。
 


 

AWSにおけるキャッシュとは?


「AWSにおけるキャッシュとは?」に関してご紹介します。
 

AWSにおける「キャッシュの定義」に関して説明しますね。



AWSにおけるキャッシュとは、「一時的にデータを保存しておくためのストレージ」のことです。
 

キャッシュは、通常のストレージより、高速にデータ参照できる機構を持っています
上記特性を持ったキャッシュを使うことで、以下のメリットが得られます。
 

★キャッシュを利用するメリット★
同じデータを繰り返し使用する場合、データをキャッシュに保存しておきましょう。キャッシュに保存することで、以前に使用したデータをより高速に参照できます。
参照:AWSにおけるキャッシュとは?(AWS公式サイト)



以上が、「AWSにおけるキャッシュとは?」となります。
 

キャッシュの仕組みとは?


「キャッシュの仕組みとは?」に関してご紹介します。
 

キャッシュが「どのようにしてデータを高速に参照できるようにしているのか?」に関して説明しますね。



キャッシュに格納されたデータは、RAMやSSDなどの「高速にデータ参照できるハードウェア」に保存されます。
 

ちなみに、RAMとHDDのデータ参照速度は、以下のようになります。
 

★RAMとHDDのデータ参照速度の比較★
・RAM:96〜576Gbps程度
・HDD:0.04〜0.8Gbps程度
参照:各種メモリ/ストレージの転送速度(Qiita)



以上が、「キャッシュの仕組みとは?」となります。
 

よく使う4つの「AWSのキャッシュ」の利用例とメリット


『よく使う4つの「AWSのキャッシュ」の利用例とメリット』をご紹介します。

★AWSでよく使われるキャッシュサービス4選★
・Amazon CloudFront
・Elastic Load Balancing
・Amazon ElastiCache
・Amazon DynamoDB Accelerator



以降で、上記「AWSでよく使われるキャッシュサービス4選」の各項目に関して説明します。
 

AWSのキャッシュ:Amazon CloudFront

「AWSのキャッシュ:Amazon CloudFront」に関して説明します。
 

AWSのキャッシュサービスの1つである「Amazon CloudFront」の「概要」「利用例」「メリット」に関して解説しますね。



Amazon CloudFrontを使うことで、「エッジキャッシュ」を実現できます。
 

★Amazon CloudFrontとは★
エッジロケーションに配備されるエッジキャッシュ提供サービスです。
Amazon CloudFrontを利用することで、AWSサービスまでのネットワーク通信に要する時間を削減できます。



Amazon CloudFrontを使うことで、エンドユーザーは高速にデータを取得できます。
下の例ですと、S3内にあるオブジェクトをAmazon CloudFrontにキャッシュすることで、S3までのアクセスにかかる時間を削減できます。
 



Amazon CloudFrontを利用する際のポイントは、以下となります。
 

★ポイント★
キャッシュファイルは、 24 時間後に自動的に有効期限切れになります。
有効期限の決め方に関しては管理者が設定することができます。
参照:キャッシュの有効期限(AWS公式ページ)



以上が、AWSのキャッシュサービスの1つである「Amazon CloudFront」です。
 

AWSのキャッシュ:Elastic Load Balancing

「AWSのキャッシュ:Elastic Load Balancing」に関して説明します。
 

AWSのキャッシュサービスの1つである「Elastic Load Balancing」の「概要」「利用例」「メリット」に関して解説しますね。



Elastic Load Balancingによるセッション(認証とアクセス制御)の管理に関してご紹介します。
 

★Elastic Load Balancing(ELB)とは★
ELBとは、トラフィック分散させるロードバランサーです。
ELBのクライアントのCookieなどを使うことで、通信を特定のサーバにルーティングすることができます。



アプリケーションが動作しているウェブサーバにセッションを保存する方式(スティッキーセッション)があります。
この保存形式をとることで、セッションを取り出すためのネットワーク通信時間を削減できます。
 

★スティッキーセッションの注意点★
アプリケーションが動作しているウェブサーバが停止すると保存していたセッション情報が消失します。
セッション情報消失対策としてDynamoDBにセッション情報を格納があります。



ELBの機能の1つである「あるユーザの通信を決められたサーバーにルーティングする」ことで、スティッキーセッションを実現できます。
 



以上が、AWSのキャッシュサービスの1つである「Elastic Load Balancing」です。
  

AWSのキャッシュ:Amazon ElastiCache

「AWSのキャッシュ:Amazon ElastiCache」に関して解説します。
 

AWSのキャッシュサービスの1つである「Amazon ElastiCache」の「概要」「利用例」「メリット」に関して解説しますね。



Amazon ElastiCacheによるデータベースのキャッシュに関してご紹介します。
 

★Amazon ElastiCacheとは★
・Amazon Elastic Cacheは、メモリ内にデータを保持するインメモリデータベースです。
・ElasticCacheの内部ではEC2をクラスタリングし、スケールアウト/アップが容易な作りになっています。



ElastiCacheの種類として、「Redis」と「Memcached」(下図の赤枠)があります。
 



Amazon ElastiCacheの種類ごとの比較は、以下の通りです。
参照:AWS公式ページでの比較紹介
 

 MemcachedRedis
ミリ秒未満のレイテンシー
開発者の使いやすさ
データのパーティション
幅広いプログラミング言語のサポート
柔軟なデータ構造
マルチスレッドアーキテクチャ
スナップショット
レプリケーション
トランザクション
Pub/Sub
Lua スクリプト
地理空間のサポート
AWS公式ページに掲載されている比較表



ある特定のデータ構造を使いたい場合は、Redisを選択しましょう。
今後スケールアップする予定がある場合、Memcachedを選択しましょう。

MemCachedの方がスケールアップさせた時の性能がRedisより大幅に向上します。


Amazon ElastiCacheを利用する場面として、以下の2パターン考えられます。
1つ目のパターンとして、「遅延読み込み」があります。
「遅延読み込み」の流れは、以下のようになります。
 



「遅延読み込み」の特徴は、以下となります。
 

★遅延読み込みの特徴★
実際に読み込みされたデータのみをキャッシュに保存します。そのため、不要なデータでキャッシュが枯渇することを防ぐことができます。
ただし、キャッシュに欲しいデータがない場合、アプリケーションの処理速度が低下します。



2つ目のパターンとして、「ライトスルー」があります。
「ライトスルー」の流れは、以下のようになります。
 



「ライトスルー」の特徴は、以下となります。
 

★ライトスルーの特徴★
ライトスルーでは、データベースにデータを保存する際にキャッシュにも保存する方式です。
キャッシュ内にあるデータとデータベース内にあるデータに不整合が発生しない利点があります。
読み込み頻度が少ないデータもキャッシュに保存されるため、キャッシュが枯渇しやすいです。



以上が、AWSのキャッシュサービスの1つである「Amazon ElastiCache」です。
 

AWSのキャッシュ:Amazon DynamoDB Accelerator

「AWSのキャッシュ:Amazon DynamoDB Accelerator」に関して解説します。
 

AWSのキャッシュサービスの1つである「Amazon DynamoDB Accelerato」の「概要」「利用例」「メリット」に関して解説しますね。



Amazon DynamoDB AcceleratorはDynamoDB向けのキャッシュです。
 

★Amazon DynamoDB Accelerator(略称はDAX)とは★
Amazon DynamoDB Acceleratorは、DynamoDB専用のキャッシュです。
完全マネージド型で容易にスケールアウトができるサービスです。
DAX利用することで、DynamoDBの読み込み負荷が軽減できます。



Amazon DynamoDB Acceleratorは、以下のように利用します。
 

引用元:AWS公式ページ



以上が、AWSのキャッシュサービスの1つである「Amazon DynamoDB Accelerator」です。
 

以上が、よく使う4つの「AWSのキャッシュ」です。高速化したい部分ごとに、適切なAWSのキャッシュサービスを使いましょう。


 

【まとめ】「AWSのキャッシュって何?」を解決!よく使う4サービスのまとめ


いかがでしたでしょうか?「AWSにおけるキャッシュの定義」と「よく使われる4つのAWSキャッシュサービス」を解説し、以下の悩みを解決しました。
 

★悩み★
・AWSのキャッシュを使えば、ある処理が高速化するって聞いたけど本当?
・そもそも、AWSのキャッシュって何?
・よく使う「AWSのキャッシュ」の利用例とメリットを知りたいな。



「AWSでのキャッシュは?」と悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

 

 


 

コメント