COLUMN

Azure Cache for Redisとは?ユースケースやインメモリDBのメリットを解説

Azure Cache for Redisとは、Azureが提供するRedisをベースとしたNoSQLです。NoSQLはRDBと比較して高速にデータの読み書きができることから、SNSなどのデータ通信が頻繁に行われるWebサービスなどに適しています。

本記事では、NoSQLとRDBの違いに触れたうえで、Azure Cache for Redisにはどのような特徴があるか、そのメリットや利用料金について詳しく解説します。また、Azure Cache for Redisのベースとなるサービス「Redis」についても紹介しますので、NoSQLについて基礎から理解したい人もぜひ参考にしてください。

Azure Cache for Redisの導入をご検討の方、Azureへの移行を検討しているがセキュリティ面や運用面に不安がある方はお気軽にお問い合わせください。

1.Azure Cache for Redisとは

従来、アプリケーションのデータはRDB(Relational Database)への保存が基本でした。しかし、RDBはデータの読み出し・書き込みに時間がかかるため、低遅延で大量のデータをやり取りする必要がある動的なWebアプリケーションには向いていません。そこでアプリケーション間で持ち回る情報を、メモリ上に高速で出し入れできるNoSQLが活用されています。

NoSQLは、キーバリュー型(個々の組を識別する情報である「キー」と「キー」に対応する「バリュー」の2つのデータで構成されるデータモデル)でデータを保持し非常に高速でデータを読み書きできる技術で、大量のデータをまとめて処理することが可能です。SNSやリアルタイム更新タイプのニュースサイトなど、多くの大規模Webサービスで利用されています。

NoSQLの代表的なオープンソースのキャッシュソフトウェアとして「Redis Cache」「Memcached」などがあり、これらは数多くのプロジェクトで採用されています。Azure Redis Cache(正式名称:Azure Cache for Radis)はそれをクラウド上で利用できるようにしたもので、Radisをベースとしたインメモリデータベースサービスです。

キャッシュ技術をわざわざクラウドで利用する必要性に疑問を持つエンジニアもいますが、Azureクラウド上に保存された情報はMicrosoftの業界最高レベルの情報セキュリティ対策が施されているという情報セキュリティ面のメリットのほかに、キャッシュデータが永続化できるなどのメリットも享受できます。

では、詳しく特徴を見ていきましょう。

1-1.Redisとは

Redisとは2009年に開発されたオープンソースのNoSQLを使用した製品です。またNoSQLの中でもキーバリュー型を採用しているため、大量のデータを保存できる点が特徴です。

Redisはインメモリデータベースであるため、データの読み書きが高速に行えます。また、メモリ上で保存したデータをストレージに格納する方法として、スナップショットを保存するRDB(Redis DataBase)とコマンドを記録するAOF(Append Only File)を備えており、データの永続的な保存が可能です。

Radisのもう一つの特徴は、マスター・スレーブ型レプリケーション機能です。マスター・スレーブ型レプリケーション機能とは、マスターに書き込んだデータをスレーブにコピーする機能を指します。スレーブがマスターとデータを同期しながら読み込みに応答することで、読み込みと書き込みの負荷を分散でき、データの読み書きが高速に行えます。

Azure Cache for Redisの導入をご検討の方、Azureへの移行を検討しているがセキュリティ面や運用面に不安がある方はお気軽にお問い合わせください。

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

インメモリデータベースとは、コンピューターの主記憶装置であるメモリ上にデータを保存・管理するデータベースのことです。副記憶装置であるハードディスクやSSDでデータを管理するよりも速いスピードで、データを読み書きできる特徴があります。

一方、メモリ上で管理するデータはコンピューターの電源がオフになると、データが消失してしまうリスクがあります。このリスクを解消するために、インメモリデータベースではスナップショット保存やコマンドの記録などを用いて、ストレージにデータを格納し、データが消失した際に復旧できる機能が備わっています。

2-1.インメモリデータベースのメリット

インメモリデータベースの大きなメリットは、速いスピードでデータを読み書きできることです。そのため、大量かつ高速なデータの通信を求められるWebサービスなどに適しているでしょう。

加えてインメモリデータベースは構造がシンプルなため、RDBに比べて扱いやすいメリットがあります。特にキーバリュータイプはキーと値の組み合わせでデータを保存する非常にシンプルな構造のため、分散処理に最適です。

3.Azure Cache for Redisを利用するメリット

Azure Redis Cacheの特徴は以下のとおりです。

3-1.マネージドサービスだからメンテナンスフリー

