Overview of load-balancing options in Azure 翻訳してみた

##はじめに
今回は、Azure Documentation に 2019年8月23日に投稿された Overview of load-balancing options in Azure の記事を翻訳し、まとめてみたので紹介したいと思います。詳しい内容については、本記事を参照ください。

■本記事リンク
[Overview of load-balancing options in Azure](https://docs.microsoft.com/en-us/azure/architecture/guide/technology-choices/load-balancing-overview?fbclid=IwAR3HPP0ZdAi75qzviUGBq5oF7pZbxyEtTPGLGGyIJNUsdgpzbbo7bWoJduY)

##Overview of load-balancing options in Azure
「load balancing」は、複数のコンピュータリソースにまたがったワークロードの配分、を意味しています。Load balancing はリソースの使用最適化、スループットの最大化、レスポンス時間の最小化、そしてリソースの過負荷を無くすことを目的としています。冗長化されたコンピュータリソースとワークロードを共有することで、可用性を高めることができます。

##Overview
Azure load balancing service は、2つの次元に大きく分けることができます。

- Global/Regional
- HTTP(S)/Non-HTTP(S)

それぞれの特徴について、見ていきましょう。
###Global versus regional

- Global

Global load balancing services は、トラフィックを地域のバックエンド、クラウド、あるいはハイブリッドオンプレミスサービスにまたがって分散します。これらのサービスは、最寄りの可用性バックエンドに、ルートユーザのトラフィックを送信します。また、可用性とパフォーマンスを最大限高めるため、サービスのパフォーマンスや信頼性の変化に反応します。そのため、このサービスはアプリケーションスタンプとエンドポイント間をロードバランスを行うシステム、または、異なる地理や地域にまたがるスケールユニットと捉えることができます。

- Regional

Regional load balancing services は、トラフィックを VM 内に広がる仮想ネットワーク、またはリージョン内のゾーンとゾーン冗長サービスエンドポイントに分散します。そのため、このサービスは仮想ネットワーク内のリージョンにある VM、コンテナ、あるいはクラスタ間のロードバランスを行うシステムと捉えることができます。

###HTTP(S) versus non-HTTP(S)

- HTTP(S)

HTTP(S) load-balancing services は、HTTP(S)のトラフィックのみを許可するレイヤ7 のロードバランサです。Web アプリケーションや他の HTTP(S)エンドポイントを対象としております。また、SSL オフロード、web アプリケーションファイアウォール、パスベースのロードバランス、そしてセッションアフィニティといった特徴を有しております。

- Non-HTTP/S

Non-HTTP/S load-balancing services は、 HTTP(S)ではないトラフィックの対応が可能であり、web 以外のワークロードでの利用を推奨します。


下記の表に、Azure load balancing service の特徴をまとめました。

|サービス名|Global/Regional|推奨トラフィック|
|:---:|:---:|:---:|
|Azure Front Door|Global|HTTP(S)|
|Traffic Manager|Global|non-HTTP(S)|
|Application Gateway|Regional|HTTP(S)|
|Azure Load Balancer|Regional|non-HTTP(S)|


##Azure load balancing services
Azure で利用可能な主な load-balancing services です。

- [Front Door](https://azure.microsoft.com/ja-jp/services/frontdoor/)
グローバルロードバランシングと、web アプリケーションのサイトアクセラレーションサービスを提供するアプリケーションデリバリネットワークです。SSL オフロード、パスベースルーティング、高速フェイルオーバ、etc、などのアプリケーションにレイヤ7の機能を提供することで、パフォーマンスと可用性を向上させます。

- [Traffic Manager](https://azure.microsoft.com/ja-jp/services/traffic-manager/)
DNS ベースのトラフィックロードバランサです。高可用性とレスポンスを維持しつつ、世界中の Azure リージョンにまたがってトラフィックを最適に分散します。Traffic Manager は DNS ベースの LB サービスのため、ドメインレベルでのロードバランシングしか行いません。そういったことから、DNS キャッシングと DNS システムが DNS TTL を尊重しないという共通課題のため、Traffic Manager は Front Door ほど素早くフェイルオーバができません。

- [Application Gateway](https://azure.microsoft.com/ja-jp/services/application-gateway/)
Application Gateway は、豊富なレイヤ7ロードバランシング機能を提供することで、アプリケーションデリバリコントローラ（ADC)を与えてくれるサービスです。ゲートウェイに対して CPU 集約的 SSL termination をオフロードすることによる Web ファーム生産の最適化に使用します。
 
- [Azure Load Balancer](https://azure.microsoft.com/ja-jp/services/load-balancer/)
Azure load Balacer は Azure SDN スタックにとって欠かせない一部であり、全ての UDP と TCP プロトコルに高いパフォーマンスと低レイテンシのレイヤ4ロードバランシングサービスを提供します。


##Decision tree for load balancing in Azure
ロードバランサの使用を考える際、以下の点について考える必要があります。

- トラフィックは何を選ぶか？
- Global か、Regional か？
- 可用性は？
- 費用は？
- サービスの特徴と制限は？

ロードバランシングの利用を考える歳は、下記のフローチャートを参考にしてどのサービスを利用するか検討して頂ければと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/92de294f-7e78-6bb6-3b4c-8ba501f72261.png)

##おわりに
Overview of load-balancing options in Azure の記事の紹介は以上です。ロードバランサにも様々なサービスが存在するので、必要なサービスや特徴、利用環境に合わせた最適なサービス選びの参考にどうぞ。