Azure TIPS

Azure TIPS

Traffic Managerを利用してAzure Webサイトへの負荷を分散するには?

2014年12月5日

Traffic Managerを使えば、単体のWebサイトのインスタンス数を増やす方法よりも高度な負荷分散が実現できる。3種類の負荷分散方法のうち「パフォーマンス」の方法を説明。

Microsoft Student Partners Fellow 谷口 慈行
  • このエントリーをはてなブックマークに追加

 Microsoft Azure Web Sites(以下、単に「Webサイト」)は、ホスティングプランを「標準」に変更してインスタンス数を増やすことで(もしくは自動スケールを設定することで)、容易にスケールアウトできる。ただし、この方法でスケールアウトできるのは1つの(Webサイトの)「標準」インスタンスに限られる。

 複数の(Webサイトの)「標準」インスタンスをAzure上に用意して、それらを利用してスケールアウトしたい場合には、Traffic Manager(トラフィックマネージャー)を使う必要がある。複数のWebサイトを用いてスケールアウトすることで、さらなる負荷軽減や障害発生時の予備の確保、通信距離による遅延を軽減させることができる。

Traffic Managerとは?

 Traffic Managerは、アクセスを複数のインスタンスへ分散させるためのルーターであり、エンドポイントへのトラフィックの分散を制御できる。負荷分散方法には、パフォーマンスラウンドロビンフェールオーバーの3つのポリシーを選択できる。各負荷分散方法の内容は次の通りである。

負荷分散方法説明
パフォーマンス 異なるリージョンにエンドポイントを用意し、遅延時間が最短なエンドポイントになるようにアドレスを解決する
ラウンドロビン 同じ、または、異なるリージョンの正常なエンドポイントにランダムにトラフィックを流し、負荷を分散させる
フェールオーバー 同じ、または、異なるリージョンにバックアップエンドポイントを用意し、プライマリエンドポイントが利用不可になった場合、バックアップとして利用する
表1 各負荷分散方法の内容

パフォーマンスの負荷分散方法を設定する

 本稿では、パフォーマンスの負荷分散方法を例に、設定を行う。今回構築する構成を図1に示す。

図1 今回構築する、「パフォーマンスの負荷分散方法」を用いた構成
  • 1 カスタムドメインの名前を解決するリクエストを発行する。
  • 2 エイリアスによって、Traffic Managerを参照する。
  • 3 Traffic Managerが内部のテーブルを確認し、最短のインスタンスにアドレスを解決する。
  • 4 最短のインスタンスに解決されたアドレスを受け取る。
  • 5 最短のインスタンスにアクセスする。
  • 6 最短のインスタンスのレスポンスを受け取る。

 Traffic Managerにエンドポイントを登録すると、定期時間ごとに赤枠のようなテーブルが作成される。ここには、IP範囲からのアクセスを行ったときの各エンドポイントの応答時間が保存される。これを基にリクエストに対してアクセスするべきエンドポイントを決定する。

 本稿の構成では、Webサイトを東日本と東アジアの2つのリージョンに用意し、パフォーマンスの負荷分散方法に設定したTraffic Managerにそれらを登録している。そのため、日本からアクセスすれば東日本のインスタンスが表示され、東アジアに立ち上げた仮想マシンからアクセスすれば東アジアのインスタンスが表示される。また、カスタムドメインの設定も行う。

 本稿では、新型のプレビューポータルではなく、従来のAzureポータルを使って説明する。

構成手順

Webサイトを準備する

 エンドポイントとなるWebサイトを東日本と東アジアに1つずつ用意する。なお、Traffic Managerに設定するには、それぞれ「標準」プランである必要があることに注意する(もちろん課金対象である点にも留意してほしい)。

図2 用意したWebサイト

Traffic Managerを作成する

 次に、トラフィックマネージャーを作成する。ページ下部にある[新規]ボタンから、[ネットワーク サービス]-[TRAFFIC MANAGER]-[簡易作成]で作成できる。[DNS プレフィックス]に任意の値を入力し、[負荷分散方法]に「パフォーマンス」を選択する。

図3 Traffic Managerの作成

Traffic Managerへのエンドポイントの追加

 作成したTraffic Managerにエンドポイントを追加する。本稿では、先に作成した2つのWebサイトを追加する(図4)。

 同リージョン内のWebサイトの負荷分散はWebサイトによって自動で行われるため、パフォーマンスの負荷分散方法では、異なるリージョンに対する負荷分散のみ構成できる。

図4 Traffic Managerへのエンドポイントの追加

作成したTraffic Managerの[エンドポイント]タブを開いたところ。

  • 1 [サービスの種類]に「Web サイト」を選択する。
  • 2 [サービス エンドポイント]に準備したWebサイトのチェックボックスにチェックを入れる。
  • 3 チェックボタンをクリックすると、エンドポイントが追加される。

カスタムドメインの設定

 Webサイトにカスタムドメインを設定する。まず、ドメインを取得したドメインプロバイダー側のDNS設定で、Traffic Managerへのエイリアスを設定する(表2)。

ホスト名TYPETTLVALUE
sample.qaramell.com CNAME 3600 tfcm-sample.trafficmanager.net
表2 登録するDNSレコード

Traffic Managerへのエイリアスを設定する。
上記の設定値は、あくまで本稿の例のものなので、適宜、実際の値に差し替えて読んでほしい。

 ドメインプロバイダーで設定したDNSが反映されると、Webサイトにカスタムドメインを追加できるようになる。このとき、図5に示すように、[ドメイン名]にWebサイトのデフォルトのドメイン(本稿では「japan-sample.azurewebsites.net」)に加えて、Traffic Managerのドメイン(本稿では「tfcm-sample.trafficmanager.net」)が追加されていることが分かる。

図5 カスタムドメインの設定

 Traffic Managerにエンドポイントとして追加されたインスタンスには、このように、Traffic Managerのドメインが追加される。通常、Webサイトにカスタムドメインを設定するには、検証用のドメイン(awverify.www.yourdomain.com)を割り当てる必要があるが、Traffic Managerを利用する場合は必要ない。

 先ほど、Traffic Managerへのエイリアスを設定したホスト名(本稿では「sample.qaramell.com」)を入力すると、緑色のチェックマークが表示され使用できることが確認できる(図5)。Traffic Managerへ追加した全てのWebサイトにカスタムドメインを設定する。

確認

 カスタムドメインを設定後、実際にアクセスして確認してみる。確認のため、東日本のWebサイトでは「Japan」、東アジアのWebサイトでは「East Asia」と表示するように事前に準備しておいた。

 カスタムドメインのURLに日本からアクセスすると図6のように「Japan」と表示され、東アジア上に立ち上げた仮想マシンからアクセスすると図7のように「East Asia」と表示される。期待通りにTraffic Managerが動作していることが確認できる。

図6 日本からのアクセス結果
図7 東アジアからのアクセス結果

まとめ

 Traffic Managerを利用することで、単体のWebサイトインスタンスでは構成できない負荷分散を実現できる。本稿では、パフォーマンスの負荷分散方法で構成を試みたが、実際には、シーンに合った負荷分散方法を選択する必要がある。

 パフォーマンスの負荷分散方法では、異なるリージョン間のWebサイトでトラフィックを分割することになるが、整合性を重視するデータベース構成では、どちらか一方のリージョン内に設置することが多いと予想される。リージョン間は高速回線でつながってはいるがやはりスループットは低下してしまうため、Webサイトにデプロイするアプリケーションは、キャッシュを適切に利用する必要があることに留意してほしい。

 Traffic Managerは、Azureの中でもパブリッククラウドらしいサービスの1つであると筆者は考える。世界中にデータセンターを持つAzureだからこそ力を発揮するサービスといえる。ぜひ、Traffic Managerを利用して、既存のWebサイトのパフォーマンスの向上を検討してみてはどうだろうか。

※以下では、本稿の前後を合わせて5回分(第4回~第8回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

4. Azure Webサイトにカスタムドメインを設定するには?

Microsoft Azure Web Sitesで独自ドメイン名を適用する方法を説明する。CNAMEレコードだけでなく、wwwなしのネイキッドドメインが実現可能なAレコード(IPアドレス)も指定できる。

5. Azure Webサイトをバックアップするには?

Azure Webサイトでは、Webサイトとデータベースをバックアップ/復元するための機能が提供されている。その機能の基本的な使い方を解説する。

6. VM Depotを利用して素早く開発環境を構築するには?

LAMP環境やRuby Stackなどの多数のイメージが用意されている「VM Depot」を利用して、Linuxなどの仮想マシン環境を手軽に構築する方法を説明する。

7. 【現在、表示中】≫ Traffic Managerを利用してAzure Webサイトへの負荷を分散するには?

Traffic Managerを使えば、単体のWebサイトのインスタンス数を増やす方法よりも高度な負荷分散が実現できる。3種類の負荷分散方法のうち「パフォーマンス」の方法を説明。

8. Azure WebsitesのWebホスティングプランを変更するには?(+使い分け指針)

Azure Websitesの無料/共有/基本/標準というホスティングプランはどれを選択すればよいのか? またその選択方法を説明する。

イベント情報(メディアスポンサーです)

Azure Central の記事内容の紹介

Twitterでつぶやこう!


Build Insider賛同企業・団体

Build Insiderは、以下の企業・団体の支援を受けて活動しています(募集概要)。

ゴールドレベル

  • 日本マイクロソフト株式会社
  • グレープシティ株式会社