個人利用から大規模開発までConoHaで始めるクラウド開発入門

第2回 海外リージョン,ロードバランサ,GeoDNSを使う

この記事を読むのに必要な時間:およそ 3 分

バランシングの設定を行う

次にバランシングの設定を行います。この手順で,ロードバランサ配下にサーバを追加し,トラフィックの分散方法を決めます。バランシングはTCPポートごとに設定します。今回はHTTPなので「バランシング元ポート」の80をクリックします。その後,右側にある変更アイコンをクリックしてください図7)⁠

図7 ロードバランサの設定

図7 ロードバランサの設定

「バランシング方法」はラウンドロビンかリーストコネクトが選択できます。前者は均等にトラフィックを分散し,後者は最も接続数の少ないサーバにトラフィックを分散します。サービスの特性に合わせて選んでください。⁠ヘルスモニタ」には先ほど作成した「HTTP」を選択します。⁠バランシング先IPアドレス」のプルダウンメニューでは,トラフィックを振り分けるVPSを選択します。それぞれ選択して「保存」をクリックすると設定は完了です。

Webサーバにネットワークの設定を行う

最後にWebサーバに少し設定を追加する必要があります。ConoHaのロードバランサはDSRDirect Server Return方式を採用しています。これはロードバランサ経由でWebサーバまで届いたクライアントからのトラフィックを,Webサーバがクライアントに直接返す方式です。トラフィックの流れは図4を確認してください。DSR方式の場合,ロードバランサからWebサーバに送られてくるパケットは,ロードバランサのIPアドレス(VIP)になります。Webサーバはこのパケットを受け取って処理できなければなりません。Linuxの場合,NICにVIPのループバックを設定しますが,ここではiptablesやfirewalldを使用した例を紹介しますリスト1,2)⁠

リスト1 iptablesで設定する

iptables -t nat -A PREROUTING -d [ロードバランサーのVIPアドレス] -j
REDIRECT

リスト2 firewalldで設定する

# httpサービスをfirewalldに追加
firewall-cmd --add-service httpd
# eth0にロードバランサのIPアドレスをエイリアスとして追加
nmcli c mod eth0 +ipv4.addresses "[ロードバランサのVIPアドレス]/32"
# ネットワークインターフェースをリスタートして設定を反映
nmcli c down eth0; nmcli c up eth0

以上で設定はすべて完了しました。ブラウザなどからhttp://[ロードバランサのVIPアドレス]にアクセスしてみましょう。またWebサーバのログなどを確認すると,ロードバランサがトラフィックを分散させる様子が確認できます。

GeoDNS

ConoHaには無料で使えるDNSサービスが用意されています。GeoDNSはDNSサービスのオプションとして使える機能で,接続元のIPアドレスに応じてネットワーク的に最も近いリージョンのAレコードを返す機能です。ConoHa以外のサーバに対しても設定可能で,すでに日本でサービスを展開している場合であっても,日本はそのままで海外サーバだけConoHaを使うといった利用もできます。GeoDNSは単純にAレコードを返すだけでなく重み付けとヘルスチェックの機能があり,どこかのリージョンに障害が発生しても,ほかのリージョンが応答することが可能です。

ではGeoDNSを試してみましょう。コントロールパネルの左メニューから「DNS」を選択し,⁠追加」をクリックしてお手持ちのドメインを追加してください。追加したドメインをクリックすると,詳細が表示されます図8)⁠

図8 DNSの設定

図8 DNSの設定

まずは,GeoDNSオプションを「有効」に変更しましょう。これでGeoDNSが使えるようになります。そして,右上の変更アイコンをクリックしてDNSレコードを追加していきます。GeoDNSは通常のDNS Aレコードと同じように設定しますが,⁠ヘルスチェックポート」「リージョン」といった固有の設定があります。それぞれヘルスチェックに使うTCPポート番号と,そのサーバが存在するリージョンを指定してください。サーバがConoHaの場合は自動でリージョンを認識しますが,ほかの事業者のサーバの場合はユーザが手動でリージョンを指定する必要があります。これを繰り返して,東京,アメリカ,シンガポールそれぞれのGeo DNSレコードを追加しましょう。典型的な設定例は図9のようになります。

図9 典型的なGeoDNS例

図9 典型的なGeoDNS例

以上で設定は終わりです。確認のため各国からpingを送ってくれる便利なサービスを利用してみましょう。今回はhttp://www.super-ping.com/を利用しました。図10のように,地域ごとに最も近いリージョンのIPアドレスが返ることがわかります。

図10 super-ping.comによる確認

図10 super-ping.comによる確認

まとめ

第2回ということで,実際にConoHaの新機能を使ってみました。海外リージョンはさまざまな地域のユーザにサービスを展開する際にネットワーク遅延を最小化できます。ロードバランサはVPSの柔軟性を活かし,負荷分散を実現して可用性の高いシステムを設計できるでしょう。GeoDNSは海外リージョンをより効果的に活用できます。皆さんもConoHaの新機能をぜひ試してみてください。

著者プロフィール

斉藤弘信(さいとうひろのぶ)

GMOインターネット株式会社 テクニカルエバンジェリスト

2000年に同社に入社。ユーザーサポートやデータセンターでのオペレーション業務等を担当し,その後社長室などのゼネラル部門を経て,2014年9月よりホスティング事業のテクニカルエバンジェリストを担当。

得意分野はWebアプリケーションの設計/開発,Linuxサーバー構築/運用。

Twitter:@hironobu_s