このクイック スタートでは、Azure 内の任意のアプリケーションからアクセスできるセキュリティで保護された専用キャッシュにアクセスするために、Azure Cache for Redis を .NET Framework アプリに組み込みます。 具体的には、.NET コンソール アプリで StackExchange.Redis クライアントと C# コードを使用します。
GitHub のコードにスキップする
GitHub の Azure-Samples/azure-cache-redis-samples からリポジトリをクローンします。
[前提条件]
- Azure サブスクリプション - 無料アカウントを作成する
- Visual Studio 2019 の
- StackExchange.Redis クライアントには .NET Framework 4 以上が必要です。
Azure Managed Redis インスタンスを作成する
Azure Managed Redis インスタンスを作成するには、Azure portal にサインインし、[リソースの 作成] を選択します。
[新規] ページで、検索ボックスに「Azure Cache for Redis」と入力します。
[ 新しい Redis Cache ] タブで、[基本] で新しいキャッシュの設定を構成します。
設定 値を選択する 説明 サブスクリプション ドロップダウンで、ご自身のサブスクリプションを選択します。 この新しい Azure Managed Redis インスタンスが作成されるサブスクリプション。 リソース グループ ドロップ ダウンでリソース グループを選択するか、[新規作成] を選択し、新しいリソース グループの名前を入力します。 その中にキャッシュやその他のリソースを作成するリソース グループの名前。 すべてのアプリ リソースを 1 つのリソース グループに配置することで、それらをまとめて簡単に管理または削除できます。 名前 リージョンで一意の名前を入力します。 キャッシュ名は、"キャッシュのリージョン名と組み合わせた" ときに 1 から 63 文字の文字列で、数字、英字、ハイフンのみを使用する必要があります。 (キャッシュ名の長さが 45 文字未満の場合、現在使用できるすべてのリージョンで機能するはずです)。名前の先頭と末尾には数字または文字を使用する必要があり、連続するハイフンを含めることはできません。 キャッシュ インスタンスのホスト名は \<DNS name\>.\<Azure region\>.redis.azure.net
です。リージョン ドロップ ダウンで場所を選択します。 Azure Managed Redis は、選択した Azure リージョンで使用できます。 データ層 高パフォーマンスの場合 はメモリ内 を選択し、パフォーマンスの低いキャッシュには Flash を選択します メモリ内層には、 Balanced、 Memory Optimized、 Compute Optimized が含まれます。 フラッシュ層を使用して、インメモリ (RAM) およびディスク上 (SSD) データ ストレージを使用します。 キャッシュ サイズ ドロップダウンしてサイズを選択します。 キャッシュ サイズは層によって異なります。 最小サイズは Balanced レベルです。 最大サイズのメモリ内層は、メモリ最適化レベルです。 パフォーマンス ドロップダウンを選択し、パフォーマンス設定を選択します。 パフォーマンスは、vCPU の数によって異なります。 vCPU の数は、レベルによって異なります。 コンピューティング最適化には、最も多くの vCPU があります。 適切なパフォーマンス レベルの選択に関するガイダンスについては、「適切な レベルの選択」を参照してください。
重要
120 GB を超えるストレージを使用するすべてのメモリ内層は、メモリ最適化 M150 以上、バランス B150 以上、コンピューティング最適化 X150 以上を含めて、パブリック プレビュー段階にあります。 これらのレベル以上はすべてパブリック プレビュー段階です。
フラッシュ最適化レベルはすべてパブリック プレビュー段階です。
[ 次へ: ネットワーク ] を選択し、 パブリック エンドポイント または プライベート エンドポイントを選択します。
[次へ: アクティブ geo レプリケーション] を選択します。 アクティブ geo レプリケーションを使用するには、プロビジョニング中に有効にする必要があります。 アクティブ geo レプリケーションのないキャッシュは、後でアクティブ geo レプリケーション グループに追加したり、アクティブ geo レプリケーション グループに参加したりすることはできません。 詳細については、「Azure Managed Redis インスタンスのアクティブ geo レプリケーションを構成する」を参照してください。
[ 次へ: 詳細設定 ] タブを選択します。
インスタンスに追加するすべての Redis モジュール を構成します。
新しいマネージド キャッシュの場合、既定で次のように設定されています:
- Microsoft Entra ID は有効になっています。
- [アクセス キー認証] は、セキュリティ上の理由から無効になっています。
重要
最適なセキュリティのため、可能であれば、キャッシュに対する要求を認可するのに Microsoft Entra ID とマネージド ID を使うことをお勧めします。 Microsoft Entra ID とマネージド ID を使う認可は、共有アクセス キーの認可より、セキュリティと使いやすさの点で優れています。 キャッシュでのマネージド ID の使用について詳しくは、キャッシュ認証への Microsoft Entra ID の使用に関する記事をご覧ください。
クラスタリング ポリシーの設定:
- RedisSearch またはその他のモジュールを使用するために Enterprise を使用する
- クラスター化キャッシュには OSS を使用します。
- 非クラスター化キャッシュには非クラスター化 (プレビュー) を使用します。
[クラスタリング ポリシー] の選択方法の詳細については、「クラスタリング ポリシー」を参照してください。
重要
Azure Managed Redis インスタンスのクラスタリング ポリシーは、作成後に変更することはできません。 RediSearch を使用している場合、Enterprise クラスター ポリシーは必須であり、サポートされている唯一の削除ポリシーは
NoEviction
です。重要
geo レプリケーション グループでこのキャッシュ インスタンスを使用している場合、インスタンスの作成後に削除ポリシーを変更することはできません。 キャッシュを作成する前に、プライマリ ノードの削除ポリシーを確認してください。 アクティブ geo レプリケーションの詳細については、「アクティブ geo レプリケーションの前提条件」を参照してください。
重要
キャッシュ インスタンスを作成した後でモジュールを変更することはできません。 モジュールは、Azure Cache for Redis インスタンスを作成するときに有効になっている必要があります。 キャッシュの作成後にモジュールの構成を有効にするオプションはありません。
タグ を選択してスキップします。
[ 次へ: 確認と作成] を選択します。
設定を確認し、 [作成] を選択します。
Redis インスタンスの作成には数分かかります。 Azure Managed Redis の [概要] ページで進行状況を監視できます。 [状態] に "実行中" と表示されている場合は、キャッシュを使用する準備ができています。
Azure Cache for Redis インスタンスを作成する
Azure portal で、Azure Cache for Redis を検索して選択します。
Azure Cache for Redis ページで、作成>Azure Cache for Redis を選択します。
[新しい Redis Cache] ページの [基本] タブで、次の設定を構成します。
- [サブスクリプション] : 使用するサブスクリプションを選択します。
- リソース グループ: リソース グループを選択するか、[ 新規作成 ] を選択して新しいリソース グループ名を入力します。 すべてのアプリ リソースを同じリソース グループに配置すると、それらを簡単に管理または削除できます。
-
名前: リージョン内で一意のキャッシュ名を入力します。 名前は次の必要があります。
- 1 ~ 63 文字の文字列を指定します。
- 数字、文字、ハイフンのみを含みます。
- 先頭と末尾に数字または文字を使用します。
- 連続するハイフンを含まない。
- リージョン: キャッシュを使用する他のサービスの近くにある Azure リージョン を選択します。
- キャッシュ SKU: 使用可能なサイズ、パフォーマンス、およびキャッシュの機能を決定する SKU を選択します。
- キャッシュ サイズ: キャッシュ サイズを選択します。 詳細については、Azure Cache for Redis の概要に関するページを参照してください。
[ネットワーク] タブ を 選択するか、[ 次へ: ネットワーク] を選択します。
[ネットワーク] タブで、キャッシュに使う接続方法を選びます。 セキュリティにはプライベート エンドポイント をお勧めします。 [プライベート エンドポイント] を選択した場合は、[プライベート エンドポイントの追加] を選択し、プライベート エンドポイントを作成します。
[ 詳細設定 ] タブを選択するか、[ 次へ: 詳細設定] を選択します。
[ 詳細設定 ] ウィンドウで、次のオプションを構成します。
- Microsoft Entra 認証またはアクセス キー認証を選択します。 Microsoft Entra 認証 は既定で有効になっています。
- TLS 以外のポートを 有効に するかどうかを選択します。
- Premium キャッシュの場合は、 可用性ゾーンを構成または無効にすることができます。 キャッシュの作成後に可用性ゾーンを無効にすることはできません。 Standard キャッシュの場合、可用性ゾーンは自動的に割り当てられます。 可用性ゾーンは Basic SKU では使用できません。
- Premium キャッシュの場合は、 レプリカ数、 クラスタリング と シャード数、 システム割り当てマネージド ID、 およびデータ永続化の設定を構成します。
次の図は、Standard SKU の [詳細設定 ] タブを示しています。
重要
可能であれば、マネージド ID と共に Microsoft Entra ID を使用して、キャッシュに対する要求を承認します。 Microsoft Entra ID とマネージド ID を使用した承認により、セキュリティが向上し、共有アクセス キーの承認よりも簡単に使用できます。 キャッシュでのマネージド ID の使用について詳しくは、キャッシュ認証への Microsoft Entra ID の使用に関する記事をご覧ください。
必要に応じて、[ タグ ] タブを選択するか、[ 次へ: タグ] を選択し、タグ名と値を入力してキャッシュ リソースを分類します。
[ 確認と作成] を選択し、検証に合格したら [ 作成] を選択します。
新しいキャッシュのデプロイには数分かかります。 デプロイの進行状況は、ポータルの Azure Cache for Redis ページで監視できます。 キャッシュの状態が [実行中] と表示されたら、キャッシュを使用する準備が整います。
キャッシュで Microsoft Entra ID 認証を使用する
Azure Managed Redis キャッシュでは、Microsoft Entra 認証が既定で有効になっています。
Azure portal 内で、Microsoft Entra のトークン ベース認証を使用するキャッシュを選択します。
リソース メニューで [認証] を選択します。
[メンバーの選択] を選択し、有効なユーザーの名前を入力します。 [保存] を選択した場合は、既定で入力したユーザーに [データ所有者アクセス ポリシー] が自動的に割り当てられます。 マネージド ID またはサービス プリンシパルを入力して、キャッシュ インスタンスに接続することもできます。
Azure CLI で Microsoft Entra ID を使用する方法については、ID に関するリファレンス ページを参照してください。
Microsoft Entra ID 認証を使用するためのライブラリをインストールする
Azure.StackExchange.Redis ライブラリには、Microsoft Entra ID を使用して Azure Redis サービスに接続するための Microsoft Entra ID 認証方法が含まれています。 これは、すべての Azure Cache for Redis、Azure Cache for Redis Enterprise、および Azure Managed Redis に適用されます。
Visual Studio でプロジェクトを開きます。
プロジェクトを右クリックし、[NuGet パッケージの管理...] を選択します
Microsoft.Azure.StackExchangeRedis
を検索します[インストール] ボタンをクリックしてインストールします
プロンプトで表示されたすべての内容を承諾して、インストールを完了します
Microsoft Entra ID を使用してキャッシュに接続する
ライブラリをコードの中に含めます
using Azure.Identity; using StackExchange.Redis
既定の Azure 資格情報を使用してクライアント接続を認証します。 これにより、コードがローカルで実行されている場合はサインインしたユーザーの資格情報を使用し、Azure 内で実行されている場合は (コードの変更なしで) Azure マネージド ID を使用できるようになります。
var configurationOptions = await ConfigurationOptions.Parse($"{_redisHostName}").ConfigureForAzureWithTokenCredentialAsync(new DefaultAzureCredential());
ConnectionMultiplexer _newConnection = await ConnectionMultiplexer.ConnectAsync(configurationOptions);
IDatabase Database = _newConnection.GetDatabase();
app.config ファイルを編集する
次の内容を追加して、app.config を編集します。
<appSettings> <add key="RedisHostName" value="<cache-hostname-with-portnumber>"/> </appSettings>
Azure portal の [リソース] メニューの [概要] に表示されるキャッシュ ホスト名で
<cache-hostname>
を置き換えます。たとえば、Azure Managed Redis または Enterprise レベルの場合は、my-redis.eastus.azure.net:10000 になります
ファイルを保存します。
詳細については、StackExchange.Redis と、GitHub リポジトリのコードを参照してください。
app.config ファイルを編集する
次の内容を追加して、app.config を編集します。
<appSettings> <add key="RedisHostName" value="<cache-hostname-with-portnumber>"/> </appSettings>
Azure portal の [リソース] メニューの [概要] に表示されるキャッシュ ホスト名で
<cache-hostname>
を置き換えます。たとえば、Azure Cache for Redis の場合は、my-redis.eastus.azure.net:6380 になります
ファイルを保存します。
詳細については、StackExchange.Redis と、GitHub リポジトリのコードを参照してください。
サンプルを実行する
Ctrl + F5 キーを押してコンソール アプリをビルドして実行し、.NET オブジェクトのシリアル化をテストします。
リソースをクリーンアップする
この記事で作成したリソースを引き続き使用する場合は、リソース グループを保持します。
それ以外の場合、リソースを使い終わったら、課金されないように、作成した Azure リソース グループを削除できます。
重要
リソース グループを削除すると、元に戻すことができません。 リソース グループを削除すると、そのリソース グループ内のすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 リソースを既存のリソース グループ内に作成し、そのリソース グループ内に保持したいリソースが含まれている場合は、リソース グループを削除するのではなく、各リソースを個別に削除できます。
リソース グループを削除するには
Azure portal にサインインし、 [リソース グループ] を選択します。
削除するリソース グループを選択します。
多数のリソース グループがある場合は、[任意のフィールドのフィルター...] ボックスを使用し、この記事用に作成したリソース グループの名前を入力します。 結果リストでリソース グループを選びます。
[リソース グループの削除] を選択します。
リソース グループの削除の確認を求めるメッセージが表示されます。 確認のためにリソース グループの名前を入力し、[削除] を選択します。
しばらくすると、リソース グループとそのリソースのすべてが削除されます。