Azure Cache for Redis の geo レプリケーションの構成方法How to configure Geo-replication for Azure Cache for Redis

geo レプリケーションには、レベルが Premium である Azure Cache for Redis の 2 つのインスタンスをリンクするメカニズムが用意されています。Geo-replication provides a mechanism for linking two Premium tier Azure Cache for Redis instances. 1 つのキャッシュはプライマリ リンク キャッシュとして、もう一方のキャッシュはセカンダリ リンク キャッシュとして選択されます。One cache is chosen as the primary linked cache, and the other as the secondary linked cache. セカンダリ リンク キャッシュは読み取り専用になり、プライマリ キャッシュに書き込まれたデータがセカンダリ リンク キャッシュにレプリケートされます。The secondary linked cache becomes read-only, and data written to the primary cache is replicated to the secondary linked cache. この機能は、Azure リージョン間でキャッシュをレプリケートする際に使用できます。This functionality can be used to replicate a cache across Azure regions. この記事では、Premium レベルの Azure Cache for Redis インスタンスの geo レプリケーションを構成するためのガイドを提供します。This article provides a guide to configuring Geo-replication for your Premium tier Azure Cache for Redis instances.

geo レプリケーションの前提条件Geo-replication prerequisites

2 つのキャッシュの間に geo レプリケーションを構成するには、次の前提条件を満たす必要があります。To configure Geo-replication between two caches, the following prerequisites must be met:

  • 両方のキャッシュが Premium レベルのキャッシュである。Both caches are Premium tier caches.
  • 両方のキャッシュが同じ Azure サブスクリプションに存在する。Both caches are in the same Azure subscription.
  • セカンダリ リンク キャッシュがプライマリ リンク キャッシュと同じキャッシュ サイズであるか、またはそれより大きいキャッシュ サイズである。The secondary linked cache is either the same cache size or a larger cache size than the primary linked cache.
  • 両方のキャッシュが作成され、実行状態になっている。Both caches are created and in a running state.

geo レプリケーションでは一部の機能がサポートされていません。Some features aren't supported with geo-replication:

  • 永続化は geo レプリケーションではサポートされていません。Persistence isn't supported with geo-replication.
  • クラスタリングは、両方のキャッシュでクラスタリングが有効になっており、かつ同じ数のシャードが存在する場合にサポートされます。Clustering is supported if both caches have clustering enabled and have the same number of shards.
  • 同じ VNET 内のキャッシュはサポートされています。Caches in the same VNET are supported.
  • 異なる VNET 内のキャッシュは、注意事項付きでサポートされています。Caches in different VNETs are supported with caveats. 詳細については、「VNET 内の自分のキャッシュで geo レプリケーションを使用することはできますか」を参照してください。See Can I use Geo-replication with my caches in a VNET? for more information.

