AWS

ALBとは?現役AWSエンジニアが使い方や注意点を解説!

AWS ALB(Application Load Balancer)とは

AWS ALBはアプリケーション等の負荷分散に使われる、アプリケーション構築には不可欠なサービスです。
今回は、現役AWSエンジニアによるALBの概要や使い方、注意点を解説します。
それぞれ見ていきましょう。

ALBの概要

AWS ALB(Application Load Balancer)は、Amazon Web Services(AWS)が提供する負荷分散サービスです。
ALBは、インターネットトラフィックを複数のAmazon EC2インスタンスやコンテナに均等に分散するための機能を提供します。
これにより、アプリケーションの可用性を向上させ、スケーラビリティを確保することができます。

アプリケーション構築では基本的にALBで問題ありません
アプリケーションの仕様により、固定IPアドレスが必要であったり、レイヤー4の負荷分散が必要な場合はELB/CLBを利用します。

ALBの使い方

alb

ここでは、AWSにおけるALBの基本的な使い方を解説します。

Amazon EC2の負荷分散

EC2の上段(インターネット側)にALBを設置し、インターネットからのトラフィックを負荷分散します。
複数のEC2インスタンスをターゲットグループに登録し、ALBがリクエストを受け取ると、各インスタンスに対して負荷を均等に分散します。
これにより、トラフィックの増加に応じて自動的にスケーリングすることが可能となります。

ACM証明書の付与・HTTPS通信

ACM(Amazon Certificate Manager)のSSL/TLS証明書をアタッチすることができます。
ACM証明書を付与すると、HTTPS通信が可能となり、インターネットからALBまでの経路がセキュアな通信となります。

Amazon CloudFrontオリジン

CloudFrontのオリジンとして設定できます。
インターネット --- CloudFront --- ALB --- EC2と構築することで、キャッシュをしながら負荷分散ができるアプリケーションが作成可能です。

その他の使い方

他にも、コンテナサービスであるECSや、速度改善が期待できるGlobal Accelerator設定、Auto Scalling設定に利用されます。

ALB利用の注意点

alb-caution

次に、ALBを構築する際の注意点をご紹介します。

ターゲットグループのUnhealthに注意

ALBから負荷分散用に登録されたインスタンスやコンテナが正常に応答しない場合、そのターゲットは「Unhealth」となります。

「Unhealth」状態では冗長構成が組めていないことになるため注意しましょう。

しかし、登録機器が1台のみの場合や、登録している全てのインスタンスが「Unhealth」の場合は接続できてしまいます。

下記記事で詳しく解説していますので、ご参考ください。

Stickyセッションに注意

Stickyセッションは、同じクライアントからのリクエストを常に同じターゲットに送る機能です。

アプリケーションによっては、ユーザーのマイページ等を提供している事があると思います。
Stickyセッション設定をしていない場合、1台目のEC2に接続していたが、負荷分散機能で途中2台目のEC2に接続してしまうことがあります。
そうなると、ユーザーはマイページセッションが切れて再度ログイン画面に戻されてしまい、ユーザーエクスペリエンスに影響を及ぼしてしまいます

ユーザーログインが必要なアプリケーションの場合は、Stickyセッション機能をONにしておきましょう。

ALB立ち上げ時のsubnet空きIPアドレス数に注意

ALBを立ち上げる際には、選択したsubnetに十分な空きIPアドレスがあることを確認してください。
ALBの仕様として、8つの空きIPアドレスが必要となります。
しかも、ALBに設定する2つのsubnetどちらも8個ずつ必要です。

IPアドレスが足りない場合は、「Not enough IP space available in subent-xxxx ELB requires at least 8 free IP addresses in each subnet.」というエラーが出力されます。

AWSの効果的な学習方法は?

最後に、AWSの効果的な学習方法をご紹介します。

自学自習はUdemy講座

オンラインプラットフォームであるUdemyは安価で手軽にAWSの学習が可能です。

しかし、上記で紹介したような実際のAWSエンジニアが実施している構築スキルまでは教えてくれません。初心者~中級者向けの講座が多くなっています。

私も受講した、初心者向けAWS講座を下記記事でまとめています。ご参考ください。

  • この記事を書いた人

KAITech

大企業/中小企業/ベンチャー企業を経験
AWS/ネットワークのエンジニア
記事執筆やメンタリング等、仕事の依頼はコチラから
https://www.kaitech-media.biz/work/

-AWS

Impact-Site-Verification: fff7f0fb-b27c-4c8c-8e70-d9fd6d847f92