久々の投稿です。
技術的なメモ書きをEvernoteにメモるようにして、
そこからブログにまとめてみることにしました。
会社だったり家だったり出先だったりで思いついたことは基本Evernoteにメモる。
なんか最近記憶に頼り過ぎで、忘れてて調べ直すことが多くなった気がするというのもあり…
ともあれ、これで三日坊主が直ることを期待しますw
諸事情でELBが使えないかもしれない案件があったので検証しました。
ELBのどこがダメだったかというと、
IPアドレスが固定ではない
ということでした。
とはいえ、商用LBは高いし、HAProxyとかNginxとかで作るとSPOFにならないように配慮するのが大変だし・・・
そこで思いついたのが、
Route53によるDNSロードバランサです。
DNSラウンドロビンによるDNSロードバランサは一般的に使われる方法ではありますが、
Route53ならヘルスチェック機能があるため、かなり本格的にロードバランサ的な使い方が可能です!
全部落ちた時のソーリーページも設定可能です。
DNSの枠に収まらないRoute53素敵!w
概要図↓
設定方法↓
- まずはHealthCheckを作成(振り分け対象分)
- レコードを設定して作成したヘルスチェックを割り当てる
Routing Policyは「Weighted」
重み(Weight)は均等に振り分けるなら全て「1」
- 重み(Weight)「0」でAlias AレコードでS3とかを指せば全部落ちた時のFailover先も設定できちゃう!
注意事項等↓
- 振り分けはラウンドロビンのみ。
Stikky Session(振り分けの固定)はできません。 - ヘルスチェックの間隔やNG基準の変更はできません。
30秒間隔でヘルスチェックが行われ、3回連続で30秒以内にHTTPレスポンスコード「200」が返らなかった場合、NGとなります。 - 中継するDNSやクライアントサイドのプロキシ等のキャッシュによって、
ヘルスチェックNGとなっているIPアドレスへのアクセスがある程度の期間継続的に行われる可能性があります。
最近、AWSメインで集中させてもらえる環境ができつつあるので、
大分モチベーションが上がってきました!w