geo レプリケーションを構成した後、次の制限が、リンク キャッシュ ペアに適用されます。After Geo-replication is configured, the following restrictions apply to your linked cache pair:

  • セカンダリ リンク キャッシュは読み取り専用です。読み取ることはできますが、データを書き込むことはできません。The secondary linked cache is read-only; you can read from it, but you can't write any data to it.
  • リンクが追加される前にセカンダリ リンク キャッシュにあったデータはすべて削除されます。Any data that was in the secondary linked cache before the link was added is removed. ただし、geo レプリケーションが後で削除された場合、レプリケートされたデータはセカンダリ リンク キャッシュに残ります。If the Geo-replication is later removed however, the replicated data remains in the secondary linked cache.
  • キャッシュがリンクされている間は、どちらのキャッシュもスケーリングできません。You can't scale either cache while the caches are linked.
  • キャッシュでクラスタリングが有効になっている場合は、シャードの数を変更できません。You can't change the number of shards if the cache has clustering enabled.
  • どちらのキャッシュでも永続化を有効にすることはできません。You can't enable persistence on either cache.
  • どちらのキャッシュからもエクスポートできます。You can Export from either cache.
  • セカンダリ リンク キャッシュにはインポートできません。You can't Import into the secondary linked cache.
  • キャッシュをリンク解除するまでは、リンクされたキャッシュ、またはそれらを含むリソース グループのどちらも削除できません。You can't delete either linked cache, or the resource group that contains them, until you unlink the caches. 詳しくは、「リンクされたキャッシュを削除しようとすると、操作が失敗するのはどうしてですか」をご覧ください。For more information, see Why did the operation fail when I tried to delete my linked cache?
  • キャッシュが異なるリージョンに存在する場合、ネットワーク送信コストはリージョン間で移動されたデータに適用されます。If the caches are in different regions, network egress costs apply to the data moved across regions. 詳しくは、「Azure リージョン間でデータをレプリケートするコストはどれくらいですか」をご覧ください。For more information, see How much does it cost to replicate my data across Azure regions?
  • プライマリ リンク キャッシュとセカンダリ リンク キャッシュの間で自動フェールオーバーは発生しません。Automatic failover doesn't occur between the primary and secondary linked cache. 詳細およびクライアント アプリケーションをフェールオーバーする方法については、「セカンダリ リンク キャッシュへのフェールオーバーはどのように動作しますか」を参照してください。For more information and information on how to failover a client application, see How does failing over to the secondary linked cache work?
  1. geo レプリケーションのために 2 つのキャッシュをリンクするには、まずプライマリ リンク キャッシュにするキャッシュのリソース メニューの [geo レプリケーション] をクリックします。To link two caches together for geo-replication, fist click Geo-replication from the Resource menu of the cache that you intend to be the primary linked cache. 次に、 [geo レプリケーション] ブレードの [キャッシュ レプリケーション リンクの追加] をクリックします。Next, click Add cache replication link from the Geo-replication blade.

    リンクの追加

  2. [互換性のあるキャッシュ] の一覧で目的のセカンダリ キャッシュの名前をクリックします。Click the name of your intended secondary cache from the Compatible caches list. そのセカンダリ キャッシュが一覧に表示されていない場合は、セカンダリ キャッシュの geo レプリケーションの前提条件が満たされていることを確認します。If your secondary cache isn't displayed in the list, verify that the Geo-replication prerequisites for the secondary cache are met. キャッシュをリージョンでフィルター処理するには、マップ内のリージョンをクリックして、 [互換性のあるキャッシュ] の一覧にあるキャッシュのみを表示します。To filter the caches by region, click the region in the map to display only those caches in the Compatible caches list.

    geo レプリケーションの互換性のあるキャッシュ

    また、コンテキスト メニューを使用してリンク プロセスを開始したり、セカンダリ キャッシュに関する詳細を表示したりすることもできます。You can also start the linking process or view details about the secondary cache by using the context menu.

    geo レプリケーションのコンテキスト メニュー

  3. [リンク] をクリックして、2 つのキャッシュをリンクし、レプリケーション プロセスを開始します。Click Link to link the two caches together and begin the replication process.

    キャッシュのリンク

  4. [geo レプリケーション] ブレードで、レプリケーション プロセスの進行状況を表示できます。You can view the progress of the replication process on the Geo-replication blade.

    リンクの状態

    プライマリ キャッシュとセカンダリ キャッシュの両方の [概要] ブレードで、リンクの状態を表示することもできます。You can also view the linking status on the Overview blade for both the primary and secondary caches.

    キャッシュの状態

    レプリケーション プロセスが完了すると、 [リンクの状態] が「成功」に変わります。Once the replication process is complete, the Link status changes to Succeeded.

    キャッシュの状態

    プライマリ リンク キャッシュは、リンク プロセス中も引き続き使用できます。The primary linked cache remains available for use during the linking process. セカンダリ リンク キャッシュは、リンク プロセスが完了するまで使用できません。The secondary linked cache isn't available until the linking process completes.

  1. 2 つのキャッシュ間のリンクを削除し、geo レプリケーションを停止するには、 [geo レプリケーション] ブレードで [Unlink caches](キャッシュのリンク解除) をクリックします。To remove the link between two caches and stop Geo-replication, click Unlink caches from the Geo-replication blade.

    [Unlink caches](キャッシュのリンク解除)

    リンク解除プロセスが完了すると、セカンダリ キャッシュが読み取りと書き込みの両方に対して使用可能になります。When the unlinking process completes, the secondary cache is available for both reads and writes.

