Windows Azure Web サイトのスケール アップとスケール アウト
このポストは、7 月 11 日に Scaling Up and Scaling Out in Windows Azure Web Sites の翻訳です。
編集メモ : 今回は、Windows Azure Web サイト チームでプログラム マネージャーを務める Byron Tardif の投稿をご紹介します。
新規 Web プロジェクト、あるいは一般の Web サイトやアプリケーションの開発に着手する際、最初は小規模なものから始め、徐々に拡大していくということが多いのではないでしょうか。また、概念実証の初期段階でも、新しい Web ファームにリソースを費やそうとは考えないはずです。しかし、いざ本格的な運用が決定すれば、個人用のサーバーで大規模なマーケティング キャンペーンを実施しようとは思わないのではないでしょうか。その点、クラウド上の Windows Azure Web サイトには、開発と展開の両方が可能というメリットがあります。
この記事では、限られた予算と期間の中で、開発、テスト、運用のすべてを行う方法をご紹介します。
Windows Azure Web サイトの標準、無料、共有の各モードについて
Web サイトを展開するうえで最も重要な考慮事項は、サイトに適切な価格帯を選ぶことです。開発とテストのサイクルを完了したサイトは、企業の広告 Web サイトや、重要な新規デジタル マーケティング キャンペーン、基幹業務アプリケーションとして使用されます。このため、予算を考慮しつつ、ビジネス ニーズに合わせてサイトの可用性や応答性を確保しなければなりません。
価格帯を選定する際には、さまざまな要素を考慮する必要があります。その例としては、下記のようなものが挙げられます。
- ホスティングを予定しているサイトの数。 たとえば、デジタル マーケティング キャンペーンの場合には、使用中の各ソーシャル メディア サービスのページ、および各ターゲット セグメント向けのランディング ページがそれぞれ必要となります。
- サイトの理想的なアクセス数やトラフィック レベルの変更時期。 基幹業務アプリケーションを使用する従業員数、Twitter のフォロワー数、キャンペーン サイトに対する Facebook の「いいね!」の数を基に予想します。季節的な要因、およびソーシャル メディアでのアクティビティや広告などの需要創出活動によって、トラフィックが変化する可能性もあります。
- 消費されるリソース (CPU、メモリ、帯域幅)。
Windows Azure Web サイトで得られる大きなメリットの 1 つは、Web アプリケーションや Web サイトの運用を開始するときに、上記のことを考慮する必要がないことです。管理ポータルからスケール オプションを使用すると、業務目標やユーザーのニーズに合わせて、運用を停止することなくサイトのスケールを変更できます。
Windows Azure Web サイトのサイトモード
Windows Azure Web サイト (WAWS) には、標準、無料、共有の 3 つのモードがあります。
標準、共有、無料の各モードで提供されるクォータでは、サイトで使用可能なリソース数やスケール機能が異なります。下の表は、それぞれのクォータの違いをまとめたものです。
|
標準 (旧称「占有」) |
共有 |
無料 |
サイト数 |
サブ地域ごとに最大 500 サイト |
最大 100 サイト |
サブ地域ごとに最大 10 サイト |
スケール アウト |
最大 10 インスタンス |
最大 6 インスタンス |
使用不可 |
スケール アップ |
S サイズの仮想マシン (CPU 1.6 GHz、RAM 1.75 GB) M サイズの仮想マシン (CPU 1.6 GHz x 2、RAM 3.5 GB) L サイズの仮想マシン (CPU 1.6 GHz x 4、RAM 7 GB) |
使用不可 共有ホスティング環境 |
使用不可 共有ホスティング環境 |
ストレージ容量 |
10 GB (サブ地域ごとの全サイトで共有) |
1 GB (サブ地域ごとの全サイトで共有) |
1 GB (サブ地域ごとの全サイトで共有) |
CPU |
選択されたスケール アップ オプションに準じて全リソースの使用が可能 |
4 時間/日 運用時間: サイトごとに 5 分あたり 2.5 分 |
1 時間/日 運用時間: サイトごとに 5 分あたり 2.5 分 サブ地域ごとの全サイトで共有 |
メモリ |
選択されたスケール アップ オプションに準じて全リソースの使用が可能 |
サイトごとに 512 MB 1 回あたりの運用時間は 1 時間 |
1 つのサブ地域あたりの全サイトで 1 GB 1 回あたりの運用時間は 1 時間 |
帯域幅 |
受信: 無制限 送信: Azure の帯域幅料金 (5GB/月以上の場合) |
受信: 無制限 送信: Azure の帯域幅料金 (5GB/月以上の場合) |
受信: 無制限 送信: 165 MB/日 (5GB/月) |
SLA |
月間 99.9% |
プレビューとしてサービス提供 |
なし |
標準モードとサービスレベルアグリーメント (SLA)
標準モードは、他の Windows Azure Web サイトのモードと異なり、専用インスタンス上で実行されます。また、CPU 使用も無制限で、ストレージ容量は 3 つのモードの中では最大です。詳細については、クォータの違いをまとめた上記の表をご覧ください。
標準モードでは下記のような重要な機能が使用できます。
- 無制限のデータ送信帯域幅 – 5 GB までは無料で送信できます。超過分は従量課金でご使用いただけます。
- DNS 名のカスタマイズ – DNS のカスタマイズは、無料モードでは使用できません。標準モードでは CNAME および A レコードが使用できます。
標準モードでは、1 インスタンスのみのサイトに対しても、SLA (サービス レベル アグリーメント) により月間 99.9% という企業レベルの可用性が保証されます。Windows Azure Web サイトでは、運用を停止せずにプロビジョニングする機能を含む設計上の理由により、1 インスタンスのみのサイトでもこの SLA を保証しています。プロビジョニングはバックグラウンドで実行され、サイトを変更する必要はありません。また、サイトへアクセスしたユーザーに対して透過的に実行されます。これにより、スケーリングにおける可用性の問題を回避しています。
共有モードと無料モード
共有モードと無料モードでは、標準モードで利用できるようなスケーリングの柔軟性はなく、一部に重要な制限があります。
無料モードは、他の無料モードや共有モードのサイトと同じコンピューティング リソースで実行されます。また、一定のクォータ期間のサイト (およびサブスクリプション内の他の無料サイト) の CPU 使用時間が制限されています。使用時間が制限に達した場合、そのサイトおよびサブスクリプション内にある他の無料モードのサイトで、次のクォータ期間までコンテンツおよびデータのサービスが停止されます。また、無料モードではサイトがクライアントへサービスを提供する際のデータ量 (データ送信) の制限があります。
共有モードでは、その名のとおり共有のコンピューティング リソースが使用され、前述の表で示されているように、無料モードよりは高い値に設定されていますが、CPU の使用は制限されています。共有モードのデータ送信制限は 5 GB で、超過分は従量課金制での利用になります。
上記の制限により無料モードや共有モードが運用環境に最適な選択ではない可能性がありますが、どちらも使い方によっては有用です。無料モードは、Windows Azure Web サイトの試用や学習などの限定的なケースに有効で、発行の構成方法、Visual Studio への接続、TFS や Git のような展開ツールを使用した展開などの習得に適しています。共有モードでは、無料モードよりも一部の機能が優れているので、負荷の制限や管理が適用される中でのサイトの展開やテストがしやすくなっています。運用環境でより厳しい条件が求められる場合は、さらに上位の機能や可用性を提供する標準モードをご利用ください。
スケーリング操作、お客様のコード、ユーザーのセッションとエクスペリエンス
サイトのスケール アップやスケール アウトを実行するとユーザー エクスペリエンスが改善されますが、それ以外に既存のユーザー セッションがスケーリング操作によって影響を受けることはありません。
また、各操作は通常は数秒ほどの短時間で実行されます。この際、サイトのコード変更や再展開などは不要です。
次に、「スケール アップ」と「スケール アウト」の意味についてご説明します。
Windows Azure Web サイトにおけるダイナミックなスケーリング
Windows Azure Web サイトでは、管理ポータルから Web サイトのスケーリングを実行する方法が複数あります。サイト管理に Microsoft Visual Studio 2012 を使用している場合にもこの操作は実行できます。詳細については、マイクロソフト サービスのドキュメントをご覧ください。
スケール アップ
クラウド環境の Azure Web サイトでスケール アップ操作を実行することは、クラウド環境ではない Web サイトをより大規模な物理サーバーに移動するのと同じことです。したがってスケール アップ操作は、サイトがクォータ制限に達し、既存のモードやオプションが不適切になりつつある場合に有効です。さらに、ほぼすべてのサイトで、スケール アップの際に複数のインスタンス間でデータの一貫性が維持されます。
以下に Windows Azure Web サイトでのスケール アップ操作の例を 2 つご紹介します。
- サイトのモード変更 : 標準モードを選択した場合、Web サイトの運用に CPU 使用のクォータは適用されません。また、データ送信については、月 5 GB までは無料で利用できますが、それを超過すると料金が発生します。それ以外に制限はありません。
- 標準モードのインスタンスサイズの決定 : Windows Azure Web サイトの標準モードでは、インスタンスのサイズを S、M、L から選択できます。これは、CPU コア数が多くメモリ容量が大きい、より大規模な物理サーバーへの移行に相当するスケール アップ操作です。
- S サイズ: コア数 1、メモリ容量 1.75 GB
- M サイズ: コア数 2、メモリ容量 3.5 GB
- L サイズ: コア数 4、メモリ容量 7 GB
スケールアウト
スケール アウト操作は、Web サイトのコピーを複数個作成し、ロード バランサーを導入して負荷を分散させるのと同じことです。Windows Azure Web サイトで Web サイトのスケール アウトを実施する際に、ロード バランサーの構成を個別に行う必要はありません。これは、既にプラットフォームに組み込まれています。
Windows Azure Web サイトで Web サイトをスケール アウトする場合、[INSTANCE COUNT] スライダーを使用してインスタンス数を変更します。共有モードでは 1 ~ 6、予約モードでは 1 ~ 10 に設定できます。これにより、実行中の Web サイトのコピーが複数個作成され、受信要求に応じて、全インスタンスに負荷分散の構成を適用します。
スケール アウト操作を活用するには、サイトがマルチインスタンス対応である必要があります。マルチインスタンス対応のサイトの構築方法の詳細については、この記事では説明しませんが、以下のページをはじめとする、.NET 言語に関する MSDN の記事を参考にしてください。https://msdn.microsoft.com/ja-jp/library/3e8s7xdd.aspx (機械翻訳)
Web サイトに対して、スケール アップとスケール アウトを組み合わせて、ハイブリッドなスケーリングを行うこともできます。マルチインスタンスのサイトでの競合は、このシナリオの場合でも同様に適用されます。
Windows Azure PowerShell を使用した自動および手動でのスケーリング
ここまで、Windows Azure Web サイトでのスケール アップとスケール アウトの概念について、管理ポータルから手動で実行する場合を想定して説明してきましたが、Visual Studio でも同様に手動で設定できます。
今回、Windows Azure Web サイトに自動スケーリング機能が追加され、スケール アップおよびスケール アウトの設定を、Web サイトのニーズに応じて自動的に変更できるようになりました。
さらに、サイトやサブスクリプションのさまざまな管理機能と同様に、Windows Azure PowerShell で一部のスケーリング操作を実行することができます。
まとめ
Windows Azure Web サイトを使用すると、低コストまたは ”無償” で Web サイトや Web アプリケーションの開発、展開、テストを実施できます。また、そのサイトをより運用環境に近い構成へシームレスにスケーリングし、その後も経済的な方法でスケーリングを実施することが可能です。
この記事では Web サイトのスケール アップとスケール アウトを中心に説明しましたが、サイトは、データベース、データ フィード、ストレージ、サード パーティの Web API など、他のコンポーネントを使用する複雑なアプリケーションの一部に過ぎない場合があるので、注意が必要です。コンポーネントにはそれぞれスケール機能が備えられており、スケーリング操作を評価する際に考慮に入れる必要があります。
Web サイトのスケーリングは、当然コストにも影響します。Azure の料金計算ツールを使用すると、見積もりや一定のスケーリング操作による予算への影響を簡単に計算できます。ぜひご利用ください。