【AWS・Azure】面白い!ロードバランサー
ロードバランサーって、すごくないですか?
アクセスをよしなにさばいていく、セルヒオ・ブスケツやシャビ・エルナンデスのような存在です。
サーバーのロードバランサーについて、自身の思考の整理も兼ねて書いてみたいと思います。
ロードバランサーとは
ロードバランサー(load balancer)は、weblio辞書によると、
つまり、来たアクセスを一旦ロードバランサーが管理し、適切なサーバーに振り分ける役割をしています。負荷分散装置とも呼ばれ、Webサーバーやキャッシュサーバーなどに対する外部ネットワークからのアクセス要求を管理し、同等の機能を持つ複数のサーバーにアクセスを転送する装置のことである。サーバーの負担超過によるシステムダウンや応答速度の遅延を防ぐ効果がある。ダウンしたサーバーへのリクエストを停止する役割りも持っている。
イメージはこのような交通整理の人だと思ってください。
クラウドのロードバランサー
主要クラウドベンダーであるAWSやMicrosoft Azureでもサービスとしてロードバランサーを提供しており、それぞれレイヤーごとに種類が異なります。AWSのロードバランサー
AWSのロードバランサーは、[Elastic Load Balancing](https://aws.amazon.com/jp/elasticloadbalancing/ "Elastic Load Balancing")と呼ばれており、更に3種類のロードバランサーが用意されています。- Application Load Balancer
- Network Load Balancer
- Classic Load Balancer
Application Load Balancer
いわゆるレイヤー7(アプリケーション層)のロードバランサーです。URLやHTTPヘッダーまでを判断しての負荷分散が可能です。このリクエストが来たらAのサーバーに振り分けて、こっちのリクエストが来たらBのサーバーに振り分けて。といった制御が可能な頭のいいやつです。
Network Load Balancer
いわゆるレイヤー4(トランスポート層)のロードバランサーです。TCP トラフィックの負荷分散が可能です。IPアドレスの制御が可能で、処理が速く、Application Load Balancerよりも利用料が安いのが特徴です。
Classic Load Balancer
EC2-Classic ネットワーク内に構築されたアプリケーションを対象としているもので、基本的にVPC(Virtual Private Cloud)を利用する場合は、上記の2つのいずれかを使うことがAWSで推奨されています。 参照:[https://aws.amazon.com/jp/elasticloadbalancing/features/#Details_for_Elastic_Load_Balancing_Products](https://aws.amazon.com/jp/elasticloadbalancing/features/#Details_for_Elastic_Load_Balancing_Products "https://aws.amazon.com/jp/elasticloadbalancing/features/#Details_for_Elastic_Load_Balancing_Products")
レイヤー
レイヤー4や7という言葉が出てきたので、この説明をします。 レイヤーとは、ITの基礎知識のところでよく出てくる、『[OSI参照モデル](https://ja.wikipedia.org/wiki/OSI%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB "OSI参照モデル")』のことです。 OSI参照モデルとは、Wikipediaを参照すると、OSI参照モデル(OSIさんしょうモデル、英: OSI reference model)は、コンピュータの持つべき通信機能を階層構造に分割したモデルである。国際標準化機構(ISO)によって策定された。 OSI基本参照モデル、OSIモデルなどとも呼ばれ、通信機能(通信プロトコル)を7つの階層に分けて定義している。
つまり国際標準化機構策定の国際基準の考え方のことです。
第7層. アプリケーション層 L7はここ
第6層. プレゼンテーション層
第5層. セッション層
第4層. トランスポート層 L4はここ
第3層. ネットワーク層
第2層. データリンク層
第1層. 物理層
Microsoft Azureのロードバランサー
Azureにも2種類のロードバランサーがあるようです。
- Application Gateway
- Azure Load Balancer
Application Gateway
Azureのレイヤー7(アプリケーション層)のロードバランサーです。TCP トラフィックの負荷分散が可能です。
URLやHTTPヘッダーまでを判断しての負荷分散が可能です。
Azure Load Balancer
Azureのレイヤー4(トランスポート層)のロードバランサーです。TCP トラフィックの負荷分散が可能です。
サーバー関連の話題はとっつきにくいものも多く、実際に目に見えて動きがわかるものでもないため、非常に理解するのが難しいと思います。
今回のロードバランサーもそうだと思いますが、今後もますます盛り上がってくるクラウドのAWSやAzure、GCP、IBM Cloudといったサービスの根本の部分を理解していくのは、少しでも生活や仕事の上で関わっている人であればキャッチアップは大事なことだと思いますので興味を持って自分で調べてみると面白いです!
私、穂苅智哉の情報は、以下のFacebookページTwitterアカウントを御覧ください!
※友達申請をいただける方は、お手数ですがメッセージを添えておねがいいたします。