ALBとは?
ALB(Application Load Balancer)とは、Amazon社が提供しているクラウドサービス「AWS」の一つで、Webサービスにおける負荷を分散させるロードバランシングサービスです。
AWS(Amazon Web Service)には、サーバへの負荷(load)を軽減させるために、外部から受けたリクエストを複数のサーバに振り分けることで負荷を分散させるロードバランサーというサービスがあります。このサービスは ELB(Elastic Load Balancing)と呼ばれ、さらに 4種類に分けられ、その一つが ALB です。
Webサービスにおいて、アクセスが集中するとサーバの処理能力が間に合わず、Webサービスでエラーが発生するケースがあります。こういった場合にロードバランサーであれば、アクセス集中によるサーバの負荷を分散できるため、Webサービスの安定稼働や高可用性が実現できます。
ロードバランサーとは?
ロードバランサーとは、サーバやネットワークに対する負荷(ロード)を分散(バランス)する技術を指します。
Webサービスが発展したことで、扱うトラフィック量が増え、単一サーバですべての処理を行うのが難しくなりました。こういった場合の対策としてロードバランサーが有効です。
ロードバランサーの機能
ロードバランサーの主な機能は次の2つです。
負荷分散
Webページにおいてリクエストに対してロードバランサーが負荷を複数のサーバに振り分けます。単一のサーバに負荷が集中するのを防げるので、Webページのパフォーマンス(レスポンス)が向上し、リクエスト量が増えてもダウンタイムが減らせます。
ヘルスチェック
ロードバランサーはサーバの稼働状況を監視することもできるので、いずれかのサーバがダウンしたり、パフォーマンスが低下した場合に、そのサーバへのリクエストを別の正常に作動するサーバに振り分けます。
ELBとは?
AWS が提供するサービスである ELB は、アプリケーションにかかっている負荷や CPU の稼働状況をリアルタイムで監視できるロードバランサーです。これにより、システムの処理速度や通信速度といった問題の解消やアクセスの自動分散が可能になります。万が一、サーバがダウンしてしまった場合でも、該当のサーバへのアクセスを停止し、他のサーバに遷移させることも可能です。また、ヘルスチェック機能もあるため、ロードバランサー内の各サービスの状態も監視できます。
ALBとELBの違いは?
ELBは、2009年にリリースされました。今でこそ、ロードバランサーには 4種類ありますが、当時のロードバランシングサービスは ELB の 1種類のみであったため、AWSのロードバランサーといえば「ELB」という認識が一般的でした。その後、システムのニーズが多様化していったことに伴って、それぞれのニーズに合わせたサービスが誕生していきました。まず、2016年にWebサービスにおける負荷を分散する「ALB(Application Load Balancer)」が誕生し、そのすぐ後の2017年に高いパフォーマンスを必要とする環境の負荷を分散する「NLB(Network Load Balancer)」が生まれました。こうしてロードバランサーが細分化されたタイミングで従来の「ELB」は、「CLB(Classic Load Balancer)」に名称を変更しました。そして、2021年には、仮想アプライアンスをクラウド上に展開、スケーリング、管理できる「GLB(Gateway Load Balancer)」が新たに誕生しました。
このような過程を経て AWS のロードバランサーは4種になり、構築するシステムに適したサービスを選択できるようになっています。ちなみに、現時点において AWS は、ALB や NLB の利用を推奨しています。
ロードバランシングの目的は?
ロードバランシングの目的は、なんといってもやはり負荷分散です。新商品の発売や関心度の高いニュースがあると、該当の Webサイトへのアクセスが集中してしまうことがよくあります。こういったアクセスの集中にサーバの処理能力が追い付かず、サーバの処理速度の低下や、場合によってはサーバがダウンしてしまいます。こういった事態を避けるために、サーバの数を増やして対応することもできますが、サーバ自体の処理能力をより有効に活用するには、アクセスの集中による負荷を分散させる必要があります。これをロードラバンシングといい、それを行うのがロードバランサーです。
ELB は、ロードバランサーの機能をクラウド上で利用できるようにしたもので、効率よく負荷を分散させるために、サーバ上で動作しているアプリケーションの稼働状況を常時監視しています。そして、あるサーバの処理能力が限界に近づいたら、ほかのサーバに負荷を分散させます。
ALBの特徴は?
レイヤー7(アプリケーション層)で機能
ALB は HTTP や HTTPS のプロトコルのレイヤー7(アプリケーション層)だけに対応するロードバランサーで、Webアプリによく利用されています。
複数の AZ(アベイラビリティゾーン=データセンタの集合の単位)をまたいだインスタンスに対応可能で、ハードウェアの故障や災害といった障害が発生した場合でも高い耐障害性を発揮し、キャパシティを自動で増減する機能が備わっているなど、可用性に優れています。
アプリケーション層に特化しているため、ELB よりも便利で使いやすい機能を実装することができ、全体のサポート力も高まりました。
堅牢性の高いセキュリティ機能
ALB は VPC(Amazon Virtual Private Cloud)内に配置しており、Security Group機能を利用可能です。これを使えば、必要なトラフィックだけを通過させるといった設定ができ、高い安全性が保たれます。
SSL証明書のインストールも可能なので、通信の HTTPS(SSL)化が簡単に行え、単一サーバで通信の SSL化が可能になります。このように、SSLやTLSの暗号化とプロトコルを使用できる点やアクセス制限できるという点でも安心です。
柔軟なアプリケーション管理ができる
ALB では、柔軟にアプリケーションのターゲットの設定が行えるため、単一のインスタンスで多くのアプリケーションをルーティングできます。
最新のアプリケーションに対応
ALB は、マイクロサービスやコンテナといった最新のアプリケーションアーキテクチャに対応できます。
高度なリクエストルーティングが可能になったことでより自由度が高くスムーズに利用できるようになります。
リアルタイムモニタリング機能
状態監視サービス「Amazon CloudWatch」と連携し、ロードバランサーに関する統計データをメトリクスとして取得することで、アプリケーションが正常に作動しているかリアルタイムで監視可能です。
アプリケーションに関するデータを詳細にチェックでき、トラブルシューティングがリクエスト単位で実行できます
URLに基づくルーティングが可能
ALB は Webサイトの URL に基づいたルーティングが可能です。そのため、複数のサービスをそれぞれ独立させ、各々に最適なリクエストを設定でき、ルーティングのルール定義も複数作成できます。
アプリケーションを小さなサイズで構成できるので、リクエストごと、ターゲットグループにルーティングできます。
新たにWebSocket とHTTP/2のサポートを追加
ALB は新たに WebSocket と HTTP/2 という 2つの通信プロトコルに対応し、トラフィックの削減やコネクション利用の効率化が可能になりました。
ELBからALBに移行するメリットは?
ELB から ALB に移行することによっていくつかのメリットが得られます。
- 複数のロードバランサーを統合でき、コストを削減できる
- パフォーマンス改善によって効率を上げられる
- AWS WAFの利用によってセキュリティを強化できる
上記以外にもアクセスログに対する情報の追加や Lambda 関数における登録サポートなど、たくさんのメリットが得られるでしょう。
ALBの料金は?
ELBの料金は、1時間単位(または 1時間未満)のロードバランサーの使用量とロードバランサーキャパシティユニット(LCU)の使用量を合わせた金額になります。この LCUはロードバランサーの種類によって異なります。
ALBは、利用 1時間(または 1時間未満)あたり0.0243USD、LCU時間(または 1時間未満)あたり0.008USD の利用料金が発生します。
LCUは、次の 4つの要素のうち、1番使用量が多いものにのみ適応されます。
- 「新しい接続」1秒あたりに新たに確立された接続の数
- 「アクティブ接続」1分あたりのアクティブな接続の数
- 「処理タイプ」ロードバランサーによって処理された HTTP(S)リクエストと応答のバイト数(GB 単位)
- 「ルール評価」ロードバランサーが処理したルールの数とリクエストレートの積
AWS ALBの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、ALBに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。