あじゅらーの成長日記

にわかITインフラエンジニアがMicrosoft AzureなどIT関係全般を綴ります。

【Azure】Sorryサーバを構成する

オンプレミス環境でWebサーバを構築している際にLoad Balancerを使用して負荷分散することは一般的かと思います。
その際、LBではWebサーバがダウンしている場合や一定のセッション数以上になった場合に振り分け先をSorryサーバにするということはよくあるケースです。
そのような構成をオンプレミス環境からAzureに持って行く際に、Sorryサーバに振り分けってどうやるの?ということを調べたのでまとめておきたいと思います。


オンプレミス環境での構成

Webサーバが3台あり全てのサーバの異常時にSorryサーバに振り分けを行います。 オンプレミス環境では下記のような構成です。

f:id:hayato320:20161030224341j:plain



Azureでの構成

単純にAzure Load BalancerでWebサーバがダウン時にSorryサーバに振り分けばいいじゃんと思うかもしれないですが、Azure Load Balancerにそのような機能はありません。
なので他のサービスと組み合わせる必要があります。
Azureには負荷分散の機能として下記のサービスがあります。

  1. Traffic Manager
  2. Azure Load Balancer
  3. Application Gateway

2のLoad Balancerと3のApplication GatewayにはWebサーバ異常時にSorryサーバに振り分けるような機能はありません。
一方でTraffic Managerには優先度に応じて振り分け先を順に評価して行く機能があります。
この機能を使用してWebサーバが異常時にSorryサーバへの振り分けを実現します。

ただし気をつけなければならないのが、Traffic ManagerはDNSレベルでの動作なので、Cookieを含めたクライアントとサーバ間のHTTPトラフィックは把握されません。 セッションパーシステンスが必要ならやはりLBを使用する必要があります。

以上から、以下のような構成で実現するのが良さそうです。

f:id:hayato320:20161030224346j:plain

※Azure Load BalancerはApplication Gatewayに置き換え可能です。



まとめ

AzureでSorryサーバを構成する場合、Traffic ManagerとAzure Load Balancer(もしくはApplication Gateway)を使用するのが良さそうです。
上記の方法以外にもWebサーバの前にnginxを使用したProxyサーバを立ててSorryページを表示することなどもできるので、何がやりたいかによって実現する方法は変わるかと思います。
AzureでSorryページを表示する一例として捉えていただければと思います。