Azure Cache for Redis ハンズオン:実際に手を動かして学ぶ

Azure Cache for Redis ハンズオン:実際に手を動かして学ぶ

Azure Cache for Redis は、Azure 上で提供されるフルマネージドの Redis サービスです。アプリケーションのパフォーマンス向上、スケーラビリティの確保、データの一貫性維持に役立ちます。本記事では、Azure Cache for Redis の基本的な概念から、実際にAzure Portalやコマンドラインツールを使ってデプロイ、構成、運用を行うハンズオン形式で解説します。

1. Azure Cache for Redis とは?

Redis (Remote Dictionary Server) は、オープンソースのインメモリデータ構造ストアであり、データベース、キャッシュ、メッセージブローカーとして利用できます。非常に高速なデータアクセスが可能であり、様々な用途で利用されています。

Azure Cache for Redis は、Microsoft が提供する Redis のマネージドサービスであり、Redis の運用管理を Azure に委ねることができます。これにより、インフラストラクチャの管理から解放され、アプリケーションの開発に集中できます。

1.1. Azure Cache for Redis のメリット

  • パフォーマンス向上: インメモリデータストアとして、高速な読み書きを実現し、データベースへの負荷を軽減します。
  • スケーラビリティ: 水平方向へのスケーリングが可能で、トラフィックの増加に対応できます。
  • 高可用性: フェールオーバー機能やデータ永続化オプションにより、システムの可用性を高めます。
  • フルマネージド: Redis サーバーの管理、パッチ適用、バックアップなどを Azure が自動的に行います。
  • セキュリティ: Azure のセキュリティ機能と統合されており、安全なデータ管理が可能です。
  • 統合: Azure の他のサービス (Azure App Service, Azure Functions など) と簡単に統合できます。

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

  • セッションキャッシュ: ユーザーのセッション情報を高速に保存し、アプリケーションの応答速度を向上させます。
  • ページキャッシュ: Web ページのコンテンツをキャッシュし、データベースへのアクセスを減らします。
  • 分散キャッシュ: 複数のアプリケーション間でデータを共有し、データの一貫性を維持します。
  • メッセージキュー: アプリケーション間の非同期通信をサポートします。
  • リアルタイム分析: リアルタイムでのデータ集計や分析を可能にします。
  • ゲーミング: ゲームの状態やユーザー情報を高速に保存し、リアルタイムなゲーム体験を提供します。

1.3. Azure Cache for Redis のプラン

Azure Cache for Redis は、いくつかのプランが用意されており、用途や要件に応じて選択できます。

  • Basic: 開発/テスト環境向けの低コストなプラン。シングルノード構成で、データ永続化はサポートされていません。
  • Standard: 一般的なワークロード向けのプラン。レプリケーション機能による高可用性を実現します。
  • Premium: 高度な機能 (クラスタリング、データ永続化、geo-replication など) を提供するプラン。エンタープライズ向けの要件を満たします。
  • Enterprise: Redis Labs 製の Redis Enterprise ソフトウェアをベースにしたプラン。Redisモジュール (RediSearch, RedisJSON など) をサポートし、複雑なデータ構造や高度な検索機能を必要とするワークロードに適しています。
  • Enterprise Flash: Redis Labs 製の Redis Enterprise ソフトウェアをベースにしたプランで、フラッシュストレージを使用してコスト効率を高めます。メモリ容量が限られているものの、データセット全体をメモリに保持する必要がないワークロードに最適です。

プランを選ぶ際には、必要なパフォーマンス、可用性、機能、コストなどを考慮する必要があります。

2. ハンズオン環境の準備

本ハンズオンでは、Azure Portal を利用して Azure Cache for Redis をデプロイ、構成、運用します。

2.1. Azure サブスクリプションの準備

Azure Cache for Redis を利用するには、Azure サブスクリプションが必要です。まだお持ちでない場合は、無料試用版を作成することができます。

2.2. Azure Portal へのログイン

