14Room

みんな泣きながらオトナになったんだ。

HTTP load balancingで海を跨いだ負荷分散をしてみた

概要

GCPのHTTP load balancingには一つのIPアドレス複数のリージョンに負荷分散できる機能があります。

Google Cloud Platform Blog: Unveiling scalable HTTP load balancing across cloud regions

これを上手く使えば、ニューヨークにいる人にはアメリカのサーバに、フランクフルトにいる人はEUのサーバに、そして東京にいる人はアジアのサーバに導いて快適なアクセス環境を提供できるのでは?という夢が広がるので検証してみました。

設定方法

  1. 各リージョンにサーバを構築
  2. 各リージョンにインスタンスグループを作成、サーバを追加。
  3. 上記のインスタンスグループをHTTP load balancerのバックエンドサービスに追加。

以上、簡単ですね。

結果

普通は

一つのリージョンにサーバを構築してアクセスを受けるので、下の図のように世界各地からアクセスが一つのリージョンに集まっています。 f:id:naked123:20160104185735p:plain

設定後

下の図のようにアジア圏の人はアジアのサーバに、北アメリカの人はアメリカのサーバに、ヨーロッパの人はEUのサーバにルーティングされているようです。 f:id:naked123:20160104192356p:plain

あとがき

ただし、中央にDBを持って書き込みを行うようなシステムの場合、話はこんなに単純では無いですね。 マルチマスター構成が取れるDBなら良いですが、普通はどこかの一つのリージョンにマスターDBを固定しなければなりません。 taptripの場合はDBをマスター、スレーブ構成で持ち、Slaveを各リージョンに配置して引き続き検証を続けたいと思います。