Silverlight をインストールするには、ここをクリックします*
Japan変更|すべてのMicrosoft のサイト|サインイン
Visual Studio 2005
|MSDN ライブラリ|デベロッパー センター|ダウンロード情報|開発ツール製品|コミュニティ|ご意見・ご要望|サイトマップ
MSDN Home   MSDN Home
MSDN Home > Visual Studio > 技術情報 > 論理データセンター デザイナの概要、パート 2

論理データセンター デザイナの概要、パート 2

Mickey Williams
Neudesic LLC

March 2005
日本語版最終更新日 2005 年 6 月 23 日

概要 : ここでは、単純なデータセンター モデルの作成の際に動作する 論理データセンター デザイナを見ていきます。

目次

はじめに
最初のモデルの作成
   モデルへの要素の追加
   サーバーの接続
   制約のあるポリシーのモデル化
   モデルの制約および設定の定義
   ゾーン
   モデルにおけるゾーンの使用
   IIS からの設定のインポート
まとめ

関連情報:


はじめに

論理データセンター デザイナは、サーバー、ファイアウォール、通信パス、セキュリティ制約、およびデータセンターへのアプリケーション システムの配置に影響を与えるその他の要件を含む、データセンターのポリシーおよび論理構造を記述するモデルを作成するのに使用します。ここでは、デザイナを使用した単純なモデルの構築方法を見ていきます。

最初のモデルの作成

最初に作成するモデルは、次の構成の単純なデータセンターを表します。

  • プレゼンテーション層のアプリケーションをホストする IIS Web サーバー。
  • プレゼンテーション層により使用されるサービス層の Web サービスをホストする IIS Web サーバー。
  • データセンターのアプリケーションにより使用されるデータベースをホストするデータベース サーバー。

データセンターの物理的な構成には、プレゼンテーション層およびサービス層に複数のコンピュータが含まれる場合がありますが、ここでは、1 つの論理サーバーをモデル化して、これらのマシンを表します。論理モデルは、物理的なデータセンターの規模の影響を受けないビューです。ここでは、データセンター内の各サーバーをモデル化しようとはしません。その代わりに、データセンター ポリシーを、データセンターで実行されるソフトウェアを開発しているチームで共有できるよう、論理サーバーのそれぞれのタイプをモデル化します。論理サーバーと物理的なマシン間で、直接的なマッピングはありません。1 つの論理サーバーが多くの物理マシンを表す場合もあれば、複数の論理サーバーを使用して 1 つの物理サーバーを表す場合もあります。

モデルへの要素の追加

既に説明した手順で空の論理データセンター ダイアグラムを作成し、必要であればツールボックスを拡張して、次の 3 つの要素をデザイン キャンバスにドラッグします。

  • 2 つの IISWebServer 論理サーバー
  • 1 つの DatabaseServer 論理サーバー

デザイン キャンバスは図 1 のようになります。

図 1. デザイン キャンバス

他の Visual Studio デザイナと同様、要素名は [プロパティ] ウィンドウで定義します。容易にモデルを使用できるようにするため、サーバーの名前とプロパティを以下のリストに示すように変更します。

サーバー タイプ 名前
IISWebServer、プレゼンテーション層 PresentationTier
IISWebServer、サービス層 ServiceTier
DatabaseServer SqlServer

サーバーの接続

論理データセンター ダイアグラム内のサーバーおよび同様の要素には、データセンター内の通信パスの接続ポイントを表す、通信エンドポイントがあります。通信は、接続されたエンドポイント間でのみ発生します。論理データセンター モデルを使用した配置評価では、アプリケーションは、モデル内の通信パスに制限されます。通信パスを追加する必要のあるアプリケーションは、配置評価でエラーが発生します。

既に説明したように、ツールボックスには 6 つの標準的なエンドポイントがあり、これらは、サーバー側エンドポイントとクライアント側エンドポイントの 2 つのカテゴリに分けられます。デザイン キャンバスにドロップされた要素は、デフォルトで、0 個、1 個、またはそれ以上のエンドポイントを公開します。たとえば、DatabaseServer 要素は 1 つの DatabaseServerEndpoint を公開し、IISWebServer 要素は自動的に次の 2 つのエンドポイントを公開します。

  • WebSiteEndpoint : Web サーバーと通信するための受信サーバー側を定義します。
  • HTTPClientEndpoint : Web サーバーからの送信の接続を表します。

