SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Visual Studio Team System 2008 Architecture Editionを使ってみよう

論理データセンターデザイナでインフラモデルを作ろう

Visual Studio Team System 2008 Architecture Editionを使ってみよう(3)

  • X ポスト
  • このエントリーをはてなブックマークに追加

ネットワーク境界を意識したモデルを作成してみよう

 図5に示していたサーバーの構成は非常にシンプルです。ある特定の役割をもった論理サーバーとその接続を定義しただけでした。アプリケーションを配置できる場所を定義するという意味ではこれでも十分かもしれません。しかし、インフラを考えるときには、ネットワーク境界も重要な要素の一つです。そこで、今度は、もう少し複雑な、ネットワーク境界を意識したモデリングをしてみましょう。

例題)インフラの確認

 図5を作る前提として、同じ種類の役割は同じサーバーに置くこととしていました。今回は全部別々にしてみたいと思います。そこで、アプリケーションを使う前提を次のようにします。

  1. Windowsアプリは企業ネットワークの外側に配置する
  2. Webサービスへのアクセスはインターネットを通して行われる
  3. データベースはデータを保護するため安全なネットワーク上に配置する

 このような要件を満たすためには、WebサービスはDMZ(DeMilitarized Zone:非武装地帯)と呼ばれるゾーンに、データベースはより安全なゾーンに配置する構成が思いつきます。これを図にすると図11のようになります。

図11:少し複雑な例題インフラ
図11:少し複雑な例題インフラ

論理データセンターダイアグラムの作成

 では、新しい例題をモデリングしてみましょう。先ほどと同様に新しい論理データセンターデザインを作成してください。デザイナが開いたらツールボックスの[論理サーバー]から「Zone」を選択してドラッグ&ドロップします。この「Zone」はネットワーク境界を表すためのアイテムです。図11を確認するとネットワーク境界が3つ存在しているので、Zoneを3つ配置します。3つのZoneを配置して、それぞれの名前を変更したのが図12の状態です。

図12:Zoneを配置した状態
図12:Zoneを配置した状態

 Zoneにも今までと同様にエンドポイントという考え方があります。ただし、プロバイダエンドポイント、コンシューマエンドポイントという考え方はなく、通信の方向だけを規定します。図13に示す赤枠で囲まれた部分がこれで、ゾーンの左側にある、ゾーンの内側に向かって矢印が向いているものが外部からの接続を受け付ける部分で、ゾーンの右側にある、ゾーンの外側に向かって矢印が向いているものが外部への接続を行う部分を示しています。これらを利用してネットワークの経路を接続し、不要なエンドポイントを削除すると図14のようになります。

図13:Zoneのエンドポイント
図13:Zoneのエンドポイント
図14:Zoneの接続
図14:Zoneの接続

 次は、このZoneの中に論理サーバーの配置を行います。図11を基に必要な論理サーバーをすべて配置すると図15のようになります。

図15:Zone内に論理サーバーを配置した状態
図15:Zone内に論理サーバーを配置した状態

Zoneと論理サーバーの接続の設定

 最後に論理サーバーの接続を行います。同じZone内にある論理サーバー同士は今までどおりのやり方で簡単に接続することができます。しかし、異なるZoneにある論理サーバーに接続するためには、以下の経路を作成する必要があります。

  1. クライアントとなる論理サーバーからそのZoneの出口までの接続
  2. クライアントとなる論理サーバーを含むZoneからサーバーとなる論理サーバーを含むZoneまでの接続(Zoneの接続で作成済み)
  3. サーバーとなる論理サーバーを含むZoneの入り口から対象の論理サーバーまでの接続

 手順1の接続を作成するためには接続先論理サーバーのプロバイダエンドポイントに対応したコンシューマエンドポイントを自分で追加します。この対応は表1のようになります。

プロバイダエンドポイントとコンシューマエンドポイントの対応
プロバイダエンドポイント コンシューマエンドポイント
WebSiteEndpoint HTTPClientEndpoint
DatabaseServerEndpoint DatabaseClientEndpoint
GenericServerEndpoint GenericClientEndpoint

 図15に示した「WindowsClient1」はDMZ内にある「IISWebServer1」に接続するので、対応するコンシューマエンドポイントは「HTTPClientEndpoint」になります。これをツールボックスから選択して、「WindowsClient1」に追加します。

図16:WindowsClient1にHTTPClientEndpointを追加した状態
図16:WindowsClient1にHTTPClientEndpointを追加した状態

 追加したHTTPClientEndpointを選択した状態で、ここからZoneの出口までの接続は今まで通りの方法で追加することができます。続けて DMZの入り口からIISWebServer1のプロバイダエンドポイントまでの接続も同じように定義します。DatabaseServerへの接続も同じように作業を行い、不要なエンドポイントを削除するところまで行うと図17のようになります。

図17:Zoneがある論理データセンターダイアグラム
図17:Zoneがある論理データセンターダイアグラム

 これで、論理データセンターダイアグラムの作成は完了です。

論理データセンターの位置づけ

 ここまで確認してきて論理データセンターダイアグラムは通常のネットワーク構成図や結線図などとはちょっと位置づけが違うなと感じられたのではないでしょうか。通常のこれらの図ではもう少し具体的なネットワークの状況やLANやWANなどどういったもので接続されるか、どこにファイアーウォールがあるのかなどが書かれていると思います。こういったものは、インフラ構成を検討し、より詳細な設計を行うメンバーにとっては非常に有益です。しかし、アプリケーション開発者にとってはノイズとなる情報も含んでいることが多いでしょう。

 論理データセンターダイアグラムはアプリケーションシステムの配置先となる環境の情報をアプリケーション開発者に示すために用意されています。多少語弊があるかもしれませんが、アプリケーション開発者はアプリケーションを配置するホスト環境がどういったもので、どういった構成や制約を持っているのかには興味がありますが、その物理的な構成がどうなっているのかにはあまり興味がないはずです。

 このような点を考慮して、アプリケーション開発者にとって有益な情報になるようなモデルを作るのが論理データセンターダイアグラムです。つまり、このダイアグラムを利用するのは主にアプリケーション開発者であり、ネットワーク構成図など主にインフラ設計者が利用するものとは位置づけが異なっています。

まとめ

 今回は、論理データセンターデザイナを使った論理データセンターダイアグラムの作成を行う方法を一通り確認してきました。今までとはちょっと異なる内容でしたが、作業方法は今までとさほど変わらないというところも分かっていただけたのではないでしょうか。

 この回まででアプリケーションをモデリングして、論理データセンターをモデリングしました。せっかくなので両者の間でちゃんと整合性を確保できているのか? 問題があるとすればどこなのか? 確認できると便利ですよね。次回はそんなときに利用する「配置デザイナ」という機能を紹介します。この配置デザイナを使うために今までの作業があったと言ってもいいほどに、今までの作業を無駄にはさせないものです。次回もどうぞお楽しみに。

参考文献

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Visual Studio Team System 2008 Architecture Editionを使ってみよう連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト りばてぃ/FUJIKO/ナオキ(リバティ, フジコ, ナオキ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3616 2009/03/24 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング