SHOEISHA iD

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

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

Windows Azureで作成するアプリケーションの基礎

クラウド・コンピューティングの基本とWindows Azure

Windows Azureで作成するアプリケーションの基礎(1)


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

Windows Azureのアーキテクチャと用語解説

 以下にWindows Azureのアーキテクチャを図で示します。

Windows Azureのアーキテクチャ
Windows Azureのアーキテクチャ

 用語やWindows Azure上で提供される主なサービスについて簡単に解説します。

Azure Service Platform

 Microsoftが提供するクラウドサービスAzureの基盤技術全体を指しています。OSやストレージ、OS上で動く各種サービスなどを含みます。

Windows Azure

 Azure Service Platformに含まれるクラウド上のOSで、Windows Server 2008 R2をベースにしています。.NET Framework 3.5とIIS 7.0をサポートし、HTTP/HTTPS、REST、SOAP、RSSなどの標準的なWebプロトコルを提供します。

 Windows Azureはクラウド上の仮想マシンで提供され、仮想マシン上でWebロールおよびWorkerロールと呼ばれるプログラムが動作します。ロールとは、仮想マシンの役割を指しており、一つの仮想マシンの上ではそれぞれ一つのWebロール、またWorkerロールしか動作させることができません。

 Webロールは基本的にASP.NETのWebアプリケーションと同じものです。Webロールは言語として.NET環境がサポートするC#またはVisual Basicなどを使用することができます。

 Workerロールは内部的に処理を行うビジネスロジックです。Workerロールは後述するクラウド上のストレージAzure Storageとの間で、キューと呼ばれるメッセージのリクエストをやりとりすることにより動作します。Workerロール自体はユーザーインターフェイスを持たないため、ユーザーからの指示を直接実行することはありません。Workerロールの動作の流れは例えば、

  •  Webロールがユーザーからの指示を受け付けメッセージをキューに格納
  • →Workerロールがそれを取り出して実行し結果をストレージに格納
  • →Webロールがストレージから結果を取り出す

 のようなモデルとなります。以下にこの動作モデルを図で示します。

ストレージを介したWorkerロールの動作例
ストレージを介したWorkerロールの動作例

 もちろん単一のWebロールのみで処理を完結することも可能ですが、必要に応じて仮想マシンの数を増やし、複数のWebロールまたはWorkerロールを構成して負荷を分散させ、処理の高速化を図ることができます。

 また、Windows Azureは標準的なWindows OSに搭載されているファイルI/O関連のAPIはサポートせず、クラウド上のストレージを利用することが前提となっています。こういった差異も存在するため、既存のASP.NETアプリケーションをそのままクラウド上にWebロールとして配置しても動作するわけではない点に要注意です。

Azure Storage

 前項でも述べた、Windows Azure上に用意されているストレージです。ブロブテーブルキューの3種類があります。

 ブロブは単純な階層を持つストレージでバイナリデータを保存します。保存したバイナリデータにはRESTを使ってアクセスすることができます。テーブルは非リレーショナルなデータベースで、表のような形式で各種データを保存できます。テーブルにはADO.NETやLINQなどの既存のプログラミングインターフェイスでアクセスすることができます。キューは前述しましたが、内部処理を行うプログラムWorkerロールとの間で、リクエストのメッセージなどをやりとりする際に使われるストレージです。Azure Storageの詳細と実際の利用については今後の連載でも扱います。

.NET Services

 .NET Servicesは既存の社内ネットワーク内で運用していた各種サービスやアカウント管理などをクラウド上でも利用するための一連のサービス群です。現在のところ以下の3種類のサービスがあります。

(1)サービスバス

 社内ネットワーク上のサービスとクラウド上のアプリケーションを連携させるための機能です。

 基本的に社内ネットワークはインターネット側から簡単にアクセスできないよう、堅固なセキュリティに守られています。サービスバスはクラウド側から社内ネットワークに接続するのではなく、社内ネットワークのサービスがクラウド側のWindows Azureにアクセスしてきた際に、該当サービスを登録する形で動的に動作します。このようにサービスバスは社内ネットワーク側から通信を確立するための仕組みを提供し、社内システムとクラウド上のアプリケーションの安全な連携を実現します。

(2)アクセスコントロールサービス

 アクセスコントロールサービスはWindows Azure上のアクセス権限を管理するシステムです。それ自体はアクセス権限を発行せずにWindows Live ID やWindows ServerのActive Directoryなど、外部の認証情報を利用します。Windows Azure側で信頼関係を明示すれば個別にアカウント情報を設定することなく、既存の認証情報を適用できるため、簡単にアクセス管理を実現できます。

(3)ワークフローサービス

 ワークフローサービスは、複数のサービスがどのように連携するかを設定する機能です。連携させることのできるサービスにはWindows Azure上のクラウド・サービスや社内ネットワーク上のサービスが含まれますが、ワークフローサービスにより、各サービスがどのような条件でどのように連携するのかを定義することができます。ワークフローサービスの構築にはVisual Studioのワークフローデザイナーを利用することができます。

SQL Services

 SQL ServicesはWindows Azure上のクラウド・アプリケーションから利用できるデータベースを提供します。SQL ServicesのデータベースエンジンがSQL Data Serviceです。先述した、Azure Storageのテーブル機能は非リレーショナルなデータベースでしたが、SQL Data Serviceはリレーショナルデータベースであり、この点、Microsoft SQL Serverがクラウド上で提供されていると言っても差し支えありません。SQL Servicesの詳細と実際の利用については連載の後半で詳しく扱います。

Live Services

 Live ServicesはMicrosoftのWebサービス、Windows Liveが提供するリソースをWindows Azureのクラウド・アプリケーションから利用するためのサービスです。Windows Liveはメールや地図、写真の管理やメッセンジャー、データの共有、アクセス権の制御など多くのサービスを提供していますが、Live Servicesにより、これらのサービスをWindows Azureから利用することができます。

 また、Windows LiveはPCに限らず、携帯電話デバイスやPDAデバイスなど複数のデバイスからアクセスできますが、Live ServicesのLive Meshサービスを利用することにより簡単にデバイス間でデータの同期をとることができます。さらに、Live ServicesにはLive Frameworkと呼ばれる開発環境も用意されており、このフレームワークの開発キットにより、クロスデバイスで動作するアプリケーションを構築することもできます。Live Servicesについても今後の連載で扱う予定です。

次のページ
各種コンポーネントの入手方法と開発環境の整備

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Windows Azureで作成するアプリケーションの基礎連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、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プロジェクト 土井 毅(ドイ ツヨシ)

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング