皆さん、こんにちは! 好きな羊の種類はサフォーク、ITエンジニアのSkyfoxです!
今回は、新人さん向けにALBを教えるために作成した資料を共有します。
この記事を読んで、ALBのイメージがつくようになれば嬉しいです!
この記事について
対象者
- AWS ALBについて、概要を知りたい方
本記事のゴール
- ロードバランサーの意味がわかる
- ALBの概要・用途を理解する
ALB
ALBとは、Application Load Balancerの略で、Webサービスにおける負荷分散させるロードバランシングサービスのことです。
そもそもロードバランサーとは
ロードバランサーとは、Load(負荷)+Balancer(バランスを保つもの)の通り、負荷を軽くするために処理を分散するもののことです。
わかりやすいよう、「あなたがWebページを見る」例で見てみましょう。
まずは、シンプルにサーバーが1台だった時の流れは以下の通りです。
- 矢印で起きている動き
- ①ブラウザで見たいWebページをクリック
- ②Webサーバーに「あのWebページをちょうだい」とリクエスト
- ③Webページをブラウザに渡す
- ④見たかったWebページが表示
上の例は、1人だけしか描いていませんが、実際は1つのWebページに多くの人がアクセスします。
アクセスが多すぎると、ブラウザからWebサーバーの通信(②と③)がたくさん発生します。 すると、Webサーバーが忙しくなり、ブラウザはWebページを受け取るのに、順番待ちが出てしまいます。 その結果、ブラウザのWebページの表示が遅くなってしまいます。
ですが、ここでWebサーバーの忙しさを解消するために、Webサーバーを複数台用意したとしても、忙しさが偏ってしまう可能性があります。
このWebサーバーの忙しさを解消するのが、「ロードバランサー」です!
ブラウザとWebサーバーの間に、案内人としてロードバランサーを入れることで、Webサーバーの忙しさを減らし、均一にすることができるのです。
ロードバランサーを入れた流れは、下の図のようになります。
サーバーにとってのLoad(負荷)
サーバーにアクセスがあると、サーバーはその機器に搭載されているCPUやメモリーなどのリソースを使用し、処理をします。その結果が利用者のパソコンに送られて、指示内容がブラウザに表示されます。
負荷が高いとは、上の例でいうと、アクセスが多すぎ、ブラウザのリクエストを受け取りWebページを渡すまでの処理が遅くなっていることです。
つまり、サーバーの処理数が増えすぎ、処理が滞っている状態です。
ALBとは
では本題に戻ると、ALBとはAmazonが提供している、Webサービスにおける負荷分散させるロードバランシングサービスのことです。
詳しく書くと、HTTPやHTTPSなどの特定のプロトコルに基づいて通信を振り分けることができます。
さらに、ただ適当に振り分けるだけではなく、来たアクセスに合わせ、最適なサーバーを選んでリクエストを送ることができます。
例えば、画像が多いページは処理が早いサーバーに、データベースを使用するものはまた別のサーバーに、ALBは振り分けてくれます。
ALBのメリット
ALBのメリットとしては以下があります。
-
Webサイトのスピードアップ
サーバーの負荷分散ができるので、Webページの表示が早くなり、ユーザーが快適にWebサイトを使用することができます。 -
信頼性
複数のサーバーを使用し、Webサイトを運営するので、もし1台のサーバーが故障しても、他のサーバーで継続することができます。
それにより、Webサイトが突然停止し、ユーザーが困ることはありません。 -
柔軟なトラフィック管理
特定のURLもアクセスした時、特定のサーバーに接続することができるので、細かいコントロールをすることができます。 -
簡単なセキュリティ強化
ALBはデータのやり取りを暗号化することができます。そのため、個人情報や機密データを安全に守ることができます。また他のAWSサービスと連携し、悪意のある攻撃からWebサイトを守ることができます。 -
スケーラビリティ
Webサイトへのアクセスが増えすぎたときに、ALBが自動的にアクセスを分散させるので、Webサイトが遅くならずに済みます。
使用イラスト
- イラスト「Loose Drawing」