6月に発表され、現在Limited PreviewされているGCPのL7ロードバランサの機能を紹介して行きたいと思います。
google.com を支えているものと同じと言われるその実力、まずはリージョンまたぎのロードバランサです。ちょっと技術的にどのように実現しているのか意味が分からない!
なんと、一つのIPアドレスに対してリクエストを送っているも、そのアクセス元の場所によって、近くのリージョンに割り振ってくれる、というものです。
絵にすると、以下のような挙動になります。
ちなみに、片側のリージョンが仮に全滅したり、応答性能が悪くなったりした場合はもうひとつのリージョンに全部振り向ける、というのも自動で行われます。
そんなまさか!と思われる方は、この後のデモ動画をご確認ください。
具体的な設定等については、Google のCross-region Loadbalancer の資料を参照ください。ほぼこのまま実施すれば概ねの挙動は確認出来ます。(デモではAmazonからの確認にしたり、Curlのタイムアウト設定を修正したり、微調整を行っていますが)
早速デモを
デモは以下のような流れになってます。先に予習しておきましょう。
- 台湾のデータセンタからと、AWSのUSリージョン(N.Virginia)のデータセンタからcurlコマンドで固定IPに対してリクエストを繰り返す(当初失敗します)
- www-1、www-2をアジアで、www-3、ww-4をUSリージョンで起動します。
→数十秒で起動し、1,2からリクエストが返るのを確認
→この時、AWS側の方は最初1,2から帰って来ますが、3,4が起動すると3,4から帰ってくる挙動が確認されます。 - www-1のサービスを停止
→台湾のサーバからのリクエストにはwww-2からのみ返るのを確認、以降、AWS側では特に変化無し(常に3,4からリクエストが返る)。 - www-2のサービスを停止
→切替に少し時間がかかり数秒エラーになるが、台湾のサーバからのリクエストもwww-3,4(US側)からリクエストが返るのを確認。 - www-2を起動
→台湾のサーバからのリクエストが再びwww-2からリクエストが返るのを確認。
curlのコマンドのレスポンスタイムを表示しているので、それぞれ、同じリージョン同士の場合は早く、リージョンを跨ぐとレスポンスタイムが長くなるという挙動も確認出来ます。(停止時のヘルスチェックに引っかかるタイミングでも遅延が発生します)
では、ご覧ください。
一応、音声で私の解説がついてますので、音量を調整ください。上記説明を理解してくれていれば、何やってるかは概ね音声なしでもご理解いただけると思います。
いかがでしたでしょうか?
インスタンスの起動の速さも感じて頂けたかも知れませんね。