Amazon ElastiCache

Amazon ElastiCache
開発者Amazon.com
初回リリース2011年8月22日[ 1 ] (2011年8月22日
入手可能な英語
タイプクラウドストレージ
Webサイトaws .amazon .com /elasticache /

Amazon ElastiCacheは、Amazon Web Services(AWS)が提供するフルマネージド型のインメモリデータストアおよびキャッシュサービスです。このサービスは、低速なディスクベースのデータベースに完全に依存するのではなく、マネージド型のインメモリキャッシュから情報を取得することで、ウェブアプリケーションのパフォーマンスを向上させます。ElastiCacheは、 ValkeyMemcachedRedisの3つのインメモリキャッシュエンジンをサポートしています。[ 2 ]

Amazon ElastiCacheは、コンピューティングクラウド上で動作するウェブサービスとして、Valkey、Memcached、Redisのデプロイメントのセットアップ、運用、スケーリングを簡素化するように設計されています。ソフトウェアのパッチ適用、データセットのバックアップと復元、機能の動的な追加・削除といった複雑な管理プロセスは自動的に管理されます。ElastiCacheリソースのスケーリングは、単一のAPI呼び出しで実行できます。[ 3 ]

Amazon ElastiCacheは2011年8月22日に初めてリリースされ、[ 4 ] memcachedをサポートしました。その後、2012年4月5日にリザーブドインスタンスのサポートが開始され、 [ 5 ] 2013年9月4日にRedisのサポートが開始されました。 [ 6 ]

用途

複数のエンジンをサポートするマネージドデータベースサービスであるAmazon ElastiCacheは、次のような幅広い用途があります。

パフォーマンスの加速

データベースの制限は、しばしばアプリケーションパフォーマンスのボトルネックとなります。Amazon ElastiCacheをアプリケーションとデータベースの間に配置することで、データベース操作を高速化できます。[ 7 ]

コスト削減

ElastiCache をデータベースパフォーマンスの高速化に使用すると、データベースをサポートするために必要なインフラストラクチャを大幅に削減できます。多くの場合、コスト削減額はキャッシュコストを上回ります。ExpediaElastiCache を使用することで、プロビジョニングされた DynamoDB の容量を 90% 削減し、データベースの総コストを 6 分の 1 に削減することができました。[ 8 ] [ 9 ]

時系列データの処理

Redisエンジンを使用することで、ElastiCacheは時系列データを迅速に処理し、ある時点の範囲内で最新または最も古いレコードやイベントを素早く選択することができます。[ 10 ]

リーダーボード

リーダーボードは、ゲーミフィケーションされたシステムにおいて、ユーザーが現在どの位置にいるのかを素早く示す効果的な方法です。多数のゲーマーがいるシステムでは、プレイヤーの順位を計算して公開することが困難になる場合があります。Amazon ElastiCacheとRedisエンジンを組み合わせることで、大規模なリーダーボードを高速に処理できます。[ 11 ]

レート制限

一部のAPIでは、一定期間あたりのリクエスト数に制限があります。Amazon ElastiCache for Redisエンジンは、増分カウンターなどのツールを使用して、制限に応じてAPIアクセスを制限できます。[ 12 ]

原子カウンター

プログラムでは、増分カウンターを使用して、許容される数量を制限できます。例えば、コースに登録できる学生の最大数や、ゲームのプレイヤー数が2人以上8人以下であることを保証できます。カウンターを使用すると、カウンターが適切に更新されなかったために操作が許可されてしまう競合状態が発生する可能性があります。ElastiCache for Redisのアトミックカウンター関数を使用すると、1回の操作でカウンターの値の確認と増分の両方を実行できるため、競合状態を防ぐことができます。[ 13 ]

チャットルームとメッセージボード

ElastiCache for Redisはパブリッシュ・サブスクライブパターンをサポートしており、興味のあるユーザーにメッセージが自動的に配信されるチャットルームやメッセージボードの作成を可能にします。 [ 14 ]

展開オプション

Amazon ElastiCache では、オンデマンド キャッシュノードまたは予約済みキャッシュノードを使用できます。

オンデマンドノードは、キャッシュノードのプロビジョニング時にAWSクラウド内のリソースが割り当てられ、時間単位でキャッシュ容量を提供します。オンデマンドノードは、所有者によっていつでもサービスから削除できます。所有者には、毎月、使用した時間に応じて料金が請求されます。[ 15 ]

予約ノードは1年または3年の契約期間が必要で、キャッシュリソースは所有者専用となります。予約ノードの1時間あたりの料金は、オンデマンドノードの1時間あたりの料金よりも大幅に低くなっています。[ 16 ]

パフォーマンス

効率的なキャッシュは、アプリケーションのパフォーマンスとユーザーのナビゲーション速度を大幅に向上させることができます。Amazon CloudWatchは、追跡可能なElastiCacheのパフォーマンスメトリクスを公開しています。[ 17 ]

主要なパフォーマンス指標

  • クライアント メトリック (クライアント接続とリクエストの量を測定): キャッシュへの現在のクライアント接続の数、キャッシュが受信した Get コマンドと Set コマンドの数
  • キャッシュパフォーマンス: ヒット、ミス、レプリケーションラグ、レイテンシ
  • メモリメトリクス: メモリ使用量、エビクション、ホスト上で利用可能な空きメモリ量、スワップ使用量、メモリ断片化率
  • その他のホストレベルのメトリック: CPU 使用率、ホストがネットワークから読み取ったバイト数、ホストがネットワークに書き込んだバイト数

メトリック収集

ElastiCacheの多くのメトリクスは、 CloudWatch経由でAWSから収集することも、RedisやMemcachedなどのキャッシュエンジンから直接収集することもできます。これには監視ツールが統合されています。[ 18 ]

CloudWatchでElastiCacheを監視する最も簡単な方法は、オンライン管理コンソールを使用することです。基本的な自動アラートを設定し、個々のメトリクスの最近の変化を視覚的に把握できます。

ElastiCache関連のメトリクスはコマンドラインからも取得できます。スポットチェックやアドホック調査に活用できます。

  • CloudWatch と統合された監視ツール

ElastiCache メトリクスを収集する 3 番目の方法は、Amazon CloudWatch と統合された専用の監視ツールを使用することです。

著名な顧客

Amazon ElastiCacheのユーザーには、Airbnb[ 19 ] Expedia[ 20 ] Zynga[ 21 ] Tinder[ 22 ] FanDuel[ 23 ] Mapbox [ 24 ]などがある。

制限事項

AWSサービスであるElastiCacheはAWS内からのみアクセスできるように設計されているが、AWSでホストされていないアプリケーションやデータベースにこのサービスを接続することは可能である。[ 25 ]

代替案

Amazon ElastiCache に匹敵するクラウド データ キャッシュ サービスは、Azure Cache for RedisRedis Ltd (オープンソースの Redis および Redis Enterprise を開発している企業)、Redis To Go、IBM Compose、Oracle Application Container Cloud ServiceRackspace ObjectRocketなどの他のベンダーからも提供されています。

参考文献

  1. ^ 「Amazon ElastiCache – 分散型インメモリキャッシュ」Amazon Web Services . 2011年8月22日. 2019年6月3日時点のオリジナルよりアーカイブ。 2019年6月3日閲覧
  2. ^ 「ElastiCache for Redis」 Amazon Web Services . 2016年11月14日時点のオリジナルよりアーカイブ。 2016年8月29日閲覧
  3. ^ 「スケーリング」。AWS ElastiCacheドキュメント2016年12月11日時点のオリジナルからアーカイブ2016年7月8日閲覧。
  4. ^ 「Amazon ElastiCache – 分散型インメモリキャッシュ」 amazon.com 2011年8月22日. 2016年3月20日時点のオリジナルよりアーカイブ2016年7月8日閲覧。
  5. ^ 「Amazon ElastiCache の予約キャッシュノード」amazon.com 2012年4月5日. 2016年9月20日時点のオリジナルよりアーカイブ2016年7月8日閲覧。
  6. ^ 「Amazon ElastiCache – Redis が加わりました」 amazon.com 2013年9月4日. 2016年9月20日時点のオリジナルよりアーカイブ。 2016年7月8日閲覧
  7. ^ 「Memcachedを使用してデータベースのパフォーマンスを向上させる」 . CloudVPS . 2016年7月13日時点のオリジナルよりアーカイブ2016年7月8日閲覧。
  8. ^ 「お客様の声」 amazon.com 2016年8月22日時点のオリジナルよりアーカイブ2016年7月8日閲覧
  9. ^ 「AWS NoSQLサービスでのスケーラブルなアプリケーションの構築」youtube.com . 2024年12月5日時点のオリジナルよりアーカイブ2016年7月8日閲覧
  10. ^ 「Redisを時系列データベースとして使用する理由と方法」InfoQueue . 2016年8月2日時点のオリジナルよりアーカイブ2016年7月8日閲覧
  11. ^ 「REDISを使ってゲームリーダーボードを構築する」 Social Point . 2018年9月14日時点のオリジナルよりアーカイブ。 2016年7月8日閲覧
  12. ^ 「DOWN BOY: REDISを使ってAPIへのリクエストを簡単に制限する方法」Collective Idea2012年11月30日。2016年7月4日時点のオリジナルよりアーカイブ。 2016年7月8日閲覧
  13. ^ 「An Atomic Rant」 . Nate Wigel vs Technology . 2010年2月18日. 2016年5月28日時点のオリジナルよりアーカイブ。 2016年7月8日閲覧
  14. ^ 「Redis Pubsubでシンプルなチャットルームを作成する」 Program Every Day . 2016年7月21日時点のオリジナルよりアーカイブ。 2016年7月8日閲覧
  15. ^ 「Amazon ElastiCache 料金」 amazon.com 2016年8月22日時点のオリジナルよりアーカイブ2016年7月8日閲覧
  16. ^ 「ElastiCache Reserved Cache Nodes」 . amazon.com . 2016年7月2日時点のオリジナルよりアーカイブ2016年7月8日閲覧。
  17. ^ 「RedisまたはMemcachedを使用したElastiCacheパフォーマンスメトリクスの監視」 2015年12月10日。 2016年10月24日閲覧
  18. ^ 「ElastiCacheメトリクスとRedis/Memcachedメトリクスの収集」 2015年12月10日。2016年10月24日時点のオリジナルよりアーカイブ。 2016年10月24日閲覧
  19. ^ 「Airbnbケーススタディ」 amazon.com 2016年7月8日閲覧
  20. ^ 「AWS NoSQLサービスでのスケーラブルなアプリケーションの構築」youtube.com2017年7月29日時点のオリジナルよりアーカイブ2016年7月8日閲覧
  21. ^ 「AWSケーススタディ:Zynga」 amazon.com . 2016年6月11日時点のオリジナルよりアーカイブ2016年7月8日閲覧。
  22. ^ 「Amazon ElastiCache でTinderの大規模な回復力を構築」amazon.com . 2024年3月5日時点のオリジナルよりアーカイブ2024年3月28日閲覧
  23. ^ 「FanDuel Case Study」 . amazon.com . 2016年8月30日時点のオリジナルよりアーカイブ。 2016年7月8日閲覧
  24. ^ 「AWS NoSQLサービスでのスケーラブルなアプリケーションの構築」youtube.com2017年7月29日時点のオリジナルよりアーカイブ2016年7月8日閲覧
  25. ^ 「AWS外部からElastiCacheリソースにアクセスする」AWSドキュメント2016年8月6日時点のオリジナル記事からアーカイブ2016年7月8日閲覧