Azure Managed Service Column <Azure運用コラム>

Azure Cache for Redisとは?

Category: 入門編

2022.06.03

アプリケーションの高速化によりどのようなことができる?ユースケースを紹介

従来、アプリケーションが使用するデータはRDBMS(リレーショナルデータベース)へ保存することが一般的でした。しかし、RDBMSへのデータの書き込み・読み出しは時間がかかるため、特にWebサービスやIoTなど、大量のトランザクションかつ高速なデータのやり取りを求められるアプリケーションには不向きであると言わざるを得ませんでした。

そこで登場したのがキーバリュー型のNoSQLや、データをメモリ上でやり取りするインメモリデータベースという技術です。Azureでは、オープンソースのインメモリデータベースであるRedisをベースとした、Azure Cache for Redisというフルマネージドのインメモリデータベースサービスを提供しており、こうしたアプリケーションの要求に応えています。

本記事では、インメモリデータベースの概要やメリットを踏まえ、Azure Cache for Redisの概要、料金体系、ユースケースなどについて解説します。

1. インメモリデータベースとは

インメモリデータベースとは、データをメモリ上でやりとりするデータベースですが、具体的にどのようなものでしょうか。まず、インメモリデータベースの概要とメリットについて解説します。

インメモリデータベースとは

インメモリデータベースとは、データをメモリ(キャッシュ)上の領域に格納するように設計されたデータベース、またはそのようなデータベースを管理運用するためのデータベース管理システム(DBMS)を指します。データの読み込みや追加、変更、削除をすべてメモリ上で完結させるため、従来のディスク上にデータを格納するオンディスクデータベースと比較して、データの読み書き速度が大幅に向上することが特徴です。

ただし、メモリ上のデータは電源を切ると消失してしまうため、データを永続化させるためには、データベースの停止時や一定時間ごとメモリ上の内容をストレージに保存する機能が必要となります。

インメモリデータベースのメリット

インメモリデータベースのメリットは下記の通りです。

  • データの読み書きが高速
  • アーキテクチャがシンプル
  • マシンリソースの節約になる

データの読み書きが高速

インメモリデータベースの一番のメリットは、データの読み書きが非常に高速になることです。大量のトランザクションかつ高速なデータのやり取りを求められるWebサービスや、IoTデバイスからの情報を受け取るアプリケーションなどに向いています。

アーキテクチャがシンプル

インメモリデータベースは、アーキテクチャがシンプルで扱いやすいという点もメリットです。構造が複雑なRDBMSに対し、任意の保存したいデータ(値:value)に対し、対応する一意の標識(キー:key)を設定し、これらをペアで保存するキーバリューストア(KVS:Key-Value Store)は構造がシンプルで、分散処理にも向いているアーキテクチャです。

マシンリソースの節約になる

インメモリデータベースは、メモリだけを必要とし、ディスク領域を必要としません。そのため、ディスク装置や、そのための設置スペースが不要となり、リソースの節約と省スペース化が実現できます。

キャッシュ戦略

インメモリデータベースを利用する際に重要なのは「キャッシュ戦略」です。一般的に、メモリはディスクと比較して容量がどうしても小さくなるため、全てのデータをメモリ上に格納することは難しいケースがほとんどです。そのため下記のようなデータを選定して、メモリ上へ格納することを検討することが、インメモリデータベースを効果的に使用するために重要です。

  • 読み込みの頻度が多いデータ
  • 書き込み・更新の頻度が少ないデータ
  • 取得に時間がかかるデータ

2. Azure Cache for Redisとは

Microsoftのクラウド、Azureでは、Redisをベースとしたインメモリデータベースのサービスを提供しています。ここでは、Redisとは何かを押さえた上で、Azure Cache for Redisの概要と料金体系について解説します。

Redisとは

Redisとは、2009年にVMware社所属のエンジニアが開発したオープンソースのインメモリデータベース製品です。キーバリューストア(KVS)として動作し、データの永続化機能も備えています。

また、マスター・スレーブ型の構成を取り、マスターノードに書き込んだデータをスレーブノードにコピーする機能により、スレーブがマスターとデータを同期しながら読み込みに応答します。この機能により、書き込みと読み込みにかかる負荷を分散し、高速なデータのやり取りを実現しています。