注意

geo レプリケーション リンクが削除された場合も、プライマリ リンク キャッシュからレプリケートされたデータはセカンダリ キャッシュに残ります。When the Geo-replication link is removed, the replicated data from the primary linked cache remains in the secondary cache.

geo レプリケーションに関する FAQGeo-replication FAQ

Standard または Basic レベル キャッシュで geo レプリケーションを使用することはできますかCan I use Geo-replication with a Standard or Basic tier cache?

geo レプリケーションは、Premium レベルのキャッシュにのみ使用できます。No, Geo-replication is only available for Premium tier caches.

リンクまたはリンク解除のプロセス中にキャッシュを使用できますかIs my cache available for use during the linking or unlinking process?

  • リンク時、プライマリ リンク キャッシュは、リンク プロセスの完了中も引き続き使用できます。When linking, the primary linked cache remains available while the linking process completes.
  • リンク時、セカンダリ リンク キャッシュは、リンク プロセスが完了するまで使用できません。When linking, the secondary linked cache isn't available until the linking process completes.
  • リンク解除時、リンク解除プロセスの完了中に両方のキャッシュを引き続き使用できます。When unlinking, both caches remain available while the unlinking process completes.

いいえ。2 つのキャッシュしかリンクできません。No, you can only link two caches together.

いいえ、両方のキャッシュが同じ Azure サブスクリプションにある必要があります。No, both caches must be in the same Azure subscription.

セカンダリ リンク キャッシュがプライマリ リンク キャッシュより大きい場合は可能です。Yes, as long as the secondary linked cache is larger than the primary linked cache.

クラスタリングを有効にして geo レプリケーションを使用することはできますかCan I use Geo-replication with clustering enabled?

両方のキャッシュのシャード数が同じ場合は可能です。Yes, as long as both caches have the same number of shards.

VNET 内の自分のキャッシュで geo レプリケーションを使用することはできますかCan I use Geo-replication with my caches in a VNET?

はい。VNET 内のキャッシュの geo レプリケーションは注意事項付きでサポートされています。Yes, Geo-replication of caches in VNETs is supported with caveats:

  • 同じ VNET 内のキャッシュ間の geo レプリケーションがサポートされています。Geo-replication between caches in the same VNET is supported.
  • 異なる VNET 内のキャッシュ間の geo レプリケーションもサポートされています。Geo-replication between caches in different VNETs is also supported.
    • VNET が同じリージョンに存在する場合は、VNET ピアリングまたは VPN Gateway VNET 間接続を使用してそれらを接続できます。If the VNETs are in the same region, you can connect them using VNET peering or a VPN Gateway VNET-to-VNET connection.
    • VNET が異なるリージョンに存在する場合は、Basic 内部ロード バランサーの制約のため、VNET ピアリングを使用した geo レプリケーションはサポートされません。If the VNETs are in different regions, geo-replication using VNET peering isn't supported because of a constraint with Basic internal load balancers. VNET ピアリングの制約の詳細については、Virtual Network - ピアリングの要件と制約に関するページを参照してください。For more information about VNET peering constraints, see Virtual Network - Peering - Requirements and constraints. 推奨されるソリューションは、VPN Gateway VNET 間接続の使用です。The recommended solution is to use a VPN Gateway VNET-to-VNET connection.

