Windows Azure プラットフォーム
更新日: 2012年2月
以降のセクションで示す情報を確認して、Windows Azure プラットフォームへの理解をさらに深めることができます。
Windows Azure プラットフォームの内容について学習する前に、Windows Azure プラットフォームは開発者にとってどのようなメリットがあるかを知る必要があります。
-
コーディングにかける時間を増やし、ハードウェアの管理にかける時間を減らすことができる。Windows Azure プラットフォームによって得られるものは、コンピューター、ラックのスペース、スイッチ、および接続です。従来の内部設置型の開発モデルとは異なり、インフラストラクチャのハードウェアの管理にかかる時間が少なくなります。Windows Azure プラットフォームを使用すると、より多くの時間をアプリケーションの開発に費やすことができます。
-
コーディングにかける時間を増やし、アプリケーションの配置にかける時間を減らすことができる。このプラットフォームでは、アプリケーションの配置と構成のプロセスが自動化されます。Visual Studio から、コマンド ラインから、または Windows Azure Management Portal から、直接配置することができます。従来の内部設置型の開発モデルとは異なり、コンピューターへのリモート アクセス、ファイルの FTP 転送、またはコンピューター間でのアプリケーションの同期が不要です。これにより、さらに多くの時間をアプリケーションの開発に費やすことができます。
-
作業を個別に分離できる。アプリケーションを Windows Azure プラットフォームに配置すると、そのアプリケーションは自分で開発した他のアプリケーションから分離されます。また、他の組織からも分離されます。
-
アプリケーションを拡張および縮小することができる。大半のアプリケーションは、多数のユーザーおよび変化するトラフィック ピークに対応する必要があります。ソーシャル ネットワーキング アプリケーションの場合、拡張および縮小の必要性は重大です。ただし、従来の内部設置型の開発モデルでは、アプリケーションを簡単に拡張および縮小することはできません。これに対して、Windows Azure プラットフォームは特に負荷の変化に対応できるように構築されました。ハードウェアの購入、設置、管理、取り外しを行う必要がなく、すばやく簡単にインスタンスまたはアプリケーションを追加したり、インスタンスを削除したりできます。
-
アプリケーションを常時使用できる。従来の内部設置型の開発モデルでは、アプリケーションのアップグレード、OS パッチの適用、ハードウェアのアップグレードなどを行うには、通常はアプリケーションをオフラインにする必要があります。一方、Windows Azure プログラミング モデルは、ソフトウェアやハードウェアのアップグレードを行う場合もアプリケーションを継続的に使用できるように設計されています。
Windows Azure プラットフォームは、マイクロソフトのデータ センターでホストされているインターネット規模のコンピューティングとサービスのプラットフォームです。Windows Azure プラットフォームには、Windows Azure の基盤レイヤーと共に一連の開発者用サービスが含まれており、個別に、または組み合わせて使用できます。次の図に、Windows Azure プラットフォームを構成する製品とコンポーネントを示します。
次の表では、Windows Azure プラットフォームを構成する製品とコンポーネントについて説明します。
| コンポーネント | 目的 | 詳細情報 |
|---|---|---|
|
ローカル開発環境 |
.NET、Node.js、Java、および PHP 向けの Windows Azure SDK には、アプリケーションのパッケージ化、テスト、および配置に使用できる一般的なツールとリソースが用意されています。 Windows Azure SDK for .NET には Windows Azure Tools for Microsoft Visual Studio が含まれています。これにより Visual Studio が拡張され、Windows Azure のスケーラブルな Web アプリケーションと Web サービスの作成、ビルド、デバッグ、実行、およびパッケージ化を行うことができます。 |
|
|
Windows Azure コンピューティング |
Web ロール、ワーカー ロール、および VM ロールを使用できます。Windows Azure アプリケーションでは、1 つ以上のロールの種類を定義する必要があります。
|
|
|
Windows Azure ストレージ |
Windows Azure ストレージ サービスには、Windows Azure のバイナリおよびテキスト データ、メッセージ、および構造化されたデータにストレージが用意されています。 |
|
|
Microsoft SQL Azure |
Microsoft SQL Azure には、リレーショナル データベース サービスが用意されています。SQL Azure を使用すると、リレーショナル データベース ソリューションを簡単に準備して配置できます。管理しやすさ、高可用性、スケーラビリティ、使い慣れた開発モデル、リレーショナル データ モデルなどの利点があります。 |
|
|
Windows Azure Connect |
Windows Azure Connect では、単純なユーザー インターフェイスを使用して、組織のネットワーク上のコンピューターまたは仮想マシン (VM) と Windows Azure で実行中のロール インスタンスの間の IPsec 保護接続を構成することができます。 |
|
|
Windows Azure サービス バス |
Windows Azure サービス バスは、広範囲の通信、大規模なイベントの分散、名前付け、およびサービス公開に対して幅広く活用できる、セキュリティ保護されたホステッド インフラストラクチャです。サービス バスは、Windows Communication Foundation (WCF) などのサービス エンドポイント (REST エンドポイントを含む) 向けの接続オプションとなります。 |
|
|
Windows Azure アクセス制御 |
Windows Azure アクセス制御サービス (ACS) は、コードから認証および承認の機能を除外しつつ、ユーザーが Web アプリケーションおよびサービスにアクセスする際の認証および承認を簡単に行うことができるようにするクラウドベース サービスです。 |
|
|
Windows Azure コンテンツ配信ネットワーク |
Windows Azure コンテンツ配信ネットワーク (CDN) では、Windows Azure BLOB とコンピューティング インスタンスの静的コンテンツ出力を戦略的に配置された場所にキャッシュし、ユーザーへのコンテンツ配信用に最大帯域幅を使用できます。 |
|
|
Windows Azure キャッシュ |
Windows Azure キャッシュを利用して、クラウド内に簡単にキャッシュを準備でき、キャッシュが効果的である任意のアプリケーションまたはサービスからそのキャッシュを利用することができます。非常に一般的なシナリオとして、ASP.NET でのセッションの状態および出力のキャッシュがあります。キャッシュを使用して他のバックエンド ソースからの情報を一時的に格納することで、パフォーマンスが向上します。 |
|
|
Windows Azure Marketplace |
Windows Azure Marketplace は、開発者とインフォメーション ワーカーが完成した SaaS アプリケーションと Windows Azure のプレミアム データ サブスクリプションを簡単に検索、購入、および管理できるグローバル オンライン マーケットです。 |
|
|
Windows Azure Management Portal |
Windows Azure 管理ポータルからは、ホステッド サービスの配置と管理に必要なタスクにアクセスできるほか、ステータス情報がすぐわかるように表示されるため、配置とアカウントの全般的なステータスを把握できます。管理ポータルでは、Windows Azure 配置のコンポーネントが分類されて表示されます。ポータルの情報は定期的に更新され、見つけやすくわかりやすいという特長があります。 |
|
メモ |
|---|
| Windows Azure プラットフォームは定期的に拡張されます。新しいサービスが利用できるようになったときに、その詳細について確認するには、http://www.windowsazure.com を参照してください。 |
Windows Azure プラットフォームでアプリケーションを開発する方法と従来のアプリケーション開発方法とはどのような点が違うのでしょうか。相違点を理解するために、まず、類似点について説明します。
Windows Azure プラットフォーム アプリケーションと内部設置型アプリケーションの開発手法の類似点:
-
ツールが類似している。Visual Studio または Java を使用してアプリケーションを開発できます。
-
言語が類似している。ASP.NET は、Windows Azure アプリケーションで最も一般的に使用される開発言語です。Windows Azure プラットフォームでは、ASP.NET を幅広くサポートしています。
-
IIS をサポートする。Windows Azure は、IIS を完全にサポートします。
Windows Azure プラットフォームでは、次のプログラミング ガイドラインで示されるようなアプリケーション モデルを想定しています。Windows Azure プラットフォームの利点を最大限に活用するには、次のガイドラインに従って動作するようにアプリケーションを設計する必要があります。
| Windows Azure プログラミング モデル ガイドライン | 開発に関する考慮事項 |
|---|---|
|
Windows Azure アプリケーションは 1 つまたは複数のロールで構成される。 |
アプリケーションには、Windows Azure Web ロール、ワーカー ロール、または VM ロールを含めます。Windows Azure アプリケーションでのロールの使用についての詳細情報:http://msdn.microsoft.com/ja-jp/library/windowsazure/gg433030.aspx |
|
Windows Azure アプリケーションでは、各ロールの複数のインスタンスが実行される。 |
各ロールの複数のインスタンスを使用するようにアプリケーションを構成します。ロールの構成についての詳細情報:http://msdn.microsoft.com/ja-jp/library/windowsazure/ee871996.aspx |
|
Windows Azure アプリケーションは、どのロール インスタンスが失敗した場合でも適切に動作する。 |
アプリケーションの各レベルで冗長性を構築します。Windows Azure 向けのスケーラブルなアプリケーションの構築についての詳細情報:http://msdn.microsoft.com/ja-jp/library/windowsazure/ff966483.aspx ステートレスになるようにアプリケーションを開発する。クライアント側の Cookie またはセッション サーバーを使用して状態を維持する方法についての詳細情報:http://msdn.microsoft.com/ja-jp/library/windowsazure/ff966485.aspx |
ローカル リソースを使用した Windows Azure アプリケーションの開発とテストが完了したら、ステージング環境で配置とテストを実行できます。Windows Azure ホステッド サービスの課金のしくみを理解することは、アプリケーションをコスト効率よくテストして配置するうえで非常に重要です。Windows Azure プラットフォーム向け料金設定の詳細については、「Windows Azure 料金設定の概要 (このページは英語の場合があります)」を参照してください。
アプリケーションをホステッド サービスとして Windows Azure に配置するには、サブスクリプションが必要です。サブスクリプションは、Microsoft Live ID アカウントに関連しています。サブスクリプションを作成するには、月単位で請求額が変わる支払いに使用できるクレジット カードを用意する必要があります。場合によっては、請求を請求書として受け取ることもできます。
最初に重要なことは、自分のホステッド サービスが配置されたら課金されるということです。ホステッド サービスがステージング環境と運用環境のどちらに配置されたか、実行中か中断中かにかかわらず、サービスに対して課金されます。その理由は、サービスが配置された以上、VM を使用するためです。予約されている VM を別の顧客が使用することはできません。
Windows Azure は使用量に応じて課金されます。
-
コンピューティング インスタンス
-
ストレージ
-
ストレージ トランザクション
-
コンテンツ配信ネットワーク転送
-
データセンターに対するデータ転送 (送受信)
-
SQL Azure データベース
-
アクセス制御トランザクション
コンピューティング インスタンスとは、仮想マシンのことです。コンピューティング インスタンスには、XS (Extra Small)、S (Small)、M (Medium)、L (Large)、および XL (Extra Large) の 5 種類のサイズがあります。最新のサービスの詳細については、「Windows Azure Platform のプランとプロモーション (このページは英語の場合があります)」を参照してください。MSDN サブスクリプション会員の方には、追加のサービスが提供されます。詳細については、「Windows Azure Platform の MSDN サブスクリプション会員向け特典」を参照してください。
メモ |
|---|
| MSDN サブスクリプション会員向けコンピューティング時間プランは XS インスタンスには使用できません。 |
Web ロールとワーカー ロールの VM サイズで使用できる各オプションを次の表に示します。
| VM サイズ | CPU コア | メモリ | ローカル ストレージ リソースのディスク領域 | 帯域幅の割り当て (ピーク Mbps) |
|---|---|---|---|---|
|
XS |
共有 |
768 MB |
20 GB |
5 |
|
S |
1 |
1.75 GB |
225 GB (VM ロールは 165 GB) |
100 |
|
中 |
2 |
3.5 GB |
490 GB (VM ロールは 340 GB) |
200 |
|
L |
4 |
7 GB |
1,000 GB (VM ロールは 850 GB) |
400 |
|
XL |
8 |
14 GB |
2,040 GB (VM ロールは 1,890 GB) |
800 |
メモ |
|---|
| VM ロールは、Web ロールやワーカー ロールと比べて、ローカル ストレージ リソースのディスク領域が小さくなります。これは、オペレーティング システムの分、必要なディスク領域が多くなるためです。 |
ホステッド サービスをステージング環境または運用環境に配置すると、課金が開始されます。課金単位は 1 時間であり、1 時間未満の端数は 1 時間に切り上げて課金されます。XS コンピューティング インスタンスは、テストや非常に小さいタスク用に低価格になっています。料金設定の詳細については、料金設定の概要ページを参照してください。
コンピューティング時間は、ホステッド サービスが配置された時間数に、配置に組み込まれた S コンピューティング インスタンス相当数を掛けた値に基づいて課金されます。端数のコンピューティング インスタンス時間 (変換前) は、1 つのインスタンスが配置された時間ごとに 1 時間分のコンピューティング時間として課金されます。たとえば、S コンピューティング インスタンスを 10:50 AM に配置し、その配置を 11:10 AM に削除した場合、2 時間分の S コンピューティング時間が課金されます。内訳は 10:50 AM から 11:00 AM までの使用で 1 時間分、11:00 AM から 11:10 AM までの使用でさらに 1 時間分です。その他のサイズのコンピューティング インスタンスを配置した場合、時間数は配置したサイズに応じて 2、4、または 8 を掛けて S インスタンス相当時間数に変換されます。また、配置を削除してサービスを再配置するたびに、配置したコンピューティング インスタンスごとに少なくとも 1 時間分が課金されます。ただし、インスタンスを配置した時間が 5 分未満であり、同じ時間単位内であれば、課金対象になりません。ホステッド サービスの運用コストの計算については、「Windows Azure 料金設定計算ツール (このページは英語の場合があります)」を参照してください。
ワーカー ロール コンポーネントと Web ロール コンポーネントが存在するホステッド サービスを配置した場合、コンピューティング インスタンスを 2 つ作成する必要があり、各インスタンスに対して課金されます。もう 1 つの考慮事項は、SLA アップタイム保証を受けるには、各ロールについて少なくとも 2 つのインスタンスを配置する必要があることです。
Windows Azure ストレージ サービスは、使用量モデルに基づきます。Windows Azure ストレージまたは SQL Azure のどちらかのストレージを使用する場合はコストが発生するので考慮する必要があります。
Windows Azure BLOB を使用する場合、テーブルとキューのストレージ コストの構成要素として次のものが考えられます。
-
帯域幅 - ストレージ アカウントをホストしている場所との間で送受信するデータの量。アプリケーションは格納されたデータについてコンピューティングを実行する必要があるため、ホステッド サービスはそのストレージと同じ場所に配置できるようになっています。これにより、同じ場所で行われるコンピューティングとストレージの間の帯域幅は無料になり、格納場所の外部からストレージにアクセスした場合にのみ帯域幅に課金されます。
-
トランザクション - ストレージ アカウントに対して実行された要求の件数。ストレージ サービスに対する個別の BLOB、テーブル、およびキュー REST 要求は、課金対象のトランザクションとなる可能性があります。したがって、アプリケーションがストレージ サービスに送信する要求の頻度と数を抑えることで、トランザクション コストを抑制することができます。受信した各要求は、その要求を処理できるかどうかとその結果に基づいて分析され、課金対象かどうかが分類されます。
-
ストレージ容量 - 永続的に格納されるデータの量。課金対象のストレージ容量を算出するため、格納対象 (BLOB、エンティティ、およびメッセージ) のサイズと、アプリケーションおよびシステムのメタデータが計算されます。
コンテンツ配信ネットワーク (CDN) 転送
Windows Azure CDN は Windows Azure BLOB をキャッシュすることで、コンテンツをユーザーに配信するときの帯域幅を最大限に確保します。この CDN 配信は、どのストレージ アカウントについても管理ポータルから有効にすることができます。CDN を使用するメリットは、Windows Azure BLOB サービスに格納されたコンテンツのソースから遠く離れた場所にいるユーザーのパフォーマンスとユーザー エクスペリエンスが向上することです。
データセンターに対するデータ転送 (送受信)
重要 |
|---|
| 2011 年 7 月 1 日以降に始まる課金期間は、ピーク時とオフピーク時の両方ですべての受信データ転送が無料です。 |
データセンターとの間で送受信するデータ転送とは、外部ユーザーとアプリケーションとの間のトラフィックのことです。たとえば、ユーザーのブラウザーと Web サイトとの間の Web トラフィックです。
Windows Azure ストレージのコスト見積もりの詳細については、Windows Azure チーム ブログのエントリの「Windows Azure ストレージの課金 - 帯域幅、トランザクション、および容量 (このページは英語の場合があります)」を参照してください。
アクセス制御トランザクション
サービス バスとアクセス制御を使用すると、Windows Azure のホステッド サービスを内部設置型システムと統合できます。サービス バスでは、ファイアウォールまたはネットワークの境界全体でさまざまな通信パターンを使用して、サービスとアプリケーションとの間に疎結合接続を確立できます。アクセス制御サービスは、REST Web サービスでクレームベースの統合アクセス制御を実現します。これらのサービスを使用して、分散型または一括総合型のアプリケーションとサービスをビルドすることができます。
SQL Azure ストレージ
SQL Azure ストレージでは、最大 50 GB のデータベースを割り当てることができます。
Windows Azure ストレージ向け請求レートの詳細については、「Windows Azure 料金設定計算ツール (このページは英語の場合があります)」を参照してください。
コストの計算例については、「Windows Azure アーキテクチャ ガイダンス、パート 1: クラウドへのアプリケーションの移行: 必要なコスト (このページは英語の場合があります)」を参照してください。
参照
メモ
重要