2 つのエンドポイント間の通信パスを定義するには、ALT キーを押しながら、1 つのエンドポイントを互換性のあるエンドポイントにドラッグします。PresentationTierHTTPClientEndpoint から ServiceTier 要素の WebSiteEndpoint への接続をドラッグしてください。デザイナでは、エンドポイント間のラインで示された通信パスを自動的に作成します。

通信エンドポイントは厳密にタイプ指定されているため、互換性のあるエンドポイント間で接続パスを張る必要があります。たとえば、HTTPClientEndpoint を直接 DatabaseServerEndpoint に接続することはできません。クライアントのエンドポイントは常に対応するサーバーのエンドポイントと一致させる必要があります。たとえば、ServiceTier Web サーバーを SQLServer 要素に接続しようとすると、ドロップ禁止のマウス カーソルが表示され、この 2 つの要素を接続することはできません。

ServiceTier 要素と SqlServer 要素を接続するには、まず、PresentationTier 要素に互換性のあるクライアント エンドポイントを作成する必要があります。ツールボックスから PresentationTier に、DatabaseClientEndpoint をドラッグしてください。次に、DatabaseClientEndpoint から SqlServer データベース サーバーのエンドポイントへの接続をドラッグしてください。

ここまでのモデルの状態を図 2 に示します。

図 2. 現在のモデルの状態

デザイナにより、エンドポイントには自動的にそのタイプに基づいた名前が付けられます。もっとわかりやすい名前にするには、デザイン画面でラベルを選択し、[プロパティ] ウィンドウの [Text] プロパティを変更します。

制約のあるポリシーのモデル化

前のセクションで構築したような単純なモデルは、基本的なデザインの想定をテストするのに使用することができます。配置デザイナを使用して、モデル上での配置を評価したり、システム コンポーネントが適切なサーバーを対象とし、通信ルールが適用されることを検証することができます。たとえば、直接データベースと通信するには PresentationTier 論理サーバーが必要となるアプリケーションを正常に配置できない場合もあります。

設定および制約エディタを使用すると、もっと細かくポリシーを適用することができます。モデル内の個々の要素に対し、データセンターに配置されるアプリケーションの動作および機能をさらに制限する制約を指定できます。

論理サーバー上に配置された制約は、サーバー上でホストされるアプリケーションおよびそれらの動作に影響を与えます。特定のタイプのアプリケーションの配置を許可しないようサーバーを制約したり、制約により、ASP.NET アプリケーションのロールおよびメンバーシップには AspNetSqlProvider のみを使用するよう指定するといった、アプリケーションの特定の側面を要求する場合もあります。

論理サーバーに配置された制約は、サーバーの機能をアドバタイズすることもできます。定義済みの制約を使用して、サーバーで使用可能なオペレーション システムや .NET Framework のバージョンを指定できます。これらの制約は、配置検証の際に、対応するアプリケーションの制約と共に評価されます。

エンドポイントに配置された制約は、そのエンドポイントを介して行われる通信の特徴を制限します。たとえば、HTTPClientEndpoint は、Web サービス HTTP 通信のみを許可するように制約することができます。このような制約を確立すると、分散システム デザイナの動作を、直ちに次の 2 つのように変化させます。

  1. 論理データセンター デザイナは、ポリシーに違反する接続を許可しません。Web サービス トラフィックのみを許可するよう制約された HTTP クライアント エンドポイントは、Web コンテンツ トラフィックのみをホストするよう制約された Web サーバー エンドポイントには連結できません。
  2. 配置デザイナでは、配置評価の際に制約を有効にします。2 つのサーバー間の唯一の通信パスが、Web サービス トラフィックを禁止するエンドポイントを通る場合、エンドポイントを越えて Web サービス トラフィックを渡そうとする配置済みシステムは、配置検証の際にエラーとなります。

モデルの制約および設定の定義

前のセクションで作成したモデルのポリシーを有効にするには、設定および制約エディタを使用します。まず、データセンターに配置されるシステムに対し、いくつかの基本的なポリシー要件を確立する必要があります。ここに、共通のポリシー要件のリストを示します。

  • PresentationTier および ServiceTier 論理サーバーは、ASP.NET アプリケーションのみをサポートし、外部の Web サービス、BizTalk Web サービス、または、一般的なアプリケーションをホストしません。
  • 一般的なポリシーとして、すべての Web アプリケーションは、外部のセッション状態 (StateServer または SqlServer) を使用する必要があります。

PresentationTier 論理サーバーの制約を設定するには、論理データセンター ダイアグラムで論理サーバー要素を選択することから開始します。設定および制約エディタは、通常、デザイナ キャンバスのすぐ下に表示されますが、表示されていない場合は、サーバーで右クリックし、コンテキスト メニューから [設定および制約エディタ] を選択します。図 3 に、設定および制約エディタを示します。

