Tutorial: Use Path-Based Routing with Your Application Load Balancer
URL pathに基いてリクエストの転送ルールが入っているlistenerの作成ができる。(path-based routing) path-based routingを使用して複数のback-endにトラフィックを転送できる。例えば、通常のリクエストを一つのターゲットグループに振り分け、イメージのレンダーリクエストを別のターゲットグループに振り分けができる。
Before you Begin
- VPCでEC2インスタンスを立ち上げる。health checkのポートとListenerのポートを許可したsecurity groupを割り当てる。より詳細の情報はTarget Security Groups
- 登録予定のEC2インスタンスのマイクロサービスがデプロイされているか確認する。
Create your Load Balancer
path-baseルーティングのロードバランサーの作成
- Webコンソールを開く
- EC2インスタンスと同じリージョンをナビゲーションバーより選択
- ナビゲーションパネルのLOAD BALANCINGの下のTarget Groupsを選択
- 下記の様にターゲットが最初にセットされるターゲットグループを作成する
- Create target groupを選択
- name,プロトコル、ポート、VPCを設定しCreateを選ぶ
- new target groupを選択
- TargetsタブでEditを選ぶ
- 一つやそれ以上のinstanceを選択し、Add to regsteredを選んで、Saveする
注意: インスタンスのstatusは登録とhealth checkがパスされるまでinitialである、そしてターゲットグループがロードバランサーからトラッフィクを受けるまでunusedになる
- ふたつ目のターゲットグループを下記のように作成する
- Create target grpuを選択
- name、protocol、ポート、VPCをを指定し、Createを選択
- TargetsタブのEditを選択
- 一つあるいはそれ以上のinstanceお選び、Add to registeredを選び、Saveする
- ナビゲーションパネルのLOAD BALANCINGの下のLoad Balancersを選ぶ
- Create Load Balancerを選ぶ
- Select Load balancer typeからApplication Load Balancerを選ぶ
- Continueを選ぶ
- Configure Load Balancerページを以下のように設定する
- Nameにload balancerの名前を入力する
ALBの名前はリージョン内ではユニークである必要がある。最大で32文字、アルファベットとハイフンが使用可能。最初と最後にハイフンを使用することは出来ない。 - Scheme では、Internet-facing ロードバランサーはinternet上のクライアントからのリクエストを振り分ける。internal ロードバランサーはターゲットへの振り分けはプラベートIPを使用する。
- Listenersでは、80番のHTTPをdefaultでは許可する。それ以外のプロトコルとポートに修正することができ、Addを選び別のlistenerを追加することが出来る。
- VPCでは、使用したいEC2インスタンスと同じVPCを選択する
- Available subnetsでは少なくとも2つのsubnetを選択し、Actions列でアイコンを選びとSelectd subnetsに移動する。Note Avaliability Zone毎に一つのsubentを選ぶ事ができる。もしAZから選んだsubnetがすでにあれば現在選択したsubnetに置き換えられる。
- Next: Configure Security Settingsを選択
- Nameにload balancerの名前を入力する
- もし以前にSecure listenerを作成したことがあれば、次のようにConfigure Security Settignsを完成させる
- もしAWS Certificate Managerの証明書があれば、Choose an existign certificate from AWS Certificate Manager(ACM)を選び、Certificatenmeから証明書を選ぶ
- もしすでにIAMを使用して証明書をアップロードしているのであれば、Choose an existing certificate from AWS Identity and Access Management (IAM)から証明書を選ぶ
- もしアップロード出来る証明書があればUpload a new SSL Certificate to AWS Identity and Access Management(IAM)を選ぶ。Certificate nameに証明書の名前を入力、Private KeyにはPEM-encoded形式のprivate keyファイルの中身をコピーペースト、Public Key CertificateではPem-encoded形式のPublic keyファイルの中身をコピーペースト、Certificate ChainにはPem-encoded形式のCertificate chain ファイルの中身をコピーペースト、自己署名証明書を使っていて、ブラウザは暗黙の内に証明書を受け入れる事が重要ではない限り。
- Select Policyでは存在しているsecurity policyを一つ選ぶ
- Next: Configure Security Groupsを選ぶ
- Configure Security Groupsページは以下のように設定する
- Create a new security groupを選択
- nameとdescriptionを入力するかdefaultを使用する。この新しいsecurity groupはConfigure Load Balancerページで選択しているポートのトラフィックを許可するルールが含まれている
- Next: Configure ROutingを選ぶ
- Configure Routingを以下のように設定する
- Target groupではすでにあるtarget groupを選ぶ
- 作ったターゲットグループから一つ目のターゲットグループを選ぶ
- Next: Register Targetsを選択
- Register Targetsページではターゲットグループに登録したインスタンスがRegistered instances下に表示される。wizardを完了させるまで登録されたターゲットの変更はできない。Next: Reviewを選択
- ReviewページでCreateを選択
- ロードバランサーの作成成功が通知されたらCloseを選択
- 新規作成されたロードバランサーを選択
- Listenersタブでは矢印アイコンでlistenerのルールを見る。Add ruleを選択する。ルールは以下のように指定できる
- Target group nameでは作った二つ目のターゲットグループを選択
- Path patternではpath-based routingのパターンを指定する(e.g. /img/*)
- Saveを選ぶ