AWSでWEBサービスを構築する場合に、あると便利なサービスであるALB(Application Load Balancer)について説明してみたいと思います。
ALB(Application Load Balancer)とは?
WEBサービスに高可用性を持たせるためにアクセスの負荷分散を行ってくれるサービスになります。
WEBサービスをEC2を1台で運用しようとした場合、アクセスが急激に増えた場合にEC2の処理キャパシティを超えてしまうと、WEBサイトへアクセスできないなどの障害が発生してしまう事があります。
アクセス過多による障害を発生させないために、EC2複数台を用意し負荷分散をさせるためにアクセスをそれぞれのEC2へ振り分けてくれる役割をしてくれるのがALB(Application Load Balancer)になります。
他にも、外部から遮断されたプライベートサブネット内に配置したEC2でWEBサービスを稼働させたい場合や、SSL証明書も設定できるので、WEBサービスを構築する際は大変役立つサービスです。
ALBを配置したWEBサービスの構成図
ALBは外部からのアクセスを受ける必要がある為、パブリックな場所に配置する必要があります。
そこからALBにあらかじめ指定されたEC2の集まりで作成するターゲットグループに対してアクセスを流します。
![ネットワーク図](https://tech.omablo.com/wp-content/uploads/sites/5/2022/03/image.png)
ALBを作成
まずはターゲットグループを作成
EC2のコンソールからまずはEC2の集まりであるターゲットグループを作成していきます。
![ターゲットグループ](https://tech.omablo.com/wp-content/uploads/sites/5/2022/03/image-1.png)
「Create target group」をクリックして作成していきます。
最初のページではターゲットの指定方法の選択と名前、対象のVPCを選択していきます。
ターゲットは今回は「Instances」指定を選びます。
するとターゲットとするインスタンスを選ぶ画面になるので、インスタンスを選択して「Include as pending below」をクリックします。
![インスタンスを選択](https://tech.omablo.com/wp-content/uploads/sites/5/2022/03/image-2-1024x341.png)
すると選択したインスタンスが下の枠に移動するので、これでよければ「Create target group」
![ターゲットグループを確定](https://tech.omablo.com/wp-content/uploads/sites/5/2022/03/image-4-1024x260.png)
簡単にですが、これでまずはターゲットグループを作成することが出来ました。
ALBを作成
次はALBを作成していきます。
![ALBを作成](https://tech.omablo.com/wp-content/uploads/sites/5/2022/03/image-5.png)
「ロードバランサーの作成」をクリックするとまず作成したいロードバランサーの種類を選択する必要があるので、今回はWEBサービスという事でApplication Load Balancerを選択します。
そうすると次のページではALBに付ける名前などを設定していきますが、ここで大事な設定が、VPCとALBを配置するサブネットの選択です。
ALBのサービスとして1つ作成を行いますが、実態としては可用性を実現するために複数のAZに配置される必要があるので、下記のようにパブリックなサブネットのある複数のAZを選択する必要があります。
※パブリックなサブネットがないと外部からアクセスできないのでALBに繋がらなくなってしまいます。
![ネットワークの設定](https://tech.omablo.com/wp-content/uploads/sites/5/2022/03/image-6-1024x761.png)
ALBの配置場所を指定したら、ルーティング先に先ほど作成したターゲットグループを指定します。
![ターゲットグループの選択](https://tech.omablo.com/wp-content/uploads/sites/5/2022/03/image-7-1024x379.png)
あとは「Create load balancer」をクリックするだけで、構成図のようなALBのある構成が作成できます。
ALBの料金は?
ALBは無料ではないのでこちらで詳細な料金を確認してください。
![](https://a0.awsstatic.com/libra-css/images/logos/aws_logo_smile_1200x630.png)
WEBサービスを構築するにあたって高可用性や負荷分散などは必要になってくると思いますので、
運用も簡単なALBの導入をぜひおすすめします。
コメント