Azure Cache for Redisとは

Azure Cache for Redisとは、Redisをベースとしたフルマネージドのインメモリデータベースサービスで、オープンソースのRedisをAzureクラウド上で利用できるようにしたものです。

Redisのアーキテクチャや特徴に加えて、Azureによる高い可用性、スケーラビリティ、セキュリティなどを備えていることが大きな特徴と言えるでしょう。

Azure Cache for Redisの料金体系

Azure Cache for Redisは下記5種類の料金プランが用意されています。

  • Basic
  • Standard
  • Premium
  • Enterprise
  • Enterprise Flash

プランによってメモリサイズやデータの冗長化、永続化有無の違いや、利用できる機能に違いがあります。詳細はAzure公式サイト(※1)を参照してください。

※参考1 Azure Cache for Redis の価格

3. Azure Cache for Redisのユースケース

インメモリデータベースはどのようなシーンで利用することが望ましいのでしょうか。ここでは、Azure Cache for Redisを使用するユースケース・シナリオについて解説します。

セッションストア

Webアプリケーションでは、ユーザーがログインするとセッションを生成し、ショッピングカートなどのユーザー履歴データをCookieとして持たせるアーキテクチャがあります。

Cookieに持たせる情報が大きくなると、要求ごとに大きなサイズの情報のやり取りが発生するため、パフォーマンスに影響する可能性があります。そのため、Azure Cache for Redisのキャッシュ上にCookieを保存することでユーザー履歴データのやり取りを高速化させることができます。

データキャッシュ

Azure Cache for Redisをアプリケーションが利用するRDBMSの代わりとして使用することができます。しかし、メモリは一般的なディスクに保存するRDBMSと比較すると容量が小さく、全てのデータをキャッシュ上に格納することは困難です。そのため、キャッシュ戦略に従って、キャッシュ上に格納することが望ましいデータのみを対象として、残りをRDBMSに格納することで、アプリケーションの高速化とリソースの効率化の両方が期待できます。

コンテンツキャッシュ

Webページの多くは、頻繁に更新される動的コンテンツと、ヘッダー、フッター、バナーなどの静的コンテンツに分かれますが、静的コンテンツは頻繁に更新が行われません。静的コンテンツをキャッシュ上に格納しておくことで、静的コンテンツに対するアクセスを高速化することができ、Webサーバーの負荷を下げることが期待できます。

ジョブおよびメッセージキュー

非同期処理など、リアルタイムな処理実行が必要ない場合は、バックグラウンドで処理を実行させることでサーバーの負荷分散やリソースの有効利用につなげることができます。こうした非同期の処理要求をキューに登録することで、処理の要求元と非同期で処理を実行することができます。Azure Cache for Redisでは、この処理パターンを実現するための分散キューを提供しています。

分散トランザクション

アプリケーションの処理には、1回の処理で複数のデータベースのテーブルを更新する場合があります。通常は複数のデータベースへのアクセスを1回のトランザクションで処理することは難しいですが、Azure Cache for Redisでは、複数のトランザクションを単一のトランザクションとしてまとめて実行する分散トランザクションをサポートしています。

4. まとめ

インメモリデータベースは、データの読み書きが非常に高速になることが大きなメリットですが、その特徴を活かして、さまざまなアプリケーションの要求に応えることができます。Azureを導入して高速なアプリケーションを作成する際は、ぜひ導入を検討してみてはいかがでしょうか。

Azure設計・構築を相談する

Azure構築サービス

Azure構築サービス

Microsoft Azureを利用したシステムの設計・構築を代行します。お客様のご要件を実現する構成をご提案・実装いたします。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Azure導入支援・構築・運用サービス総合カタログ

    Microsoft Azure サービスの導入検討・PoC、設計、構築、運用までを一貫してご支援いたします。
    Azure導入・運用時のよくあるお悩み、お悩みを解決するためのアールワークスのご支援内容・方法、ご支援例などをご確認いただけます。

Microsoft Azureを利用したシステムの設計・構築を代行します。お客様のご要件を実現する構成をご提案・実装いたします。

Azure導入個別相談会(無料)

Tag: Azure Cache for Redis Azureデータベース

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php