図 3. 設定および制約エディタ

エディタには、[制約] (Constraints) と [設定] (Settings) の 2 つの最上位ノードを持つツリー コントロールが 表示されます。[制約] (Constraints) ノードは、定義済み、または、ユーザー定義の制約を、選択したモデル要素に適用するのに使用します。定義済みの制約を選択すると、制約を構成する設定が表示されます。有効ではない制約の場合、その設定は読み取り専用で表示されます。関連するチェック ボックスをオンにして選択した制約を有効にすると、構成される設定に影響を与えるコントロールを編集することができます。ASP.NET セキュリティ の定義済みの制約を編集するのに使用される 設定および制約エディタを、図 4 に示します。

図 4. ASP.NET セキュリティ の定義済みの制約を編集するのに使用される 設定および制約エディタ

[設定] (Settings) ノードは、論理サーバー設定を構成するのに使用します。設定および制約エディタにより特定の設定をより詳細にコントロールできますが、利用可能な数多くの設定を適切に管理するのは困難な場合もあります。図 5 に、論理サーバーの DomainController 設定を編集する設定および制約エディタを示します。別の方法として、IIS 設定のインポート ウィザードを使用して、データセンター内のマシンから直接現在の設定を抽出することもできます。ウィザードは、[設定] (Settings) の下の任意のノードで右クリックし、[設定のインポート] を選択すると起動されます。

図 5.DomainController 設定の入力に使用される設定および制約エディタ

前述のポリシーを有効にするには、PresentationTier 論理サーバーを選択し、設定および制約エディタを使用して次の手順に従います。

  • [制約] (Constraints) ノードを展開して、[ExternalBizTalkWebService] チェック ボックスと [ExternalWebService] チェック ボックスをオフにします。これにより、論理サーバーが ASP.NET および静的な HTTP コンテンツのみをサポートするよう制限されます。
  • [制約] (Constraints) の下で [ASP.NETWebApplication] ノードを展開し、[ASP.NET セッション状態] チェック ボックスを選択します。図 6 のように、右側のペインで [セッション状態モード] (Session State Mode) の [StateServer] オプションと [SqlServer] オプションをチェックします。

    図 6. [セッション状態モード] (Session State Mode) の選択

ServiceTier 論理サーバーに対して、上記の手順を繰り返します。

ゾーン

実際のデータセンターまたは一般的なネットワークでは (MSDN の記事とは異なり) 、サーバー間に、単純な接続以上のものがあります。ファイアウォール、ルーター、スイッチ、その他のネットワーク要素により、ネットワークでの通信を制限するためのセキュリティおよび通信ポリシーが実施されます。ある程度は、通信エンドポイントに制約を適用することにより、この動作をモデル化できますが、このアプローチは複雑で、エラーにつながりやすくなります。ゾーンを使用するほうが良いでしょう。ゾーン は、論理サーバーおよびその他のネットワーク要素のコンテナとして機能し、それらの動作および通信設定の両方を制限します。

多くの場合、制約はゾーンに追加されて、ゾーンに含まれる要素を制限します。たとえば、Web コンテンツ アプリケーションのみを許可するゾーンを作成することができます。ゾーン内の要素と外部要素間のすべての通信は、ゾーン境界でエンドポイントを介して行われる必要があります。ここは、通常、通信オプションの限定されたサブセットを許可するよう制約されています。

論理データセンター ダイアグラムにゾーンを追加するには、ゾーンのツールボックス要素をデザイナにドラッグします。次に、これらの要素を、そのコンテナとして機能するゾーンにドラッグすることにより、論理サーバーおよびその他の要素をゾーンに追加することができます。通信パスはゾーン内では容易に確立できますが、ゾーン外の要素との直接の通信はできません。ゾーン境界を越えてエンドポイントをドラッグしようとすると、すべてのターゲット エンドポイントの上で、ドロップ禁止のマウス カーソルが表示されます。ゾーンを渡る接続は、ゾーン エンドポイントを介して行われる必要があります。

モデルにおけるゾーンの使用

