負荷、分散してますか?
今回はちょっと特殊なロードバランサーをご紹介したいと思います。
ロードバランサーの使い方としては皆さんご存じの通り、このように
インターネットからのユーザーアクセスを受けて、Webサーバー等に
通信負荷を分散する、という用途が一般的かと思います。
そう、ロードバランサーといえば
「外からの通信を内部に分散する」
という内向きの負荷分散機器ですよね。
ところが実は
「外向きに負荷分散できるロードバランサー」
というものが存在するんです。
…何言ってるかわかんないですよね。
イスラエルに本社を迎えるRadware(ラドウェア)という企業の
Alteon(アルテオン)という機器は、インターネットに向けて
ロードバランシングを可能としています。
どういう使い方をするの?という疑問が浮かびますが
これから私が経験した使い方を説明していきます。
ユーザーからのVPN通信を負荷分散する
VPN基本構成
まず、VPN接続の基本はこうですね。
①ユーザーがVPN接続用ドメイン(xxx.co.jp)へアクセス
②DNSが名前解決し、VPN接続先IPをユーザーに教える
③DNSから教わったIPへアクセスし、VPN接続確立
→社内NWへアクセスできるようになる
ユーザー数が数百人くらいであればこれで全く問題ないんですが
数千人~万人ほどになると、ルーターやインターネット回線への
通信負荷がちょっと不安になりますよね。
そんな時にAlteonを導入することで、このように負荷を分散できます。
Alteonを使用したVPN構成
こちらの構成例でお話しします。注目すべきはこの2点です。
・Alteonへインターネット回線を複数本敷設(今回は4本)
・インターネット上のDNSだけでなく、AlteonにもDNS機能がある
すると、VPN接続までのフローはこうなります。
①ユーザーがVPN接続用ドメイン(xxx.co.jp)へアクセス
②DNSが名前解決し、AlteonのDNS用IPをユーザーに教える
③ユーザーがAlteon DNSへアクセス
④Alteonが各インターネット回線の負荷を確認し、最も余裕がある回線を判断して
その回線のIP(bbb.bbb.bbb.bbb)をユーザーに教える
⑤ユーザーがAlteonから教わったIPへアクセスし、VPN接続確立
→社内NWへアクセスできるようになる
このような構成にすることで、大規模なユーザー数でも1回線に負荷が偏ることなく
安定したトラフィックを保つことが可能となります。
(もちろん社内NWがボトルネックにならないように、LANも太くする必要はあります)
Alteonなしで構成する場合は
①インターネット回線を10Gbps回線にする
②インターネットプロバイダに複数の1Gbps回線を束ねてもらう
③AWS Route53を使って複数回線へ分散する
などが考えられますが
① →冗長化ができない(回線障害があったら全ユーザーがアクセス不可)
② →たぶん分散方式の指定ができない(プロバイダ任せになるので期待通りの分散にならない)
③ →たぶんラウンドロビンでしか分散できない(回線負荷を判断して分散してくれない)
という足かせがあるはずなので、ちゃんと分散したい場合はちょっと微妙かと思います。
その点Alteonであればラウンドロビンはもちろん、LeastConnectionやWeightでの分散も
可能なので、設計がしやすいと思います。
※分散方式の説明は今回はしないので、気になる方は調べてみてください
以上、外向きに負荷分散できるロードバランサーのお話でした。