AWSから接続名によって接続先を切り替えられることのできる負荷分散サービス提供されました。
ApplicationLB
他にも、いろいろと追加機能がありますが、とにかく知識がついていっていないです。
ただ、いままでのELBがClassicになる瞬間というものを目の当たりにして感慨深いです。
執筆時点で既に多くの技術者の方々がApplicationLB(以下ALB※)について執筆されており
いつもの自分であれば、貪り読んでから着手するのですが、
今回は、なるべくそれらに目を通さず、夢を持った状態で触って見たいと思います。
※ALBはみんなだいすきクラスメソッドさんのブログの呼称を拝借いたしました。
打鍵が少なくて、でもなんとなく伝わる感じが良いですね。
★勝手に出来ると思い込んでいたこと★
たとえばALBのEndPointDNSに対して「*.ドメイン」みたいなワイルドカードで
Route53にCNAMEレコードを書いてあげれば
一つのALBで複数のWebサーバ名を打ち分けられるんじゃないのか
つまりnginxとかがrewriteでやっているようなことが出来るんじゃないかとおもったのですが
【結果】無理でした。
Pathベースって単語をチラ見した瞬間、なんとなく気づいていたのですが、
まあ、物は試しと思ってやったのですが、はやり、というか当然駄目でしたね。
①ALBのEndpointをDNSにCNAMEでワイルドカードで受けられるように書いてあげる
②ALBの接続名による打ち分けを以下のように設定。Path部分には自信満々にサーバ名を記載
http://1a.XXX.com →AZが1aのWebサーバへ、http://1c.XXX.com →AZが1cのWebサーバへそれぞれ僕の夢を乗せたリクエストが飛ぶはず
※defaultは1aのdefaultWebサーバに飛ぶように、結果計3台のWebサーバをずんび
③レッツトライ
秒速で夢破れて山河あり状態。
ばっちりデフォルトに流れています。
④説明書どおりにやる
速攻で杜甫状態になったので、pathベースの検証に切り替えます。
http://xx.XXX.com/1a-web →AZが1aのWebサーバへ、http://xx.XXX.com/1c-web →AZが1cのWebサーバへそれぞれ僕の破れた夢を乗せたリクエストが飛ぶはず
※それぞれのWebサーバのDocumentRootには接続時に使用するpathに対応したものを配置しておきます。
⑤レッツトライ
Yeah!行きましたね!破れた夢を乗せたリクエストが到達しました!
※接続URLが違うのは、無駄になったWildCard作戦への鎮魂歌です。
結果Pathベースの基本的な挙動についてのみ、
ごく少ない情報量でサラッと触れるという有様になりましたが
どなたかの参考となればうれしい限りです。
こちらからは以上です。