Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Azure:Redisキャッシュ、ディザスタリカバリ、タグ付けサポート、SQLDB弾性スケール、DocDB

連載:ScottGu's Blog翻訳

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/10/17 14:00

 本稿は、Scott Guthrie氏のブログを、氏の許可を得て、翻訳、転載したものです。米Microsoft社の副社長で、ASP.NETやSilverlightの開発チームを統率する氏のブログでは、次期製品を含む最新の技術をいち早く紹介しています。

目次

 原典:Azure: Redis Cache, Disaster Recovery to Azure, Tagging Support, Elastic Scale for SQLDB, DocDB

はじめに

 ここ数日で、Microsoft Azureに非常に多くの拡張機能をリリースしました。

 その中には、以下のものがあります。

  • Redisキャッシュ:Redisキャッシュサービスの一般公開
  • サイトリカバリ:Azureサイトリカバリを使用したAzureディザスタリカバリの一般公開
  • 管理:Azureプレビューポータルでタグサポート
  • SQL DB:Azure SQLデータベース弾性スケールのパブリックプレビュー(.NET lib、Azureサービステンプレートから利用可能)
  • DocumentDB:ドキュメントエクスプローラ、コレクション管理、新しいメトリクスのサポート
  • 通知ハブ:Baiduプッシュ通知サービスのサポート
  • 仮想ネットワーク:Azureプレビューポータルで静的プライベートIPのサポート
  • オートメーションのアップデート:Active Directory認証、PowerShellスクリプトコンバータ、ランブックギャラリー、1時間毎のスケジューリングサポート

 上記の新機能はすべて現在使用可能です(注:まだプレビューのものもあります)。以下はその詳細になります。

Redisキャッシュ:Redisキャッシュサービスの一般公開

 Azure Redisキャッシュの一般公開についてお知らせできうれしく思います。Azure Redisキャッシュサービスにより、Microsoftがサービスとして管理する安全/専用のRedisキャッシュが利用できます。Azure Redisキャッシュは、Azureアプリケーションに対する推奨の分散キャッシュソリューションです。

Redisキャッシュ

 キーと値のペアのみを扱う通常のキャッシュとは異なり、Redisは高性能なデータタイプをサポートしていることで人気があり、例えば、文字列に付加、ハッシュで値をインクリメント、リストへのプッシュ、積集合、和集合、差の計算、ソートされたセット内の最高ランクメンバーの取得といったアトミック操作を実施できます。その他の特長として、トランザクション、パブリッシュ/サブスクライブ、Luaスクリプト、存続時間限定キー、Redisが通常キャッシュのように振る舞うようにする構成設定などがサポートされています。

 最後に、Redisの周りにはいい状態で活気のあるオープンソースのエコシステムが構築されています。これは、複数の言語で利用できる多様なRedisクライアントに反映されています。これにより、AzureでホストしているWindowsまたはLinux上で実行中のほぼすべてのアプリケーションで使用できます。

Redisキャッシュのサイズとエディション

 Azure Redisキャッシュサービスは、現在、250MB、1GB、2.8GB、6GB、13GB、26GB、53GBのサイズで提供されます。今後はさらに高メモリオプションをサポートする予定です。

 各Redisキャッシュサイズオプションにも2つのエディションが提供されています。

  • 基本-シングルキャッシュノード。正式なSLAがないため、開発/テストまたは重要でないワークロードでの使用をお勧めします。
  • 標準-マルチノード。高可用のためにマスター/レプリカの2つのノードで構成されたレプリケーションキャッシュで、エンタープライズSLAに裏打ちされています。

 標準エディションでは、2つのノード間のレプリケーションを管理し、マスターノードで障害が発生した場合(非計画的サーバー障害または計画的パッチ適用保守のどちらの場合も)に自動フェイルオーバーを実行します。これにより、キャッシュとその中に保存されたデータの可用性を確保することができます。Azure Redisキャッシュの価格の詳細は、Azureキャッシュ価格設定ページでご確認いただけます。価格は1ヶ月17ドルの低いところから開始されます。

新しいRedisキャッシュの作成と接続

 Azureプレビューポータルを使用して、Redisキャッシュの新しいインスタンスを作成できます。New-Redis Cache項目を選択するだけで、新しいインスタンスが作成できます。

 その後すでに準備したRedisキャッシュに接続する場合、幅広いプログラミング言語およびそれに対応するクライアントパッケージが使用できます。Azure Redisキャッシュサービスに接続する時と同じく、独自のRedisインスタンスに接続するために使用しているものと同じRedisのクライアントパッケージを使用することができます。APIとライブラリはまったく同じになります。

 以下では.NET Redisクライアントを使用して、StackExchange.Redisを呼び出し、Azure Redisキャッシュインスタンスに接続します。まず、任意のVisual Studioプロジェクトを開き、NuGetパッケージマネージャでStackExchange.Redis NuGetパッケージを追加します。次に、Azureプレビューポータルで、キャッシュインスタンスに対して、プロパティブレードおよびキーブレードからそれぞれキャッシュエンドポイントとキーを取得します。

 これらを検索したら、以下のコードでキャッシュに接続インスタンスを作成します。

var connection = StackExchange.Redis.ConnectionMultiplexer.Connect("contoso5.redis.cache.windows.net,ssl=true,password=...");

 接続が確立されると、ConnectionMultiplexer.GetDatabaseメソッドを呼び出して、Redisキャッシュデータベースへの参照を取得します。

IDatabase cache = connection.GetDatabase();

 アイテムは保存され、StringSetおよびStringGetメソッド(またはその非同期対応 - StringSetAsyncおよびStringGetAsync)を使用するとキャッシュから取得できます。

cache.StringSet("Key1", "HelloWorld");
cache.StringGet("Key1");

 これでAzure上で実行されているRedisキャッシュインスタンスに“Hello World”文字列を保存し、取得できました。Azure Redisキャッシュを使用したエンドツーエンドアプリケーションの例については、MVCムービーアプリケーションブログ記事をご確認ください。

ASP.NETセッション状態と出力キャッシュにRedisを使用

 また、プロセス外のASP.NETセッション状態の保存や、Webサーバインスタンス間の出力キャッシュコンテンツを共有するのに、Redisを利用することができます。

 セッション状態にRedisを使用する方法については、このブログ記事、RedisのためのASP.NETセッション状態をご確認ください。

 出力キャッシュにRedisを使用する方法については、このMSDN記事、Redisに対するASP.NET出力キャッシュをご確認ください。

監視とアラート

 すべてのAzure Redisキャッシュインスタンスには、デフォルトでビルトインの監視サポートがあります。現在、キャッシュヒット、キャッシュミス、Get/Setコマンド、トータルオペレーション、排除キー、期限切れキー、使用メモリ、使用帯域幅、使用CPUなどを追跡できます。Azureプレビューポータルを使用すると、ビジュアルで簡単に確認できます。

 メトリクスやイベント上でアラートを(上記の“Add Alert”ボタンをクリックして)作成することもできます。例えば、キャッシュが排除を確認した時にキャッシュ管理者に通知するアラートルールを作成するなどです。これは、キャッシュが多く実行されていて、メモリのスケールアップが必要であることを伝えるシグナルにもなります。

詳細について

 Azure Redisキャッシュの詳細については、以下のリンクをご確認ください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト Chica(チカ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

バックナンバー

連載:Scott Guthrie氏 Blog翻訳

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5