この Azure テンプレートを使用すると、2 つの geo レプリケートされたキャッシュを VPN Gateway VNET 間接続で接続された VNET にすばやくデプロイできます。Using this Azure template, you can quickly deploy two geo-replicated caches into a VNET connected with a VPN Gateway VNET-to-VNET connection.

Redis の geo レプリケーションのレプリケーション スケジュールは何ですかWhat is the replication schedule for Redis geo-replication?

レプリケーションは継続的かつ非同期であるため、特定のスケジュールでは実行されません。Replication is continuous and asynchronous and doesn't happen on a specific schedule. プライマリに対して実行された書き込みはすべて、セカンダリに瞬時にかつ非同期的にレプリケートされます。All the writes done to the primary are instantaneously and asynchronously replicated on the secondary.

geo レプリケーションのレプリケーションにはどのくらいの時間が必要ですかHow long does geo-replication replication take?

レプリケーションは増分的、非同期、および継続的であるため、かかる時間はリージョン間の待機時間とそれほど変わりません。Replication is incremental, asynchronous, and continuous and the time taken isn't much different from the latency across regions. 特定の状況では、セカンダリ キャッシュがプライマリからのデータの完全な同期を実行することが必要になる場合があります。Under certain circumstances, the secondary cache may be required to do a full sync of the data from the primary. この場合のレプリケーション時間は、プライマリ キャッシュへの負荷、使用可能なネットワーク帯域幅、リージョン間の待機時間などのいくつかの要因によって異なります。The replication time in this case is dependent on number of factors like: load on the primary cache, available network bandwidth, and inter-region latency. 53 GB の完全な geo レプリケートされたペアのレプリケーション時間は 5 ~ 10 分であることがわかりました。We have found replication time for a full 53-GB geo-replicated pair can be anywhere between 5 to 10 minutes.

レプリケーションの回復ポイントは保証されますかIs the replication recovery point guaranteed?

geo レプリケーション モードのキャッシュの場合、永続化は無効になっています。For caches in a geo-replicated mode, persistence is disabled. geo レプリケートされたペアがリンク解除された場合 (顧客始動のフェールオーバーなど)、セカンダリ リンク キャッシュは同期されたデータをその時点まで保持します。If a geo-replicated pair is unlinked, such as a customer-initiated failover, the secondary linked cache keeps its synced data up to that point of time. このような状況では、復旧ポイントは保証されません。No recovery point is guaranteed in such situations.

復旧ポイントを取得するには、どちらかのキャッシュからエクスポートします。To obtain a recovery point, Export from either cache. 後で、プライマリ リンク キャッシュにインポートできます。You can later Import into the primary linked cache.

PowerShell または Azure CLI を使って geo レプリケーションを管理することはできますかCan I use PowerShell or Azure CLI to manage Geo-replication?

はい。geo レプリケーションは、Azure Portal、PowerShell、または Azure CLI を使用して管理できます。Yes, geo-replication can be managed using the Azure portal, PowerShell, or Azure CLI. 詳細については、PowerShell のドキュメントまたは Azure CLI のドキュメントを参照してください。For more information, see the PowerShell docs or Azure CLI docs.

Azure リージョン間でデータをレプリケートするコストはどれくらいですかHow much does it cost to replicate my data across Azure regions?

geo レプリケーションを使用している場合、プライマリ リンク キャッシュからのデータは、セカンダリ リンク キャッシュにレプリケートされます。When using Geo-replication, data from the primary linked cache is replicated to the secondary linked cache. 2 つのリンクされたキャッシュが同じリージョンに存在する場合、データ転送の料金は必要ありません。There's no charge for the data transfer if the two linked caches are in the same region. 2 つのリンクされたキャッシュが異なるリージョンに存在する場合、データ転送の料金は、どちらかのリージョン内を移動するデータのネットワーク送信コストです。If the two linked caches are in different regions, the data transfer charge is the network egress cost of data moving across either region. 詳しくは、「帯域幅の料金詳細」をご覧ください。For more information, see Bandwidth Pricing Details.