Azure Redis CacheはAzureクラウド上で動作するマネージドサービスです。これは強固な情報セキュリティを保ちながらも、少ない管理・運用の稼働でRedis Cacheを利用できるということを意味します。オンプレミスであれば、情報セキュリティ向上のためのバージョンアップやRedis Cache自体の問題が起きた場合の対応などをしなくてはいけませんが、その点、Azure Redis Cache はAzure上で動いているのでその対応を行う必要がありません。

3-2.リージョンレベルでの冗長化(Geo Replication)

Geo Replicationはリージョン(Azureが提供する稼働サーバーエリア)ごとにキャッシュ情報を複製(レプリケーション)し、一次キャッシュと二次キャッシュとして利用できる機能です。プライマリである一次キャッシュがなんらかの理由でダウンしても、すぐにセカンダリ(二次キャッシュ)がカバーするため、継続的なWebサービスの安定稼働が期待できます。

3-3.クラスター化による高可用性

クラスター構成というと、データベースで利用されるのが一般的ですが、NoSQLにおいても有効です。クラスタリングとは、複数データベース(Radisの場合はキャッシュ)を統合して1つのデータベースのように扱う技術です。こうすることで、複数データベースで処理を分担してWebサービスの拡張性を高めることができます。また、クラスタリングすることで、プライマリがダウンしてもセカンダリがフェイルオーバー(昇格)してシステムを維持することが可能です。

3-4.redis-cliやphpredisなどRedisクライアントからアクセス可能

Azure Redis Cacheへのアクセスのために特別なことをする必要はありません。一般的なアクセス方法で利用が可能です。また、redis-cliやphpredisといったRedis Cacheクライアントを使えるので、ソースコードの変更を最小限に抑えつつ導入できます。

3-5.お手軽スケールアップ・スケールアウト

Webサービスがスケール(拡大)すると、Redis Cacheのパフォーマンスも見直すタイミングがやってきます。この修正作業のためにRedis Cacheを停止する必要があり、その際にメモリ上のデータが消失してしまいます。そのため、データをあらかじめバックアップしてから作業して最後にデータを復元する、という手間がかかります。

Azure Redis CacheならWebサービスを停止することなく、スライダーをいじるだけで簡単にスケールアップ・スケールアウトができます。

3-6.データのエクスポート、インポートが簡単

たとえば、「パフォーマンスが頭打ちになったためにRDBで扱っていたデータをRedis Cacheに乗せ換えたい」という場合に、RDBのデータをインポートするような要件が発生します。逆の場合も同様です。Azure Redis Cacheにはこういった要件にも対応できるように、エクスポート、インポート機能が搭載されています。

3-7.データの永続化も可能

Azure Redis Cacheは高可用性を実現するための機能も充実しています。通常、Redis Cacheデータは揮発(電源が切れると消失)するメモリ上で稼働しているデータですが、これをディスクに保存して永続化することができます。この機能によってデータのスナップショットを作成し、障害発生時にそのバックアップから復元する、といった使い方が可能です。

Azure Cache for Redisの導入をご検討の方、Azureへの移行を検討しているがセキュリティ面や運用面に不安がある方はお気軽にお問い合わせください。

4.Azure Cache for Redisの料金プラン

Azure Redis Cacheの料金プランには以下の5つがあります。

  • Basic
  • Standard
  • Premium
  • Enterprise
  • Enterprise Flash

要件に合わせた柔軟なプランを選択できるのはユーザーにとっても嬉しいポイントです。また、あらかじめ容量の確定が可能な場合には、予約容量価格を利用することにより最大で55%までコストを削減ができます。詳細については公式サイトでご確認ください。

Azure Cache for Redis の価格(Microsoft Azure公式ページ)

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

ここでは、Azure Redis Cacheの具体的なユースケースを見ていきます。

5-1.データキャッシュ

Azure Redis CacheはRDBのシステムでも活用できます。

一般的にRDBのデータすべてをキャッシュとして持たせるということは難しいです。そこで、必要最低限のデータだけをRDBに登録し、残りはキャッシュに保存することで、RDBの負荷を下げるという手法が有効です。キャッシュされたデータはシステムがデータを更新すると同期的に更新されます。このように、Webサービスのスループットを改善する目的でAzure Redis Cacheを採用するメリットは大きいでしょう。

5-2.コンテンツキャッシュ

Webサイトはリアルタイムで更新されるテキストデータなどの動的データと、ヘッダー画像やバナーといった静的データに分かれます。この中で、静的データは滅多に更新されることがないため、キャッシュに読み込ませることにより、ページの読み込み速度を改善することができます。サーバー負荷を下げるためにも有効な手法です。

5-3.セッションストア

ログイン機能を持つWebサービスでは、履歴情報などのユーザー情報をCookieに持たせるのが一般的です。しかし、Cookieに持たせるデータが肥大化してくるとパフォーマンスが低下する恐れがあります。そのため、Azure Redis CacheにCookieを保存することで、Cookieが持つユーザー情報を高速にページ間で持ち回ることが可能になります。

