専用ロールの使用は、実行するロールの数と、Web ロールのメモリ使用量によってスケーリングが決定されるかどうかによって異なります。たとえば、Web ロールが常にメモリ使用量を押し上げており、スケールアウトのトリガーが CPU ではなくメモリである場合は、キャッシュに専用のロールを使用することを検討してください。これにより、Web ロールは負荷をより長く処理できるようになります。Web ロールが CPU を集中的に使用する場合は、各ロールのメモリをキャッシュ専用にすることをお勧めします。また、専用のロールで実行している場合、負荷と可用性を処理するために複数のロールが必要であることを考慮する必要があります。そのため、ビジーでない時間帯でも、キャッシュを実行するロールが少なくとも 3 つあることになります (ただし、Web ロールはおそらくそれより少なくなります)。 .
同じ場所にあるロール キャッシングに関する考慮事項の 1 つは、スティッキー セッションがある場合、アイテムが同じマシン上にあるため、待機時間が短くなるということです。残念ながら、Azure ロード バランサーはラウンド ロビンであり、スティッキーではありません。そのため、セッションが同じマシンに戻る可能性は低くなります (5 つのロールで 1/5 の時間)。これは、ほとんどの場合、キャッシュ アイテムがクラスター内の別のロールからフェッチされることを意味するため、同じ場所に配置された待機時間の利点が失われます。
キャッシュは分散され、メモリ内にあります-私が認識しているブロブストレージはありません(「クラスターのランタイム状態」を除いて-それが何であれ。キャッシュにロードされたアイテムは、そのマシンからクラスター上の他のマシンで利用できるようになりますit is stored (in memory) on (a read from machine A to machine A does not also store it on machine A - see below). キャッシュされたアイテムは常にメモリ内のみにあり、キャッシュ サイズは使用可能なメモリによって制限されます。
高可用性オプションは、アイテムを (ストレージではなく) 別のマシンにコピーするため、1 つのマシンに障害が発生した場合でも、どこかにコピーが残ります。アイテムは 2 つの異なる場所でメモリを使用するため、高可用性もより多くのメモリを使用します。失敗する可能性は、e コマース アプリにとって十分に低い可能性があります。アイテムが (失敗または期限切れによって) キャッシュされていない場合、永続化されたデータから再構築される可能性があります。たとえば、バスケットをキャッシュに保持し、ストレージに永続化しない場合、ロールがリサイクルされてもバスケットが失われることは望ましくありません。その場合、高可用性が最適なオプションになる可能性があります。