リンクされたキャッシュを削除しようとすると、操作が失敗するのはどうしてですかWhy did the operation fail when I tried to delete my linked cache?

geo レプリケートされたキャッシュとそのリソース グループは、geo レプリケーション リンクを削除するまでは削除できません。Geo-replicated caches and their resource groups can't be deleted while linked until you remove the geo-replication link. リンクされたキャッシュの一方または両方を含むリソース グループを削除しようとすると、リソース グループ内の他のリソースは削除されますが、リソース グループは deleting 状態のままとなり、リソース グループ内にあるリンクされたキャッシュは running 状態のままとなります。If you attempt to delete the resource group that contains one or both of the linked caches, the other resources in the resource group are deleted, but the resource group stays in the deleting state and any linked caches in the resource group remain in the running state. リソース グループとその中のリンクされたキャッシュを完全に削除するには、「geo レプリケーション リンクの削除」の説明に従ってキャッシュをリンク解除します。To completely delete the resource group and the linked caches within it, unlink the caches as described in Remove a Geo-replication link.

セカンダリ リンク キャッシュにはどのリージョンを使う必要がありますかWhat region should I use for my secondary linked cache?

一般に、キャッシュは、それにアクセスするアプリケーションと同じ Azure リージョンに配置することをお勧めします。In general, it's recommended for your cache to exist in the same Azure region as the application that accesses it. プライマリおよびフォールバック リージョンが個別に存在するアプリケーションの場合は、プライマリおよびセカンダリ キャッシュをそれらの同じリージョンに配置することをお勧めします。For applications with separate primary and fallback regions, it's recommended your primary and secondary caches exist in those same regions. ペアになっているリージョンについて詳しくは、ベスト プラクティス - ペアになっている Azure リージョンに関する記事をご覧ください。For more information about paired regions, see Best Practices – Azure Paired regions.

セカンダリ リンク キャッシュへのフェールオーバーはどのように動作しますかHow does failing over to the secondary linked cache work?

geo レプリケートされたキャッシュでは、Azure リージョン間の自動フェールオーバーはサポートされていません。Automatic failover across Azure regions isn't supported for geo-replicated caches. ディザスター リカバリー シナリオでは、顧客がアプリケーション スタック全体をバックアップ リージョンで調整された方法で復旧する必要があります。In a disaster-recovery scenario, customers should bring up the entire application stack in a coordinated manner in their backup region. バックアップに切り替えるタイミングを個々のアプリケーション コンポーネントに個別に判定させるようにすると、パフォーマンスに悪影響を与える可能性があります。Letting individual application components decide when to switch to their backups on their own can negatively impact performance. Redis の主な利点の 1 つは、それが非常に待機時間の短いストアであることです。One of the key benefits of Redis is that it's a very low-latency store. 顧客の主要なアプリケーションがそのキャッシュとは別のリージョンに存在する場合は、追加されるラウンド トリップ時間がパフォーマンスに大きな影響を与えます。If the customer's main application is in a different region than its cache, the added round-trip time would have a noticeable impact on performance. このため、一時的な可用性の問題から、自動的なフェールオーバーを回避しています。For this reason, we avoid failing over automatically because of transient availability issues.

顧客始動のフェールオーバーを開始するには、まずキャッシュをリンク解除します。To start a customer-initiated failover, first unlink the caches. 次に、(以前にリンクされた) セカンダリ キャッシュの接続エンドポイントを使用するように Redis クライアントを変更します。Then, change your Redis client to use the connection endpoint of the (formerly linked) secondary cache. 2 つのキャッシュがリンク解除されると、セカンダリ キャッシュが再び通常の読み取り/書き込みキャッシュになり、Redis クライアントから直接要求を受け付けます。When the two caches are unlinked, the secondary cache becomes a regular read-write cache again and accepts requests directly from Redis clients.

次の手順Next steps

Azure Cache for Redis Premium レベルの詳細を確認します。Learn more about the Azure Cache for Redis Premium tier.