AWS Application Load Balancerを試してみる
インフラエンジニアの指原です。
先月リリースされたAWSのアプリケーションロードバランサーを試してみます。
AWS | Elastic Load Balancing | Application Load Balancer
ELBとの違いですが、やはりL7分散の機能が追加されたことでしょうか。
パスベースでのルーティングに対応したようです。
また、パスベースルーティング追加により、ターゲットグループというグループも追加されています。
残念なことにドメインレベルでの分散には対応していないようです。
その他にもHTTP/2がサポートされたり、様々な機能が追加されています。
Application Load Balancerを試す
とりあえず今回はEC2インスタンス2台用意し、上位にALBを配置します。
通常のアクセスにはinstance1を参照し、「/instance2」というパスでアクセスがあった場合にinstance2をアクセスするようにします。
ターゲットグループの作成
まず初めに先ほど説明したターゲットグループを作成します。
ターゲットグループは名前の通りターゲットを指定するためのグループです。
EC2のダッシュボードにターゲットグループがあるのでそのまま「ターゲットグループの作成」に進みます。
初めにデフォルトアクセス用の「instance1-tg」を作成します。
今回はHTTPだけで行うので基本的にはそのままです。
そのまま「作成」を押してやるとターゲットグループが作成されます。
このままだとターゲットグループ内のインスタンスが指定されていないので、登録を行います。
次に、「/instance2」でアクセスがあった場合にもう一つのインスタンスに接続するためのターゲットグループを
先程と同じ要領で作成します。
ターゲットグループにinstance2を登録します。
以上でターゲットグループの作成は完了です。
続いてALBを作成します。
ALBの作成
ロードバランサの作成を押すとALBかELBかを選択できます。
今回はALBを使用するので「アプリケーションロードバランサ」を選択します。
名前を「application-LB」に設定し、プロトコルは「HTTP」を選択。
使用するVPC及びサブネットを選択します。
ここで次に進むと「HTTPSを使用したほうが良いよ」という警告がでますが、
今回はHTTPSには対応しないのでスルーします。
次にセキュリティグループの設定を行います。
今回は事前に用意していたWEBアクセス用のセキュリティグループを選択します。
つづいて先ほど作成したターゲットグループの登録を行います。
デフォルトアクセス用のinstance1-tgを設定し、次に進みます。
instance1の情報を確認し、アプリケーションロードバランサを作成します。
バランサが作成されました!
ただ、このままだとinstance2-tgが設定されていないので設定してあげる必要があります。
そしてパスパターンを「/instance2」とし、ターゲットグループにinstance2-tgを選択し、「保存」をクリックします。
これで設定は完了です。
とりあえずアクセスしてみます。
パスを指定しなかった場合はinstance1にアクセスされます。
続いて「/instance2」のパスを指定した場合は、instance2へアクセスされます。
パスベースで分散されてますね。
以前まではL4での分散しかできませんでしたが、ようやくL7分散可能なLBがリリースされました。
今後も様々な機能が追加されていくと思いますので、色々な場面で利用できそうです。