5-4.ジョブおよびメッセージキュー

リアルタイムで処理しなくてもよい処理はバックグラウンドでタスクとして実行されるべきです。これはサーバーの負荷を分散するためで、バッチ処理などが代表的なものといえます。Azure Redis Cacheは、このバッチ処理のキューイングに使用できます。さらに、AWSやAzureといったクラウドサービスには、負荷にあわせて自動でスケールする「オートスケール」と呼ばれる機能があり、ある日のバッチ処理のキューが一定数を超える場合、自動でスケールさせるという運用も可能です。

5-5.分散トランザクション

Webサービスはいつも単一のデータベースだけを取り扱うわけではありません。要件によっては複数のデータベースのテーブルを更新する必要がある場合があります。この場合、通常のトランザクション処理では一連の処理をトランザクションとして追うことができません。そこで分散トランザクションで複数種類の処理をまとめることが求められます。Azure Redis Cacheはこの分散トランザクションをサポートします。

Azure Cache for Redisの導入をご検討の方、Azureへの移行を検討しているがセキュリティ面や運用面に不安がある方はお気軽にお問い合わせください。

6.Azure Cache for Redisの活用ならぜひNTT東日本にご相談ください

RDBからNoSQLへの移行を検討している場合、Azure Cache for Redisはデータ管理に必要な機能が全て備わっているためおすすめです。

特に初めてNoSQLを使う場合は、バージョンのアップデート処理や運用保守に不安を覚えるケースもあるでしょう。Azure Cache for Redisであれば、Azureでのサポートが充実していることで、メンテナンスの手間がかからず安心です。

NTT東日本では、Azure Cache for Redisの導入サポートを支援するクラウド導入・運用サービスを提供しています。Azure自体の導入が初めてで操作方法に不安があったり、Azure Cache for Redisの導入だけではなく、データベースをオンプレミスからクラウドへ移管することを検討していたりする場合でも対応可能です。

興味のある方は、こちらからお問い合わせください。

NTT東日本のクラウド導入・運用サービス

7.Azure Cache for Redisについてまとめ

Azure Cache for Redisは、NoSQLの代表的なシステムであるRedisをクラウド上で利用できるようにしたサービスです。従来型のRDBと比較して、非常に高速かつ大量にデータの読み書きができるため、SNSなど動的なデータ更新が必要なWebサービスで活用されています。

Azure側でバージョンアップデートや情報セキュリティ対策を実施するため、メンテナンスコストがかからない利点があります。

RDBからNoSQLへの移行を考えているならば、Azure Cache for Redisの導入を検討してみてはいかがでしょうか。

Azure Cache for Redisの導入をご検討の方、Azureへの移行を検討しているがセキュリティ面や運用面に不安がある方はお気軽にお問い合わせください。

ページ上部へ戻る

無料ダウンロード

自社のクラウド導入に必要な知識、ポイントを
このに総まとめ!

あなたはクラウド化の
何の情報を知りたいですか?

  • そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
  • 【AWS・Azure・Google Cloud】
    どれが自社に最もマッチするの?
  • 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
  • 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?

初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。

NTT東日本では
そんなあなたにクラウド導入に必要な情報を

1冊の冊子にまとめました!

クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・

  • システムインフラの維持にかかるトータルコストがあまり変わらない。。
  • 情シス担当者の負担が減らない。。
  • セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
  • そもそも”クラウド化”とは?
    その本質的なメリット・デメリット
  • 自社にとって
    最適なクラウド環境構築のポイント
  • コストを抑えるため
    具体的なコツ
  • 既存環境からスムーズにクラウド化
    実現するためのロードマップ

など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。

クラウドのわからない・
面倒でお困りのあなたへ

クラウドのご相談できます!
無料オンライン相談窓口

NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!

NTT東日本が選ばれる5つの理由

  • クラウド導入を
    0からワンストップでサポート可能!
  • 全体最適におけるコスト効率・業務効率の改善
    中立的にご提案
  • クラウド環境に問題がないか、
    第3者目線でチェック
    してもらいたい
  • 安心の24時間・365日の対応・保守
  • NTT東日本が保有する豊富なサービスの組み合わせで
    ”課題解決”と”コスト軽減”を両立

特に以下に当てはまる方はお気軽に
ご相談ください。

  • さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
  • オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
  • オンプレミスとクラウド移行した際のコスト比較を行いたい
  • AWSとAzure、どちらのクラウドが自社に適切かわからない
  • クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
  • クラウド利用中、ネットワークの速度が遅くて業務に支障がでている

クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。