モデルをもう少し現実的にするため、前のセクションでモデル化したデータセンターに 2 つのゾーンを追加してみましょう。最初のゾーンは、プレゼンテーション層を囲み、これにより、ネットワークのこの部分を HTTP 以外のすべての通信プロトコルから分離します。2 つ目のゾーンは、サービス層とデータベース コンピュータを保持し、最初のゾーンからのトラフィックを除くすべての外部の通信を制限します。次の手順に従います。

  1. まず、ツールボックスから ゾーン要素をドラッグし、デザイン画面にドロップします。ダイアグラムの要素には Z オーダーがあり、そのため、新しいゾーン要素により、要素が下に隠れる場合があります。
  2. PresentationTier 論理サーバーをゾーン要素にドラッグするか、論理サーバーを右クリックして、コンテキスト メニューから [ゾーンへ移動] を選択します。ゾーン要素により含まれる要素の通信が切り離されるため、論理サーバーがゾーンに移動されると、すべての通信パスが削除されます。
  3. ゾーン境界と PresentationTier 論理サーバー間の新しい通信パスをドラッグします。別の方法として、エンドポイントのコンテキスト メニューから接続パスを設定することもできます。
  4. 設定および制約エディタを使用して、ゾーンの通信エンドポイントを HTTP プロトコルのみに制限します。インバウンド ゾーン エンドポイントの場合は、WebSiteEndpoint 以外のすべての制約を解除します。アウトバウンド ゾーン エンドポイントの場合は、HttpClientEndpoint 以外のすべての制約を解除します。
  5. ゾーンの [名前] プロパティを PerimeterFirewall に変更します。

同様のゾーンを作成して、データセンターのイントラネットを表すことができます。

  1. 新しいゾーン要素をデザイン画面にドラッグし、[名前] プロパティを DatacenterIntranet に変更します。
  2. 残りの論理サーバーをゾーンにドラッグし、ゾーン内の 2 つの論理サーバー間の通信パスを再度作成します。
  3. ゾーン境界から ServiceTier 論理サーバーまでの新しい受信接続をドラッグします。
  4. 設定および制約エディタを使用して、ゾーンの受信側の通信エンドポイントを HTTP プロトコルのみに制限します。
  5. 最後に、PerimeterFirewall ゾーンからのアウトバウンド ゾーン エンドポイントを、DatacenterIntranet ゾーンのインバウンド ゾーン エンドポイントに接続します。

ここまでのモデルの状態を図 7 に示します。

図 7. 現在のモデルの状態

IIS からの設定のインポート

図 7 のモデルのように基本的な論理モデルは、Visual Studio Team Edition for Software Architects を使用して手動で作成できますが、手動で記述を作成するには、いくつかの問題があります。手動でモデルを作成する作業は、特に大きなデータセンターでは、困難となる場合があります。データセンターが複雑になるほど、モデル化の作業は困難となります。複雑なデータセンターでは、手動でモデル化するのは単に非現実的である場合もあります。もう 1 つの問題は正確さです。手動でモデルに情報を加えるほど、簡単に不正確なデータ モデルが作成されてしまいます。

幸いなことに、IIS から直接論理モデルをインポートすることができます (将来のリリースでは、直接インポートできる要素が増加する予定です)。モデルに直接インポートすることで、必要となる手作業の量が減り、作業が単純化され、より正確なモデルとなります。

たとえば、Windows 2003 Server がインストールされ、ネットワークの外周が強化された構成で IIS を実行している場合、論理サーバーのコンテキスト メニューから [設定のインポート] を選択することにより、特定のサーバーの現在の設定をインポートできます。

インポート プロセスが完了したら、直ちにこれを使用することができ、インポートされた設定を基に暗黙的な制約が発生します。要素の名前を変更し、新しいモデルで再利用できるよう、これをツールボックスに保存することもできます。

まとめ

Visual Studio Team Edition for Software Architects の主要なコンポーネント、論理データセンター デザイナを使用することにより、データセンターの論理モデルを作成します。これらのモデルを、システム アーキテクトおよびインフラストラクチャ アーキテクトが共有できるので、要件や期待のやりとりに、共通のツール セットを使用することができます。


Mickey Williams 氏は、南カリフォルニアにおけるマイクロソフトの代表的な .NET プロフェッショナル サービス パートナーの 1 つである Neudesic の、プリンシパル コンサルタントです。彼は、さまざまなプラットフォームでのミッションクリティカルなアプリケーションの構築を経験しており、Windows プログラミングに関する 9 冊の本を執筆または共同執筆しています。彼の .NET に関わる業績は、最初のパブリック リリースにまでさかのぼり、今日では、.NET Framwork を活用したミッションクリティカルなアプリケーション (特に、ASP.NET、XML Web サービス、およびスマート クライアントの分野) の設計および開発を専門としています。


Microsoft