Azure サブスクリプションの準備ができたら、Azure Portal ( https://portal.azure.com/ ) にログインします。

2.3. Azure Cloud Shell の利用

Azure Cloud Shell は、ブラウザからアクセスできるインタラクティブなシェル環境です。Azure リソースの管理に便利なツールがプリインストールされています。本ハンズオンでは、Azure Cloud Shell を利用して、Redis の操作を行います。

Azure Portal の上部にある Cloud Shell アイコンをクリックして、Cloud Shell を起動します。初めて Cloud Shell を利用する場合は、ストレージアカウントの作成を求められる場合があります。

3. Azure Cache for Redis のデプロイ

Azure Portal を使用して、Azure Cache for Redis をデプロイします。

3.1. Redis Cache インスタンスの作成

  1. Azure Portal の検索バーに「Azure Cache for Redis」と入力し、検索結果から「Azure Cache for Redis」を選択します。
  2. 「作成」ボタンをクリックします。
  3. 「新規 Redis Cache」ブレードが表示されます。

3.2. 基本設定

次の情報を入力します。

  • サブスクリプション: 使用する Azure サブスクリプションを選択します。
  • リソースグループ: Redis Cache インスタンスを配置するリソースグループを選択します。既存のリソースグループを選択するか、「新規作成」をクリックして新しいリソースグループを作成します。
  • DNS 名: Redis Cache インスタンスの DNS 名を入力します。DNS 名は、Azure 全体で一意である必要があります。
  • 場所: Redis Cache インスタンスをデプロイするリージョンを選択します。可能な限り、アプリケーションと同じリージョンを選択することをお勧めします。
  • キャッシュの種類: 使用するキャッシュの種類を選択します。本ハンズオンでは、学習用として「Basic」を選択します。
  • 価格レベル: 「Basic」を選択した場合、価格レベルは自動的に設定されます。他のキャッシュの種類を選択した場合は、価格レベルを選択する必要があります。

3.3. ネットワーク

  • 接続方法: パブリックエンドポイントまたはプライベートエンドポイントを選択します。本ハンズオンでは、学習用として「パブリックエンドポイント」を選択します。

3.4. 詳細設定

  • パブリックネットワークアクセス: アクセスを許可するネットワークの指定を許可します。本ハンズオンでは、学習用として「有効」を選択します。

3.5. タグ

必要に応じて、タグを追加できます。タグは、リソースの整理や課金分析に役立ちます。

3.6. 確認および作成

入力した情報を確認し、「確認および作成」ボタンをクリックします。検証に成功すると、「作成」ボタンが有効になります。「作成」ボタンをクリックして、Redis Cache インスタンスのデプロイを開始します。

3.7. デプロイの完了

Redis Cache インスタンスのデプロイには数分かかる場合があります。デプロイが完了すると、Azure Portal に通知が表示されます。

4. Azure Cache for Redis の構成

Redis Cache インスタンスがデプロイされたら、いくつかの設定を構成する必要があります。

4.1. ポートの確認

既定では、Redis はポート 6379 で通信します。Azure Cache for Redis も同様です。クライアントアプリケーションが Redis Cache インスタンスにアクセスできるように、必要なポートが開いていることを確認してください。

4.2. アクセスキーの確認

Redis Cache インスタンスにアクセスするには、アクセスキーが必要です。Azure Portal で、Redis Cache インスタンスの「アクセスキー」ブレードを開き、主キーまたはセカンダリキーを確認します。これらのキーは、Redis Cache インスタンスへの接続に使用されます。

5. Azure Cloud Shell を使用した Redis の操作

Azure Cloud Shell を使用して、Redis Cache インスタンスに接続し、基本的な操作を行います。

5.1. Redis CLI のインストール

Azure Cloud Shell には、Redis CLI (redis-cli) がプリインストールされています。redis-cli は、Redis サーバーと対話するためのコマンドラインツールです。

5.2. Redis Cache インスタンスへの接続

次のコマンドを実行して、Redis Cache インスタンスに接続します。

bash
redis-cli -h <DNS 名> -p 6379 -a <アクセスキー>

  • <DNS 名> は、Redis Cache インスタンスの DNS 名に置き換えてください。
  • <アクセスキー> は、Redis Cache インスタンスのアクセスキーに置き換えてください。

コマンドが成功すると、redis> プロンプトが表示されます。

5.3. 基本的な Redis コマンドの実行

redis> プロンプトで、次のコマンドを実行して、基本的な Redis 操作を試してみましょう。

  • SET: キーと値を設定します。
    redis
    SET mykey "Hello Redis"
  • GET: キーに対応する値を取得します。
    redis
    GET mykey
  • DEL: キーを削除します。
    redis
    DEL mykey
  • PING: サーバーが動作しているか確認します。
    redis
    PING
  • INFO: サーバーの情報を表示します。
    redis
    INFO

これらのコマンドは、Redis の基本的な操作のほんの一例です。Redis は、様々なデータ構造 (文字列、リスト、セット、ハッシュなど) をサポートしており、より複雑な操作も可能です。

6. アプリケーションからの Azure Cache for Redis への接続

Azure Cache for Redis は、様々なプログラミング言語で利用できます。ここでは、C# を使用して、アプリケーションから Azure Cache for Redis に接続する方法を説明します。

6.1. NuGet パッケージのインストール

C# プロジェクトで、StackExchange.Redis NuGet パッケージをインストールします。

powershell
Install-Package StackExchange.Redis

6.2. コード例

“`csharp
using StackExchange.Redis;
using System;

public class RedisExample
{
public static void Main(string[] args)
{
// ConnectionString を設定します。
string connectionString = “,password=<アクセスキー>”;

    // ConnectionMultiplexer を作成します。
    using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(connectionString))
    {
        // データベースを取得します。
        IDatabase db = redis.GetDatabase();

        // 値を設定します。
        db.StringSet("mykey", "Hello Redis from C#");

        // 値を取得します。
        string value = db.StringGet("mykey");
        Console.WriteLine($"Value: {value}");

        // 値を削除します。
        db.KeyDelete("mykey");
    }

    Console.WriteLine("Press any key to exit.");
    Console.ReadKey();
}

}
“`

  • <DNS 名> は、Redis Cache インスタンスの DNS 名に置き換えてください。
  • <アクセスキー> は、Redis Cache インスタンスのアクセスキーに置き換えてください。

このコードは、StackExchange.Redis ライブラリを使用して、Azure Cache for Redis に接続し、値を設定、取得、削除する簡単な例です。

7. Azure Cache for Redis の監視

Azure Cache for Redis は、Azure Monitor と統合されており、パフォーマンスや可用性を監視することができます。

7.1. メトリックの確認

Azure Portal で、Redis Cache インスタンスの「監視」セクションを開き、「メトリック」を選択します。ここでは、CPU 使用率、メモリ使用率、キャッシュヒット率など、様々なメトリックを確認できます。

7.2. アラートの設定

特定のメトリックが閾値を超えた場合に、アラートを受け取るように設定することができます。例えば、メモリ使用率が 80% を超えた場合に、メールで通知を受け取るように設定できます。

8. Azure Cache for Redis の高可用性構成

Standard および Premium ティアでは、レプリケーション機能を使用して高可用性を実現できます。Premium ティアでは、geo-replication 機能を使用して、異なるリージョン間でデータをレプリケーションできます。

8.1. Geo-replication の構成 (Premium)

  1. Azure Portal で、Redis Cache インスタンスの「Geo レプリケーション」ブレードを開きます。
  2. 「レプリケーションペアの追加」をクリックします。
  3. レプリケーション先のリージョンと Redis Cache インスタンスを選択します。
  4. 「作成」をクリックして、レプリケーションペアを作成します。

geo-replication を構成すると、プライマリリージョンの Redis Cache インスタンスへの書き込みが、セカンダリリージョンの Redis Cache インスタンスに非同期的にレプリケーションされます。プライマリリージョンで障害が発生した場合、セカンダリリージョンにフェールオーバーすることができます。

9. Azure Cache for Redis のセキュリティ

Azure Cache for Redis は、Azure のセキュリティ機能と統合されており、安全なデータ管理が可能です。

9.1. ネットワークセキュリティ

  • ファイアウォール: Azure Cache for Redis にアクセスできる IP アドレス範囲を制限できます。
  • プライベートエンドポイント: Azure Virtual Network 内から Azure Cache for Redis にアクセスできます。パブリックインターネットからのアクセスを遮断することで、セキュリティを向上させることができます。

9.2. 認証

  • アクセスキー: Redis Cache インスタンスへのアクセスには、アクセスキーが必要です。アクセスキーは定期的にローテーションすることをお勧めします。
  • Azure Active Directory (Azure AD): Azure AD を使用して、Azure Cache for Redis へのアクセスを認証できます。

10. Azure Cache for Redis のベストプラクティス

  • キャッシュの有効期限: キャッシュに保存するデータの有効期限を設定することで、古いデータがキャッシュに残らないようにします。
  • 適切なプランの選択: ワークロードの要件に応じて、適切なプランを選択してください。
  • モニタリング: Azure Monitor を使用して、Redis Cache インスタンスのパフォーマンスと可用性を監視してください。
  • セキュリティ: ファイアウォール、プライベートエンドポイント、アクセスキーのローテーションなど、適切なセキュリティ対策を実施してください。
  • Connection Pooling: アプリケーションから Redis に接続する際に、Connection Pooling を利用して接続のオーバーヘッドを減らすことをお勧めします。StackExchange.Redis ライブラリはConnection Pooling を自動的に管理します。

11. まとめ

本ハンズオンでは、Azure Cache for Redis の基本的な概念から、実際にAzure Portalやコマンドラインツールを使ってデプロイ、構成、運用を行う方法を解説しました。Azure Cache for Redis は、アプリケーションのパフォーマンス向上、スケーラビリティの確保、データの一貫性維持に役立つ強力なツールです。ぜひ、本ハンズオンを参考に、Azure Cache for Redis を活用してみてください。

今後の学習

この詳細な記事が、Azure Cache for Redis の学習に役立つことを願っています。ハンズオン形式で実際に手を動かすことで、より深く理解し、実践的なスキルを身につけることができるでしょう。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール