Comments
Transcript
Windows Azure (全350ページ) 基本からBlob Storageまで
ITライブラリーより (pdf 100冊) http://www.geocities.jp/ittaizen/itlib1/ Windows Azure (全350ページ) 基本からBlob Storageまで 一般社団法人 情報処理学会 正会員 腰山 信一 [email protected] 1 本資料の関連資料は下記をクリックして PDF一覧からお入り下さい。 ITライブラリー (pdf 100冊) http://www.geocities.jp/ittaizen/itlib1/ 目次番号 453番 454番 他 2 2 33 Windows Azure 徹底解剖 4 4 オンプレミス環境との 親和性 5 5 オンプレミス環境との親和性 オンプレミスで構築している既存の社内システムやアプリケーションと の連携を実現する多くの機能を標準で搭載しています。 例えば VPN によるネットワーク連携や、Active Directory や他社認証 サービスとの ID 連携、サービス バスによるシステム連携が可能です。 66 7 7 8 8 OS とサービスに対して修正プログラムを自動適用できるほか、ハード ウェア障害からの自動回復力を備えています。 データは自動的に多重化されることで堅牢性が確保され、また HTTP のエン ドポイントや、CPU、メモリの利用状況といった監視項目を設定することで自 動的にアラートを通知することも出来ます。 HTML/JavaScript ベースの直観的 に利用しやすい Windows Azure 管理ポータルで各種サービスの利用 や構成の変更、制御、監視やデータ のダウンロードなどの操作を実行で きます。 9 管理ポータルは Internet Explorer だけでなく、Safari や Chrome な ど様々なブラウザーで利用することができます。 また、Windows Azure 管理ポータル以外にも Windows Azure PowerShell や Windows Azure SDK などから各種操作を実行す ることができます。 10 11 12 12 13 13 補足 Windows PowerShell 【 PowerShell 】 Microsoft社がWindows用に開発した高機能なコマンドライン方式の シェルおよびスクリプト実行環境です。 Windows XP以降で利用でき、Windows 7以降では標準添付されていま す。 Windows PowerShellでは、システムの情報を入手したり変更したりする 「コマンドレット」と呼ばれる単機能のプログラムが豊富に用意されており、こ れらを組み合わせて複雑な処理をスクリプトとして記述することができます。 14 以前からWindowsにもコマンドプロンプト(MS-DOSプロンプト/cmd.exe)や スクリプティング環境(WSH:Windows Scripting Host)は存在しましたが、 UNIX系OSなどに比べ見劣りする状態が長く続いていました。 Windows PowerShellの投入により格段に強力で柔軟なコマンドベース の環境が用意され、システム管理者などが運用・管理を自動化したりコード を再利用するのが容易になりました。 補足 SDK 【 Software Development Kit 】 あるテクノロジー(プログラミング言語やAPIなど)を利用してソフトウェ アを開発する際に必要なツールのセットです。 15 15 IaaS および PaaS の中核となる Windows Azure のサーバー機能で、 ユーザーが開発したアプリケーションを実行するための 4 つのサービス (仮 想マシン、Web サイト、モバイル サービス、クラウド サービス) が提供され ています。 Windows Server と Linux をフル カスタマイズで利用できる IaaS (仮想 マシン) や、プラットフォーム (OS や Web サーバーなど) まで提供する PaaS (Web サイト、モバイル サービス、クラウド サービス) が存在します。 16 17 17 コンピューティング サービスではインスタンス サイズ (マシン ス ペック) が複数提供されているため、ユーザーは要件に応じて サイズを選択して利用できます。 インスタンス サイズが大きいほどスペックが高くなり、システムの性 能向上につながります 。もちろん、インスタンス作成後にも簡単に サイズを変更することができます。 18 19 19 20 20 コンピューティング サービスではロード バランサーの構築は不要で、自 動的に設定され利用できます。(ロード バランサー単独での料金は発生 しません) 。 アプリケーションへのトラフィックが増えた際に、ロード バランサーに関連す るインスタンスを管理ポータルや PowerShell などのツールを使ってオンデ マンドで増やすことができます。 また、稼動中のサービスを止めずにアプリケーションの更新を行うことも できます。 コンピューティング サービスのインスタンスを複数作成すると、エンド ユー ザーからのリクエストは一旦 Windows Azure 内部のロード バランサーに 送られ、そこから稼動中のインスタンスへ振り分けを行います。 21 22 22 仮にハードウェア障害等の何らかの原因により、稼動中のインスタンス が停止してしまった場合には Windows Azure データセンターにある管 理機能が、その問題を自動的に検知します。 そしてユーザーからのリクエストをそのインスタンスに対し振り分けるのを ストップし、別の場所に新しいインスタンスを自動で作成します。 23 新しく作成したインスタンスが、ユーザーのリクエストを受ける準備が整 い次第、ロード バランサーがユーザー リクエストをそちらのインスタンス に対しても振り分け始めます。 24 コンピューティング サービスには HTTP エンドポイントや CPU、メモリ、ディ スク I/O などの監視機能が提供されているので、新しく監視用のサーバーを 構築する必要はありません。 しきい値を設定することでシステム管理者にアラートを通知することも可能です。 2525 補足 しきい値 しきい値とは、その値を境にして、動作や意味などが変わる値のことである。 しきい値は、ユーザーの使い方や好み、動作環境などにより大きく異なり、プ ログラムを制御するために一意に決めることが難しいパラメータに対して使用 されることが多いです。 人間であれば曖昧な条件でも許されても、コンピュータには明確な指示を与 える必要があり、そのような場合にしきい値と呼ばれることが多いです。 また、動作を確認しながら、その値を決めていくチューニング値の場合も閾値 と呼ばれます。 バッテリー切れの警告を行うバッテリー容量は、しきい値の身近な例です。 26 Windows Server および Linux の仮想マシンを簡単に展開・実行できる IaaS の機能が提供されています。 従来のようにユーザーはハードウェアの割り当てやセッティング、環境のイン ストールなど不要で、もちろん新たにハードウェアを購入する必要もありませ ん。 全て構成済みの Windows Server、もしくは Linux (SUSE、CentOS, Ubuntu など) の環境を数分で構築することができます。 SQL Server や SharePoint などのソフトウェアが構成済みのイメージも 提供されているため、それらについてもインストールやセットアップが必要 ありません。 27 加えて Windows Azure が提供している構成済みイメージを利用した場合、 従来のように CAL (Client Access License) や SPLA (Microsoft Services Provider License Agreement) などのライセンスが不要です。 Windows Azure は従量課金で利用できるためライセンス管理など煩 雑な作業からも解放されるメリットがあります。 Windows Azure 仮想マシンは Windows Server Hyper-V が ベースになっているため、オンプレ ミスの仮想環境とも互換性があります。 28 29 そのため、Windows Azure が提供する構成済みイメージではなく、ユーザー が管理しているオンプレミスのサーバー環境やアプリケーション資産をそのま ま Windows Azure に移行して運用することも可能です。 ( この場合、OS 以外のソフトウェアは従量課金制ではなく、別途ライセンス 契約が必要な場合があります ) 30 補足 openSUSE openSUSE(オープン・スーゼ)は、ノベルがスポンサーを務め、コミュニティが 開発するLinuxディストリビューションです。 openSUSEは汎用のLinuxディストリビューションであり、ウェブページの閲覧、マ ルチメディアの再生、オフィスソフトの利用などに代表されるGUIを利用したデスク トップ用途や、CUIを中心として用いるサーバ運用などさまざまな方法で利用する ことができます。 以前はSUSE(元々はドイツの企業)が日本に進出していなかったため日本で はあまり普及していませんが、Version 9.1から日本語版もリリースされており、 日本語の表示や入力などが可能になっています。 31 補足 CentOS 【 Community ENTerprise Operating System 】 Red Hat社の商用Linuxディストリビューションである「Red Hat Enterprise Linux」(RHEL)と互換性のある、フリーのLinuxディストリビューション。 CentOSは、RHELに含まれるソフトウェアのうちオープンソースとして公開されて いるコードを集めて再編集したもので、ボランティア開発者の集団であるCentOS プロジェクトによって配布されています。 RHEL互換のLinuxディストリビューションを個人でも無償で入手できるため人 気が高いです。 32 補足 Ubuntu(ウブントゥ、ウブンツ) Ubuntu(ウブントゥ、ウブンツ)は、オープンソース・ソフトウェアで構成さ れたオペレーティング・システム (OS)です。 Linuxディストリビューショ ンの一つであり、デスクトップ、そしてサーバに利用することができます。 Ubuntuは、現在、そして将来に渡って無償で提供されます。 また、最新のバージョンを6ヶ月ごとにリリースすることを宣言しており、オープン ソース・ソフトウェアの最新の優れたアプリケーションを常に利用できます。 33 33 34 34 ユーザーは、Windows Azure 仮想マシンを使うことで、オンプレミスの資産や 技術スキルをそのまま活用できることに加え、従量課金やスケーラビリティと いったクラウドのメリットを享受できます。 例えばユーザー数が増えたときにスケール アウトすることや、データ量が 増えたときにディスクを追加することは Windows Azure 管理ポータルや PowerShell を使ってオンデマンドで素早く実行できます。 また、VPN (仮想ネットワーク) で安全に仮想マシンに接続することや、 ネットワーク アクセス制御リスト (ACL) で仮想マシンへのアクセスを制御 することでセキュリティを強化することもできます。 35 35 Web サーバーやデータベース、ランタイムといった Web サイトを構築 する際に、必要なコンポーネントがあらかじめ準備されているのが Web アプリ開発者向けの PaaS です。 PaaS なのでユーザーはオンプレミスや IaaS と比較するとインストー ルや設定、運用管理の手間を削減できるメリットがあります。 36 37 37 ユーザーは 4 つの言語 (ASP.NET、PHP、Node.js、Python) を利用して、既 存アプリケーション、もしくは新規アプリケーションをアップロードして実行するこ とができます。 また実装したソース コードの管理は TFS、CodePlex、Dropbox、Git、 GitHub など、従来から使っているツールをそのまま利用できます。 他にもWordPress、EC-CUBE、Umbraco、DotNetNuke、Drupal、Django、 CakePHP、Express など、30 以上のオープンソース ソフトウェアが、あらか じめインストールされているイメージが提供されているため、わずか数クリック で WordPress などのサイトを構築、公開できます。 38 38 39 39 Windows Azure Auto-scaling 40 40 Web サイトのもっとも大きな特徴は数秒~十数秒でインスタンスを起動でき る俊敏性です。 Web サイトではあらかじめ Web サーバーがプールされて用意されています。 ここに、ユーザーがアプリケーションをアップロードすると、プールから自 動的に空いているリソースを見つけ出して配置されます。 Web サイトの俊敏性は突発的にサイトのトラフィックが増加した場合などでも、 すぐさまスケール アウト・スケール アップ出来るため便利です。 41 41 42 42 43 もちろんオート スケールにも対応しているためサーバーの負荷に応じて Windows Azure 側でインスタンスの数を自動調整することができます。 Web サイトはレンタル サーバーのように、 ①1 つのサーバー リソースを複数のユーザーで共有して使う方法 (共有イン スタンス: 各アプリケーションは論理的に隔離されているためお互いを見 ることはできない) ② 1 つのサーバー リソースを占有して使う方法があります (標準インスタンス)。 共有、占有どちらでも複数のサーバーを使ってスケール アウトすることがで きます。 44 共有型に関しては、あるユーザーのアプリケーションがサーバー リソースを使い 切らないようにするため、リソース利用量に関して上限設定 (クォータ設定) がなさ れています。 共有型はさらに無料、共有の 2 種類に分類されており、それぞれでクォータ設 定が異なります。 占有型であれば選択したスペックのサーバー インスタンスを占有できますし、も ちろんスケール アップも素早く実行できます。ビジネス用途の安定したサイトの 構築では、通常は占有を推奨します。 45 45 46 46 Web サイトでは複数のマシン (インスタンス) によるスケール アウトができる ますが、スケール アウトの際に課題になるのが、実際の物理的なファイルの 配置です。 例えば、複数台のサーバーでスケール アウトする場合、通常、Web アプリ ケーションは各サーバーにコピー配置する必要があります。 しかし、Web サイトでは、実際の物理的なコンテンツ ファイルは同一の ストレージにより共有されています。 47 47 48 48 これにより、コンテンツはあたかもローカル ディスク上にあるかのように見 えますが、どのマシンからローカル ディスクに書き込んでも、他のマシンか ら同じ内容を読み取ることができます。 また、FTP で Web サイトに接続すると、あたかもサーバーが 1 台だけしか ないように見え (実際には複数のサーバーで負荷分散処理される)、ファイ ルをアップロードすればどのマシンからでも読み出すことができます。 Web サイトの活用例は ■一般的なインターネット アプリケーション ■トラフィックが時期や時間帯により、大きく変動する アプリケーション ■ASP サービスとして展開しているアプリケーション 49 Windows Azure Mobile service 50 50 スマートフォンやタブレットなどの主にネイティブのモバイル アプリケーションを 迅速に開発・運用するためのモバイル特化型 PaaS (モバイル バックエンドの サービスという意味で BaaS (Backend as a Service) ともいう)です。 ここ数年でモバイル アプリケーションのニーズは急増していますが、マルチ デ バイスに対応したアプリケーション開発にはそれなりにコストがかかるもので す。 サーバー サイドもアプリケーションの機能に応じて新規で作ったり、作り変え たりすることがよくあります。 51 51 特に、モバイル アプリケーションでは「ユーザー認証」、「プッシュ通知」、 「SNS との連携」、「ストレージ操作」といった機能はクラウドにアクセスする多 くのアプリケーションに求められます。 従来これらの機能を開発者がいちから作っていく方法が一般的でしたが、類似 した機能を個別に作ることは効率が悪いですし、クライアント アプリケーションの 開発は得意だが、サーバー サイドのアプリケーション開発は不得手な開発者も います。 こういった課題にはWindows Azure モバイル サービスの活用をお薦めします。 52 52 53 53 モバイル サービスでは標準で「ユーザー認証」、「プッシュ通知」、「SNS との連 携」、「ストレージ操作」などの機能を搭載しているため、これらを実装する必要 はありません。 また API は REST で公開されているため、様々なクライアントに対応した一 貫性のある共通のサービスとして公開できます。 サーバー サイド開発は JavaScript、.NET が利用可能で、それぞれのプラット フォームに対応したクライアント SDK も提供されているため、サーバー サイドの 開発が不得手な開発者であっても効率的にサーバー サイドの開発を実現できま す。 モバイル サービスでは Windows、Windows Phone、iOS、Android、 HTML/JavaScript、Xamarin、PhoneGap のアプリケーションの雛形をダ ウンロードできるので、それをベースにアプリケーションを開発したり、使い方 を学習することが出来ます。 54 55 55 Windows Azure モバイル サービスを活用する事により、Windows や Windows Phone、Android、あるいは iOS といったマルチ デバイス向けサー ビスを構築する際に共通で利用できるバックエンドのサービスを効率的に作成 することができます。 データを永続化するために SQL データベースや Windows Azure ストレージ サービス、MongoLab といったサード パーティのデータ サービスを使用して データを保存することができます。 ソーシャルのアカウント (Microsoft アカウント、Facebook、Twitter、 Active Directory) と認証連携するための機能があり、ほんの数行のコー ドを記述するだけでユーザー認証を実装できます。 56 56 アプリケーション固有の認証システムを実装する方法も、もちろんサポートさ れています。 状態と可用性を監視することができます。 サービスの可用性が低下したときに 通知を受けるように、アラート ルールを設定可能で、また、現在の需要に合わ せて自動的にスケール アップまたはスケール ダウンするようにアプリケーショ ンを構成することができます。 スクリプトはスケジュールの設定が可能なので、決まった時間に実行すること ができまます。 スケジューリングにより古いデータや重複データをテーブルか ら削除する、ユーザーから送信された画像のサイズ変更を行う、外部の Web サービスから集計されたデータを照会する、などの操作を定期的に行うことが できます。 57 57 58 58 Windows Azure における Role 59 59 Windows AzureはWeb サイトと同様に展開/運用が自動化された Windows Server ベースの環境を提供する PaaS です。 Web サイトと同様にオンデマンドでスケール アウト・イン、スケール アッ プ・ダウンを実施できます。 Windows Azureのクラウド サービスには、アプリケーショ ンを実行するための役割が異 なる 2 種類のロールが提供さ れています。 60 Web ロール .NET Framework と IIS がインストールされた Web サーバー タイプのサー バー。主にフロントエンドの Web アプリケーション動作用として利用できます。 ワーカー ロール .NET Framework のみがインストールされた汎用サーバー。バックグラ ウンド タスクやプロセス処理用の実行環境として利用できます。 実際のシステムでは、ひとつ、もしくは 2 種類のロールを組み合わせ てシステムを構成します。 例えば、Web サービスとバッチ アプリケーションから構成されるシステ ムは、上記の 2 タイプのロールを組み合わせて、次のように構築するこ とができます。 61 62 62 補足 ロール 【 role 】 役、役割、役目、役柄、任務などの意味を持つ英単語。 データベース管理システムなどの利用者管理において、利用者の グループあるいは雛形のことをロールということがあります。 ロールは利用者の種類(管理者、開発者、一般利用者など)に応じ て作られ、各利用者(のアカウント)はそれぞれのロールに属する。 利用者が複数のロールに所属したり、ロールが他のロールに所属 してその権限を引き継いだりできるようになっている場合が多いで す。 63 63 Windows Azureの実行環境は、さらに大きく分けると 3種類あり ます。「Webロール」、「Workerロール」、「VMロール」の3種です。 64 Webロールは、IISの上で提供されるWebページとその処理機能です。 簡単にいえば、ASP.NETによるページ表示機能に相当します。 2つ目のWorkerロールは、Webロールと対にして利用するもので、サー バー側のバックエンド処理ルーチンとなります。 たとえばオンラインショッピングサイトを考えた場合、Webロールはユーザーが Webブラウザで見るカタログや注文画面を担当し、Workerロールは受注処理を 担当します。 65 65 そしてWorkerロールは、ストレージサービスのキューと組になり、キューに投入さ れたアイテムを順次処理するという動作を行ないます。 キューが間に入るようになっているのは、大量処理などの場合にWorkerロールを 複数のVMで動作させて並行処理を可能にするためです。 3つ目の「VMロール」は、他の2つとは少々異なります。 例えば、あらかじめ設定されたWindows Server 2008 R2の環境が入ったVMイ メージに対して、アプリケーションをインストールしたものを作成、これをWindows Azureにアップロードしてサービスなどを実行させる仕組みです。 66 66 67 67 VMロールでは、Windows Server で動作するアプリケーションの大半が、 そのまま利用できます。 ただし、Hyper-V内での実行であり、システム設定がある程度固定されて しまうなど、オンプレミスのWindows Serverに比べて制限があります。 たとえば、アプリケーション内で管理者権限が必要な処理やAPI呼び出し は制限されます。 68 Webロールの開発はASP.NETによるページ記述で行なうため、通常の ASP.NETの開発とほとんど変わりまりません。 内部のプログラムは、表示イメージ(HTML)の生成時に起動し、表示セッ ションが終わると終了させられます。 このため、ページ表示と独立した処理は、キューを介してWorkerロール で行なうようにします。 69 70 70 71 71 Web ロールやワーカー ロールにはアプリケーションをパッケージ化して Visual Studio や Eclipse、Power Shell から Windows Azure にアッ プロードすることが出来ます。 また、Web ロールやワーカー ロールにリモート デスクトップ接続を利用し て接続できるので、オンプレミスと同様に使い慣れた Windows Server の 画面で稼働状況のモニタリングやトラブルシューティングなどの運用管理を 行えます。 Web ロールやワーカー ロールではローカル マシンにデータを記録するこ とができますが、記録した内容 (イベント ログやパフォーマンス ログ、ロー カル HDD に記録したデータなど) は消え去ったり初期化される場合があり ます。 72 このため、クラウド サービスでは、基本的にはローカル マシンに データを 記録・保存すべきではありません。消えては困るデータは SQL データベー スやストレージ サービスに保存する必要があります。 73 なお、クラウド サービスと類似したサービスとして Windows Azure Web サイトがありますが、次のような違いがあります。 74 74 補足 Eclipse (統合開発環境) Eclipse(「イクリプス」または「エクリプス」)は、IBMによって開発された統合開 発環境 (IDE) の一つです。 高機能ながらオープンソースであり、Javaをはじめとするいくつかの言語に対 応します。 Eclipse自体はJavaで記述されています。 75 75 Windows Azure Data Services 76 76 Windows Azure のデータ ストレージは幅広い選択肢を提供しています。 例えば SQL データベースはクラウド向けに SQL Server をカスタマイズし、 制限事項を加えて作られた、高可用リレーショナル データベースです。 SQL Server と同様に TDS プロトコルでアクセス可能で、SQL Server Management Studio や Visual Studio などの既存のツールをそのまま利 用できるので、既存資産やスキルを有効利用できます。 Windows Azure ストレージ (BLOB、テーブル、キュー) はクラウド上にある ストレージ サービスです。 77 77 補足 TDS プロトコル TDSはTabular Data Streamの略で、テーブル形式のデータストリームと いった感じです。 データベースアプリケーションとしてのクライアントと、SQL Server間で情報 をやりとりするためのアプリケーション層のプロトコルです。 プロトコルですので、そこでやりとりされるメッセージの形式・フォーマットとそ れぞれのメッセージを送受信する際の状態、条件等(状態遷移)が規定され ます。 78 78 しかし、従来のストレージ環境や RDB とは大きく異なったアーキテクチャが採 用され、データは分散配置されて、高い可用性とスケーラビリティを実現してい ます。 データ アクセスには REST (REpresentational State Transfer) API が 提供されているので、ユーザーはさまざまなプラットフォームから HTTP 経 由で Windows Azure ストレージにアクセスできます。 HDInsight は Windows Azure 上に構築された Hadoop ベースのサービ スです。 Apache Hadoop と完全互換性を持ちます。 79 79 実装する際は 1 つのストレージを選択して利用しても良いですし、複 数のストレージを組み合わせて利用することもできます。 もちろん、Windows Azure 仮想マシンを使えば SQL Server、MySQL、 Oracle、MongoDB などのデータベースをそのまま Windows Azure で利 用することができます。 80 81 81 82 82 83 83 補足 Microsoft SQL Server Management Studio Microsoft SQL Server Management Studio は、SQL Serverに含 まれる統合環境および管理ツールです。 SQL Server のすべてのコンポーネントのアクセス、構成、管理、開発 に使用できる無償の統合環境です。 多彩なグラフィカル ツールと数多くの高機能スクリプト エディタが統合 されています。 84 84 補足 REST 【 REpresentational State Transfer 】 2000年にRoy Fielding氏が提唱した、分散システムにおいて複数のソフト ウェアを連携させるのに適した設計原則の集合を言います。 また、狭義には、それをWebに適用したソフトウェアの設計様式のことを指 します。一般には後者の意味で用いられることがほとんどです。 一般によく使われる狭義のRESTは、パラメータを指定して特定のURLに HTTPでアクセスすると、XMLで記述されたメッセージが送られてくるような システムおよび呼び出しインターフェース(「RESTful API」と呼ばれる)のこ とを指します。 システムの状態やセッションに依存せず、同じURLやパラメータの組み合 わせからは常に同じ結果が返されることが期待されます。 85 86 86 補足 HDInsight HDInsight は、Apache の Hadoop ソリューションをマイクロソフトが Windows Azure 上に構築した Hadoop ベースのサービスです。 HDInsight を使用すると、構造化されているかどうかに関係なく任意の 種類およびサイズのデータを管理するクラウドベースの最新データ プ ラットフォームで、Big Data の価値を最大限に活用できます。 87 87 補足 Hadoop 【 Apache Hadoop 】 Apache Software Foundation(ASF)が開発・公開している、大規模データを効率 的に分散処理・管理するためのソフトウェア基盤(ミドルウェア)です。 オープンソースソフトウェアとして公開されており、誰でも自由に入手・利用することが できます。 Google社が自社システムの基盤として利用している分散ファイルシステムの GFS(Google File System)に似たファイルシステムと、分散データベースの BigTableに似たデータベースシステム、MapReduceによる分散処理システムな どをJavaで実装したものです。 88 SQL データベースは以前 SQL Azure と呼ばれていたマルチ テナン ト型の RDBMS であり、SQL Server をベースに構築されています。 SQL データベースでは、インストールやセットアップをすることなくリレー ショナル データベースのプロビジョニングと配置を簡単に実行できます。 Windows Azure 仮想マシン (IaaS) を使えば Windows Server 上で SQL Server を利用することもできますが、SQL データベースでは OS や SQL Server の管理を Windows Azure に任せることが出来るので運用 管理のコスト削減につながります。 いずれの場合でも SQL Server Management Studio や Visual Studio など、オンプレミスの SQL Server を利用する際と同じツール でアプリケーション開発が可能です。 89 90 90 91 91 運用管理の自動化という点では、SQL データベースでは内部的にデータベー ス インスタンスが 3 重化されており、仮にプライマリで障害が発生した際でも、 すぐにセカンダリの 1 つにフェールオーバーするように構成されています。 つまり、オンプレミスのようにユーザーがクラスター構成を組む必要もありま せん。 また定期的に自動バックアップする仕組みも搭載しています。 他にも、CPU、ストレージ容量、接続、IOPS などの監視機能が提供さ れているので、新しく監視用のサーバーを構築する必要もありません。 92 92 93 93 Windows Azure SQL データベース は SQL Server と完全互換ではないた め、いくつか注意すべきポイントがあります。 ファイアウォール設定が必須です。 データの保護を支援するために SQL データベースに対するアクセスがファイアウォールによってブロックされます。 インターネットから接続を試行しても、SQL データベースにアクセスする ことはできません。 そのため、アクセスを許可する IP アドレスの範囲を指定したファイアウォール ルールを作成する必要があります。 ファイアウォール ルールは、サーバー レベルおよびデータベース レベルで作 成できます。 94 Windows Azure のストレージ サービスとは大規模・大容量の高信頼性 データ ストレージ サービスです。 内部的には、データを複数のサーバーで分散・冗長化して保持するように なっているのですが、外から見た場合にはこれが巨大な 1 つのストレージ システムに見えるようになっています。 SQL データベースと同様に実際のデータは最低 3 つのノードに複製格納さ れているため、仮にサーバーがクラッシュしてもデータは消えることなく継続 して利用できます。 95 95 96 96 97 97 98 98 また地理レプリケーション (データセンターをまたがったデータ複製) も可 能なので合計 6 重化、かつセカンダリ側のデータセンターからデータを 読み出すこともできます。 ストレージ サービスには他のサービスと同様に自動監視機能があるため、 例えばサーバー エラーやネットワーク エラー、平均遅延時間などを監視 して、なんらかの異常が発生した場合には自動的にアラートを出すことが 可能ですし、ストレージへの各種操作をログに残すこともできます。 99 100 100 101 101 102102 103 103 104 104 通常、オンプレミスのローカル ハードディスクやリモート ハードディスクで あればエクスプローラーを通してアクセスできます。 しかし、このストレージ サービスでは REST API 経由でデータの読み書き を行います。 ただし、アプリケーションを開発する場合には各プログラミング言語に対応し た Windows Azure の開発キット (SDK) を利用することでメッセージの詳 細を知らなくても容易に実装することができるようになっています。 また、Visual Studio などのツールからもストレージに対してデータの読み 書きが出来るようになっています。 105 106 106 BLOB ストレージ 。"BLOB" という単語は "Binary Large OBject" の略語で、おもに動画や画像、音声データなど、巨大なバイナリ ファイ ルを格納するのに適したストレージです。 ちなみに、Windows Azure 仮想マシンの Windows Server、Linux のファ イル システムのデータは全てこの BLOB ストレージに保存されます。 もちろん、単純なテキスト ファイルも保存可能で、外から見た場合には 階層型のファイル システムであるかのように取り扱うことが可能です。 107 107 108 108 BLOB ストレージのコンテナー (フォルダーのようなもの) にはパブリック、もしく はプライベートのアクセス権を設定できるようになっています。 既定はアクセス キーを持つユーザーだけがアクセスできるプライベートに設 定されていますが、パブリックに設定にした場合には、読み取りに関しては 通常の HTTP GET によるデータ取得ができるようになっています。 ただし、追加または変更、削除できるのは、適切なアクセス キーを持っ ているユーザーだけです。 109 109 110 110 テーブル ストレージは分散 Key-Value 型のデータ ストアです。 テーブルという名前がついているものの、いわゆる RDBMS の テーブルとは以下のような点が異なります。 ■テーブル間にリレーションシップを定義できない ■Join 処理は出来ない。(単独テーブルへの出し入れのみ) ■トランザクション処理が基本的に不可 (一連のデータの読み書きを 1 トランザクションに束ねることができない) ■任意の列にインデックスを付与することができない ■1 つのテーブルに異なる構造のオブジェクトを格納できる (RDBMS のようにスキーマの定義をしない) 111 補足 Windows Azureストレージは、テーブル、ブロブ、 キュー、ドライブと呼ばれる4つのストレージ・サービスを 提供しています。 112 112 これらのストレージ・サービスは、次の図に示すように、Windows Azureの 「Webロール」(=Webアプリケーション)や「Workerロール」(=バックグラウ ンド処理)などのアーキテクチャや特性に応じて使い分けられます。 113113 テーブル(Table) 表形式の構造を持ったデータの格納に利用できます。 ただし、テーブル・ストレージは、RDBにおける「テーブル」とは構造が異なる ストレージであり、クラウドで広く利用されている「分散Key-Valueストア」で す。 分散Key-Valueストアとは、「キー」と「値」のペアからなるストレージのことで、 代表的なものにグーグルが提供する「Bigtable」などがあります。 114 114 データ構造がシンプルなため、分散化や高可用性の実現に適しています が、逆にRDBが得意とする複雑な検索・集計やトランザクション処理は得 意ではありません。 テーブル・ストレージを利用した開発を行う場合、分散Key-Valueストアと RDBの、この特徴の違いを理解することが重要なポイントとなります。 115 116 116 HDInsight と Hadoop 117 117 HDInsight は、Apache の Hadoop ソリューションをマイクロソフトが Windows Azure 上に構築したサービスです。 HDInsight では主要な関連プロジェクトをパッケージングして提供することで、 ユーザーは使い易いビッグ データの分析基盤を利用することができます。 HDInsight には、エンタープライズ クラスのセキュリティ、拡張性、およ び管理性があります。 専用の安全なノードがあるため、HDInsight では Hadoop クラスターを セキュリティで保護できます。 118 118 また、Windows Azure の柔軟なスケーラビリティを最大限に利用できます。 さらに、PowerShell スクリプトを広範にサポートすることで、Hadoop クラス ターを簡単に管理できるようになっています。 デプロイとプロビジョニングを数時間や数日ではなく数分で行うことができます。 より大きなクラスターが必要な場合は、単にクラスターを削除して、より大き なクラスターを作成します。作業は数分で済み、データが失われることもあり ません。 119 119 また、HDInsight を使用すると、マイクロソフトの最新データ プラットフォーム で、あらゆる種類のデータをシームレスに処理できます。 例えば PowerPivot、 Power View およびその他 の Microsoft BI ツールで Hadoop データを分析でき ます。 120 121 121 補足 HDInsight 数十,あるいは数百ノードにおよぶHadoopクラスタをすべて自前で構築・運 用するのは,なかなか手間のかかるものです。 また,たとえば夜間バッチ処理のように「常に利用するわけではない」クラスタ のために多数のハードウェアを所有するのは必ずしも効率的ではありません。 その点,HDInsightサービスのような「クラウドHadoop」であれば,使いたい ときに動的にクラスターを生成してジョブを投入し,処理が終わればクラスタを きれいさっぱり削除してしまえば良いわけです。 Windows Azure管理ポータルで,HDInsightクラスターの「簡易作成」を 選ぶと,図のような簡単な操作で,32ノードまでのクラスタを作成可能で す。 122 123 123 Windows Azure 上にできあがったHDInsightクラスターは,図のよう な構成になっています。 124 Windows Azure Virtual Network 125 125 仮想ネットワークを使うと、クラウド上に仮想的なプライベート ネットワークを構築で き、Windows Azure とオンプレミスを VPN で安全に接続することができます。 これにより、オンプレミスのネットワークをクラウド上に拡大して、仮想マシンによる サーバーの増強や、Windows Azure の各種サービスとオンプレミスのサービス を連携させるハイブリッド ソリューションを構築できます。 仮想ネットワークでは、サイト間接続とポイント対サイト接続の 2 種類の接続 方式をサポートしています。 126 126 127 127 128 128 ①サイト間接続 IPsec VPN (IKE v1 と IKE v2) を使用します。 オンプレミスには VPN ルーターを設置する、もしくは Windows Server のルー ティングとリモート アクセス サービス (RRAS) を利用することで、オンプレミスの 任意のコンピューターと、仮想ネットワーク内にある任意の仮想マシン/クラウド サービス のインスタンスを接続できます。 ②ポイント対サイト接続 SSTP (Secure Sockets Tunneling Protocol) を使 用します。 VPN クライアント構成パッケージをコンピューターにインストールすることで、仮 想ネットワーク内にある任意の仮想マシン/クラウド サービス のインスタンスに接 続できます。VPN ルーターは必要ありません。 129 130 130 補足 IPsec 【 Security Architecture for Internet Protocol 】 インターネットで暗号通信を行うための規格です。 IPのパケットを暗号化して送受信するため、TCPやUDPなど上位のプロト コルを利用するアプリケーションソフトはIPsecが使われていることを意識 する必要はありません。 現在インターネットで使われているIPv4ではオプションとして使用すること ができますが、次世代のIPv6では標準で実装されます。 131 131 132 132 補足 IKE 【 Internet Key Exchange 】 IPsecで暗号化通信を行うのに先立って、暗号鍵を交換するために利用 される通信プロトコルです。 その場限りの暗号化通信を行って、IPsecに必要な暗号化アルゴリズム の決定と暗号鍵の共有を行います。 IKEではDiffie-Hellman鍵交換と呼ばれる手順によって暗号鍵を交換し、 IKE限定の暗号化通信を行います。 133 133 その際にIPsecでの通信に必要な各種の情報の交換などの手続きが行わ れ、IPsecによる通信を開始します。 IKEの通信を盗み見られても、それ自体が暗号化されているため、 IPsecの通信を解読される恐れはありません。 134 135 135 Windows Azure Traffic Manager 136 136 トラフィック マネージャーを使用すると、1 つのデータセンター内、または世界各 地のデータセンターで実行されているサービスに対する、ユーザートラフィックの 分散を制御することができます。 ユーザーはトラフィック マネージャーにアクセスするとポリシー (パフォーマン ス、フェールオーバー、ラウンド ロビン) に従って適切な IP アドレスを返しま す。 ユーザーはそれをもとに以降の処理を適切なクラウド サービスに要求します。 137 137 138 138 トラフィック マネージャーを利用すると、以下のことが可能になります。 ①アプリケーションの高い可用性を確保できます。 トラフィック マネー ジャーを使用すると、Azure のホステッド サービスを監視し、サービスが停 止したときに自動フェールオーバー機能を提供することにより、重要なアプ リケーションの可用性を高めることができます。 ②応答性の高いアプリケーションを実行できます。 Azure では、世界の各 地に配置されたデータセンターでサービスを実行できます。 トラフィック マネージャーは、ネットワーク待ち時間を最短にするホステッド サービスでエンド ユーザーにサービスを提供することにより、アプリケーショ ンの応答性を向上させ、コンテンツ配信にかかる時間を短縮します。 139 139 140 140 Windows Azure コンテンツ配信ネットワーク (CDN) では、米国、欧州、 アジア、オーストラリア、および南米にあるエッジ サーバーでサービスの 静的コンテンツをキャッシュすることで、ユーザーへのコンテンツ配信のパ フォーマンスを向上します。 ユーザーからコンテンツのリクエストが CDN に対して最初に行われる と、そのコンテンツは BLOB ストレージまたはクラウド サービスから直 接取得して CDN にキャッシュされます。 この時、キャッシュされたコンテンツに対して更新頻度を設定するこ とができます。 141 141 その後のユーザーからのリクエストは、ユーザーから最も近い CDN エンドポイントにリダイレクトされ、コンテンツへ高速にアクセスできる ようになります。 142 143 143 Windows Azure Cash Management 144 144 Windows Azureキャッシュは、分散型インメモリの拡張性に優れた memcached 互換のキャッシュ ソリューションです。 データへの超高速アクセスを提供することによって、拡張性と応答性に 優れたアプリケーションを構築できます。 キャッシュは、データベースやストレージなどのデータ ソースからの情報 をメモリ上に格納することによってパフォーマンスを向上します。 145 145 補足 分散キャッシュ 近年、大量のデータを扱う大規模システムでは、データのアクセス性能を向 上させるために分散キャッシュ技術が必須のものとなってきています。 キャッシュとは頻繁に使われるデータをメモリ内に保持し処理の高速化を図 ること、またはそのメモリのことをいいます。 従来より、高速なデータアクセスを実現するにはキャッシュ技術が有効であ りましたが、、システムで扱うデータ量の増大に伴い、1台のサーバに搭載可能 なメモリ量では必要なデータをすべて保持することができなくなってきました。 その解決策として、分散キャッシュ技術が今、注目を集めています。 146 147 147 またキャッシュによってデータ ソースにかかるコストを減らすことでスケー ラビリティを高めることができます。 Windows Azure キャッシュは Windows Azure が管理するキャッシュ サービ スとして使用するか、または、クラウド サービスの各ロールに含めるインロール キャッシュとしてユーザー自身で作成し、管理する方法が提供されています。 ①キャッシュ サービスとは占有型のキャッシュ サービスです。 リージョンと キャッシュ サイズ (128 MG ~ 150 GB) を指定するとセキュリティで保護され たエンドポイント ([cachename].cache.windows.net) が割り当てられので、 このアドレスからキャッシュにアクセスしてデータの読み書きができるようにな ります。 管理ポータルからはキャッシュ サイズを変更することや、キャッシュの 利用状況、ヒット率などを監視することができます。 148 ②インロール キャッシュはキャッシュを Windows Azure クラウド サービス の Web ロール、ワーカー ロールでホストする機能をサポートしています。 指定したロールの実行中のインスタンスがメモリ リソースを結合してキャッ シュ クラスターを形成します。 このキャッシュはプライベートで同じ展開に含まれるロールでのみ利用で きます。 インロール キャッシュには専用と共存の 2 種類があります。 149 149 専用では、キャッシュ専用のワーカー ロールを定義して、使用可能なメ モリはすべてキャッシュと運用上のオーバーヘッドに使用されます。 共用では、アプリケーション ロールで使用可能なメモリの一定の割合を キャッシュに使用します。 たとえば、Web ロールの各インスタンスで物理メモリの 20% を キャッシュ用に割り当てることができます。 その他にも Shared Caching と呼ばれるマルチ テナント型のキャッシュ サービスが提供されていますが、現時点では非推奨となっています。 (2014 年 8 月にサービスを終了する予定です) 150 150 151 151 152 152 153 153 154 154 Windows Azure のキャッシュも他の Windows Azure のサービスと同 様に Windows Azure 管理ポータルサイトから管理することができ、ポー タルサイトでアプリケーション専用のキャッシュ サーバーを作成します。 155 155 キャッシュ サーバーを作成する際には Windows Azure の Namespace と呼ばれる (他のユーザーとバッティングしない) ユニークなサービス名と データ センターのロケーション、そしてキャッシュ サイズを指定します。 156 156 Windows Azure のキャッシュは、128 MB から最大 4 GB のサイ ズのキャッシュを使用することができ、このキャッシュ サイズは後か ら変更することも可能です。 157 157 Windows Azure Active Directory 158 158 Windows Azure の Active Directory (Windows Azure AD) は、統合的な ID とアクセスの管理サービス (Identity as a Service) であり、主要なディレクト リ サービス、ID 管理、セキュリティ機能、およびクラウド アプリケーション アクセ ス管理を単一のソリューションとして提供します。 スタンドアロンのディレクトリとして使用するか、オンプレミスの Windows Server Active Directory (Windows Server AD) と同期して利用すること もできます。 Windows Azure AD アクセス コントロールを使用すると、標準ベースの ID プロバイダー (Windows Server Active Directory のほか、Microsoft アカ ウント、Google、Yahoo!、Facebook などの) との連携によって、クラウド ア プリケーションの認証と権限の承認の機能を一元化することができます。 159 159 160 160 161 161 162 162 Windows Azure AD はオンプレミスの Windows Server AD と統合するこ とで、ID をクラウドに拡張して、シングル サインオンなどの機能でエンド ユー ザーのエクスペリエンスを向上することができます。また、ID の管理という側 面でも効率化するこができます。 アプリケーションの開発者はアプリケーションと Windows Azure AD を統合し、シ ングル サインオン機能をユーザーに提供できます。 これによりアプリケーションをクラウドでホストし、企業内の資格情報でユーザーを 簡単に認証できるようになります。 さらに、サービスとしてのソフトウェア (SaaS) プロバイダーが、自身のサービスに対 する Windows Azure AD 組織のユーザーの認証を行うとき、その認証がさらに簡 単になります。 また、開発者は Graph API を使用してディレクトリ データに対してクエリを実行し、 ユーザー、グループなどのエンティティを管理することもできます。 163 163 Windows Azure の多要素認証を使用すると、Windows Azure AD ユーザーは、 数百個単位のクラウド サービスおよびクラウド アプリケーションへのアクセスの保 護を強化できます。 便利な認証オプション (モバイル アプリケーション、電話、テキスト メッセージ) によ り、シングル サインオンを実現し、組織が必要とする強力なセキュリティ手段を提供 します。 164 Windows Azure Service Bus 165 165 サービス バスはその名の通りサービスのバス=伝送路としての機能を提供す る Windows Azure のミドルウェア サービスの 1 つです。 一般的にサービス バスとは複数サービスを連携するメッセージ通信のインフ ラストラクチャを提供するもので、Windows Azure サービス バスでも同様の ことができます。 単純なキューを介してメッセージを送受信することや、通常のキューでは不十 分で、一度に複数のサブスクライバーにメッセージを配信するメカニズム (ト ピック) を備えたキューを使用することもできます。 166 166 場合によっては、アプリケーション間の接続 (リレー) のみが必要で、キュー は不必要なこともあります。 サービス バスはこれらの 3 つのオプションすべてを提供し、アプリケー ションがさまざまな方法で連携できるようにします。 他にも Windows、iOS、Android などのアプリケーションに対して、各 プラットフォーム固有のプロトコルを理解することなく簡単で拡張性の高 い方法でプッシュ通知を送信することができます。 167 167 168 168 169 169 170 170 171 171 Windows Azure のサービス バスはその名の通りサービスのバス=伝送路 としての機能を提供し、Windows Azure をはじめとしたクラウドのアプリケー ションからオンプレミス環境でホストされている (Web サービスなどの) サービ ス型アプリケーションの呼び出しを可能とするサービスです。 クラウド環境にホストされているアプリケーションはインターネット上に公開さ れているため、(認証などによるアクセス権の制限を除けば) クラウド/オンプレ ミスに関わらずどこからでも容易にアクセスすることが可能ですが、オンプレミ ス環境でホストしているアプリケーションをクラウドのアプリケーションや他の オンプレミス環境からアクセス可能にするのはそう簡単な話ではありません。 172 172 オンプレミス環境は通常インバウンド (外部から内部へ) の通信ポートはネット ワークのファイアウォールによって遮断されており、またローカルネットワーク内 では NAT を使用してインターネット IP アドレスをローカル IP アドレスで共有し ていたり、サーバーの IP アドレスは DHCP で動的に割り振られているなど、 外部のインターネットからそのままオンプレミス環境内のアプリケーションをホ ストしているサーバーへアクセス可能なケースは稀です。 このため、オンプレミス環境のアプリケーションをインターネットからアクセス 可能にするためには、ネットワーク内に DMZ セグメントを構築してその中に アプリケーションのサーバーを配置するなど、既存のネットワーク構成を変 更する必要があります。 173 173 しかし、Windows Azure のサービス バスを使用すれば、オンプレミスのネッ トワーク環境に殆ど影響を与えることなく、オンプレミス サービス (サービス型 アプリケーション) をクラウド アプリケーションからアクセスさせることが可能に なります。 (厳密に言えば、Windows Azure のサービス バスで使用する通信ポートが、 オンプレミス ネットワークのファイアウォールのアウトバウンド (内部から外部 へ) ポートとして通過できる必要があります) サービス バスを使用するサービス アプリケーションは、クラウドのサービス バス上に自分のエンドポイントを作成することで、そのエンドポイントを介し て外部のアプリケーションからサービス バスに接続したサービス アプリ ケーションへのアクセスが可能となる仕組みが提供されています。 174 174 175 175 176 176 Windows Azure Media Service 177 177 通知ハブサービスとは、マルチ プラットフォーム (Windows、Windows Phone、iOS、Android) のプッシュ通知専用のインフラストラクチャを提供す るサービスです。 非常にスケーラブルで効率的なルーティング メカニズムが導入されているた め、何千、何万人ものエンド ユーザーに対してリアルタイムに近いメッセージ を通知できるのが特徴です。 178 179 179 180 180 Windows Azureのメディア サービスとは、主に動画などのメディア配信 を行うユーザー向けのサービスです。 そもそも一般論として動画のファイルは、画像の様な業界標準が存在して おらず、撮影したものが、どんなデバイスでも再生できるわけではありませ ん。 これは、インターネットでの配信を考える場合には大きな問題になりま す。 また、動画のファイルは一般的にサイズが大きいため、ダウンロードしてか ら再生をさせるのではなく、ストリーミングの方式にて、再生できる部分がダ ウンロードされたら、即座に再生をさせます。 181 181 実際には、デバイスや OS 毎に標準で搭載されている動画のファイルやスト リーミングの仕様が異なるために、多くの場合ファイルの変換を行う必要があり ます。 また著作物を扱うために、DRM の設定を行う場合もあります。 他にもトラフィックが集中した場合のスケーラビリティの確保など、エンジ ニアが行うには比較的ハードルが高い分野と言えます。 182 182 183 183 184 184 補足 DRM 【 Digital Rights Management 】 デジタル著作権管理 デジタルデータとして表現されたコンテンツの著作権を保護し、その利用や 複製を制御・制限する技術の総称です。 デジタル著作権管理。音声・映像ファイルにかけられる複製の制限技術な どが有名だが、広義には画像ファイルの電子透かしなどもDRMに含まれる。 185 185 Windows Azure メディア サービスは動画メディアのアップロードからエ ンコード、ストリーミング配信、管理までを完備した、メディア配信を行う方 向けのエンドツーエンドのサービスです。 もちろん PC からスマートフォンまで、各種デバイス向けのエンコーディン グをサポートしており、また、API を通じて動画作成から配信までの作業 を自動化できます。 186 186 187 187 188 188 189 189 Windows Azure 価格体系 19019019 価格体系 Windows Azure の料金はオンプレミスのライセンス料などとは異なり、 大きく分けるとサーバーの稼働時間 (コンピューティング サービスなど)、 データ容量 (データ サービスなど)、下りのネットワーク転送量 (各サー ビスとのインターネット経由での通信) で課金が行われます。 191 191 ①サーバーの稼働時間 どのスペックのサーバーを何台構成で、どのくらいの 時間稼働させるかによって料金が決まります。仮想マシン、クラウド サービス、 Web サイト、モバイル サービスなどで適用されます。 ② データ容量 実データの容量が月平均で何 GB 格納されていたかによっ て料金が決まります。SQL データベースや Windows Azure ストレージなど で適用されます。 ③下りのネットワーク転送量 データセンター外部からのリクエストに対する 下りのデータ転送量が何 GB かによって料金が決まります。データセンターの 場所によって料金が異なります。 192 192 193 193 Windows Azure Store 194 194 Windows Azure ストアでは監視サービス、スケーリング サービスを始 め、Bing 検索 API、過去の気象データなど、マイクロソフトとサード パー ティが提供するさまざまなサービスとデータを検索・購入できます。 これらは Windows Azure 管理ポータルから直接購入できるため、必要 なものをすぐに入手できるメリットがあります。 195 195 196 196 Windows Azure ストアでは、 ①主要なアプリケーション サービスの入手ができます。 ClearDB (MySQL の PaaS)、AppDynamics (監視およびスケーリング サービス)、New Relic (パ フォーマンスの管理および監視サービス)、SendGrid (電子メール配信サービス) など高機能なサービスを直ぐに購入して利用できます。 ②アプリケーションで使用するデータの検索 Dun & Bradstreet (ビジネス分 析)、Loqate (全世界を対象とした住所検証およびクレンジング サービス)、 StrikeIron (電話番号検証サービス、売上税および使用税率の検索サービス) などのデータ プロバイダーからデータを直ぐに購入して利用できます。 197 197 ③管理ポータルからすべてのサービスおよびデータへのアクセスと管理 Windows Azure ストアとの UI 統合により、必要なサービスおよびデータの 検索、購入、管理が Windows Azure 管理ポータルから簡単に行えます。 支払管理の統合により、Windows Azure ストアで購入した製品に対する 請求は Windows Azure アカウントに直接行われます。 接続文字列やサンプル コードも提供され、スムーズに利用を開始できます。 また、使用状況に関するデータも Windows Azure 管理ポータルから直接 入手できます。 198 199 199 200 200 Windows Azure向けに提供されているサービスは、Windows Azure Storeで公開されており、Windows Azureの管理ポータルからサービス利 用契約を結ぶことができます。 例えば、Windows Azure Storeで提供されている監視機能、ジョブスケ ジュール機能などのサービスは下記のようなものがあります。 201 Windows Azureストアで提供されているアプリケーション一覧 202 202 Windows Azure Storage Services 203 203 StorSimple (クラウド統合ストレージ) StorSimple はオンプレミスの SAN スト レージと Windows Azure ストレージを統合したクラウド統合型ストレージです。 これにより、インフラストラクチャの複雑性を削減し、データ保護の向上とスト レージの全体的な TCO の削減 (60 ~ 80%)、およびストレージの迅速なプ ロビジョニングを実現します。 StorSimple の自動ティアリング技術では、パフォーマンス指向の SSD、 容量指向の SAS ディスク ドライブ、および Windows Azure ストレージ の 3 種類の記憶域を使用します。 204 204 データは、相対的なアクティビティ レベルとユーザー指定のポリシーに基づい て、それぞれのストレージ間で適宜移動され、アクセス頻度が高くなったデー タはパフォーマンス重視のストレージに、アクセス頻度の低い、もしくは使われ ないデータは容量重視、低コストの Windows Azure ストレージに暗号化して 安全に保存されます。 Windows Azure ストレージ上のデータが利用された場合は、優先度の 高いデータとみなされ再び SSD に展開されます。 これによりストレージ システム全体の運用管理負担を削減することがで き、運用コストやメンテナンス費用を削減することが出来ます。 他にも StorSimple の自動バックアップ機能を利用することで個別に バックアップ環境を構築する必要がなく、災害対策、事業継続のための ストレージとして利用できます。 205 206 206 207 207 208 208 209 209 Windows Azure Management Portal 210 210 Windows Azure ではクラウド サービスや SQL データベースといった PaaS としての機能も提供していますが、Windows Azure 仮想マシンでは HyperV をベースとした IaaS としての機能が提供されています。 Windows Server だけでなく Linux の環境をそのままパブリック クラウドであ る Windows Azure 上に展開することが出来るため、既存のコードを変更せ ずにアプリケーションやインフラストラクチャをそのまま Windows Azure に移 行できます。 その結果、クラウドへのアプリケーションの移行が高速化し、時間と費用の節 約が可能になります。 211 211 SharePoint、SQL Server、Active Directory といったマイクロソフトの サーバー製品をそのまま Windows Azure 仮想マシンで動作させること も可能です ( サポート対象のマイクロソフト製品)。 また、リモートデスクトップや SSH でシステムを操作、管理することが出来る ため、既存のスキルをそのまま活用することができます。 Windows Azure 仮想マシンの用途は非常に多岐にわたることが想定されま すが、たとえば「既存の社内サーバーをそのまま移行」、「検証テスト環境」、 「自社データセンター被災時の災害対策」などが考えられます。 212 212 補足 SSH 【 Secure SHell 】 セキュアシェル 主にUNIXコンピュータで 利用される、ネットワーク を介して別のコンピュータ にログインしたり、遠隔地 のマシンでコマンドを実行 したり、他のマシンへファ イルを移動したりするため プログラムです。 ネットワーク上を流れる データは暗号化されるた め、インターネット経由でも 一連の操作を安全に行う ことができます。 213 PaaS として提供しているクラウド サービスや、Web サイトと同様に、仮想 マシンでは構築するシステムに応じて適切なスペック (サイズ) を選択できる ようになっています。 インスタンス サイズが大きいほどスペックが高くなり、システムの性能 向上につながります。 指定したスペックは仮想マシン上でサービスを展開した後でも、管理ポー タルから簡単に変更することが出来ます。 214 214 215 215 Windows Azureには、Webサイトにおける、運用面に役立つ機能が標準で備 わっています。 管理ポータルでは、CPU時問やサーバーエラー件数などのサーバーの運用状 況を確認できる機能があります。 管理サービスのアラート機能と連携すれば、アップタイムや応答時間に「しきい値」 を設定してメール通知を行い、サイトの問題を索早く察知することが可能です。 216 216 Webサイトを動かすための共有インスタンス数の変更によるスケールアウト機 能も標準で備わっており、アクセス数に応じてサイトのパフォーマンスを調整で きます。 WebサイトのモードWebサイトには無料・共有・標準の3つのモードがあり、 それぞれ料金体系や制限(クォータ)が異なります。 217 Windows Azure管理ポータルの主な特徴 6つの言語サポート オペレーション・ログサポート SQLデータベース・メトリックスサポート 仮想マシンの強化(WindowsおよびLinuxのVMを簡単作成) Webサイトの強化(すべての地域でサイト作成およびプライベート GitHubリポジトリデプロイメントのサポート) 218 218 補足 メトリクス 【 metrics 】 韻律学、作詞法という意味の英単語。また、測定基準、尺度、計量、距離などを意 味する名詞“metric”の複数形。分野や対象を表す名詞に伴って、「~の尺度」「~ の測定法」「~の計量法」などの意味を付加する接尾辞でもありまう。 ソフトウェア開発で、ソースコードの品質を数値化して定量的に評価することや、そ の際の評価手法や基準などの体系のことを「ソフトウェアメトリクス」(software metrics)といいます。 コードの規模や複雑さ、凝集度(互いに関連する要素のコード内での散らばり具合)、 結合度(クラスやパッケージの独立性の高さ)などを専用のツールを使って計測し、 一定の目標を定めて改善していきます。 セキュリティの分野で、指紋や眼球の虹彩、声紋などの身体的特徴によって本人確 認を行う認証方式のことをバイオメトリクス認証(biometrics authentication)とい います。 暗証番号やパスワードなどに比べ非常になりすましにくい方式で、高い安全性が求 められる銀行のATMなどで実用化されています。 219 補足 GitHub GitHub(ギットハブ)はソフトウェア開発プロジェクトのための共有ウェブサービ スであり、Gitバージョン管理システムを使用します。 Ruby on RailsおよびErlangで記述されており、GitHub社によって保守され ています。 GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提 供しています。 220 220 クラウドサービスの強化(ストレージアカウントからのデプロイ、 非共有型キャッシュの設定サポート) Media Serviceの強化(ポータル内からすべてをアップロード、エン コード、発行、ストリーム) 仮想ネットワーク機能の強化 ストレージアカウントで独自CNAMEをサポート すべての機能は本番環境にあるので、すぐに利用可能です。 221 221 補足 CNAMEレコード 【 Canonical NAME record 】 DNSで定義されるそのドメインについての情報の種類の一つで、あるドメイン名や ホスト名の別名を定義するものです。 自ドメインの特定のサブドメインやホスト名について、それと同等とみなす別の名 前を任意に設定することができます。 指し示す先は自らの管理下にない他ドメインのホスト名でも構わないため、自ドメ イン内のあるホスト名を別のドメインへの転送アドレスのように設定することもでき ます。 複数のホスト名をAレコードで同じIPアドレスに設定しても似たような動作をさせる ことができるが、一つをAレコードでIPアドレスに結びつけ、別名をCNAMEレコー ドで定義しておけば、IPアドレスが変わった際に一箇所を変更するだけで済みま す。 ただし、CNAMEレコードで定義された別名はMXレコードやNSレコードを設定す ることができないため、そのような設定に必要な名前には用いることができません。 222 Windows Azureポータルは、英語、ドイツ語、スペイン語、フランス語、イタリア語、 日本語の6つの言語をサポートするようになりました。 ポータルの右上にあるアバターバー上をクリックすれば簡単に変更できます。 223 各SQLデータベースリソース上に提供されている新しい『DASHBOARD』 ビューを使用すると、SQLデータベースの接続の成功および失敗、またデッド ロックの数をモニターできます。 224 Windows Azureポータルの最新リリースでは、仮想マシンの操作が使いやす くなるように改善されました。 ポータルの『QUICK CREATE』機能を使用すると、簡単にWindowsおよび Linux VMを作成できます。 225 Windows Azureメディアサービスによるコンテンツのアップロード/エン コーディング/発行が管理ポータルからできます。 エンコーディングは、PC向け(Sliverlight/Flash)、HTML5 (IE/Chrome/Safari)、iOS向けの3種類が用意されており、発行すると 公開URLからすぐコンテンツを配信できます。 226 226 227 227 Windows Azureクラウドサービスやストレージに対する操作(サービス作成や デプロイなど)のログ取得、Windows Azure SQLデータベースの稼働状況ダッ シュボードといった機能が最新バージョンで強化されています。 228 例 DBにおける ファイアウォールの設定 ファイアウォール規則には次のような特徴があります。 ■ファイアウォール規則は,規則名で個別に管理できる ■ファイアウォール規則は,接続を許可するIPアドレスを範囲で指定 できる ■ファイアウォール規則は,重複したIPアドレスを登録することがで きます。 ■ファイアウォール規則は,最大128個まで登録することができる ■ファイアウォール規則は,反映するまで5分待つことが推奨されてい います。 229 229 Windows Azure管理ポータルのデータベースセクションにある「ファイアウォール 規則」ボタンをクリックすると,規則を追加,削除,更新するためのボタンが表示さ れます。 230 無料で使える Windows Azure Webサイト 231 231 無料で使えるWindows Azure Webサイト Windows Azure Webサイトは、Windows Azure上でWebサイト をホスティングすることに限定したサービスです。 従来からあるWebロールとは異なり、ユーザーがインスタンスの起動や 管理を行う必要はなく、Webアプリケーションを配置するだけで動きます。 ”無償(Free)モード”では、Webサイトで利用できるリソースに上限はあり まが、課金を気にすることなく利用できるようになっています。 232 232 比較項目 無償(Free) 共有(Shared) 予約(Reserved) ホスティング環境 共有 マルチテナント型 共有 マルチテナント型 インスタンス占有 カスタムドメイン 利用不可 利用可 利用可 サイト数 最大10サイト 最大100サイト 最大100サイト ストレージ MySQL DB 1GB 20MB 1GB 20MB< 10GB 20MB データ転送(受信) 無制限 無制限 無制限 データ転送(送信) 上限165MB/日 5GB/月まで無償 5GB/月まで無償 以降は従量課金 以降は従量課金 上限60分/日 上限240分/日 占有のため制限なし 2.5分/5分 2.5分/5分 インスタンス数 最大3インスタンス 最大3インスタンス 最大3インスタンス インスタンスサイズ 選択不可 選択不可 S, M, Lから選択 費用 (資料作成時) 無償 1.14円/時間 7.00円/時間 CPU時間 233 233 無料コース マルチテナント環境で提供される単インスタンスでしか使用できないため、 パフォーマンスやCPU時間などの使用量に制限があり、無料の場合、SLAがな いのが特徴である 使用量が上限に達するとエラーが表示されます。 簡単な確認や検証に使用するのに最適で、何より無料というのが助かります。 234 有料の共有コース 有料の共有コースは、マルチテナント環境で提供され、無料より使用制限が緩く なっています。 例えば、作成可能なサイトの数が10個から100個に増え、メモリー量や稼働可 能なCPU時問が増えます。 その他、インスタンス数を増加させることでスケールアウトでき、独自トメインが使 用できるなど、本番運用するための機能が利用できます。 ただし、標準コースに比べると制限が多いのでアクセス数の比較的少ないサイト に向いています。 235 標準コース 標準コースは、シングルテナント環境で提供される共有より多くのインスタンス数 を設定でき、インスタンスサイズの変更によりマシンハワ一やメモリー量も変更で きます。 また、CPU時問の制限がないため、多くのアクセスを受け入れることができます。 その他、64ビット環境での稼働やSSLの設定、エンドポイントの監視設定が可 能となっています。 236 236 標準コース 自動スケール機能も利用できるため、アクセス数に応じて最適なインスタンス数で 運用できます。 アプリケーションにもよりますが、Sインスタンス2台で月間数百万アクセスをさぱ いても全くパフォーマンスに影響なく快適に利用できた実績があります。 237 Windows Azure Virtual Machine 238 238 239 239 Windows Azure 仮想マシンを用いて、単純な Windows Server や Linux の環境を構築することは非常に簡単です (管理ポータルから幾つか の項目を入力すれば、10 分程度で仮想マシンを作成できます)。 ただし、Windows Azure 特有の機能や特徴を理解することで、より強固で信 頼できるシステムを構築することができます。 仮想マシンの OS ディスクやデータ ディスクの実体は、VHD ファイル (HyperV が使うファイル フォーマット) であり、BLOB ストレージに永続化されます。 240 240 BLOB ストレージの特徴として、クライアント (この場合、仮想マシン) からの書 き込み要求があった場合、BLOB ストレージ側では 3 つの複製での更新が完 了して初めて「書き込み成功」が返されます。 つまり、『仮想マシン』のディスクは通常のシンプル ボリュームであっても、3 本 のディスクをミラーリングした場合と同等の堅牢性を持つことになります。 さらに、災害対策の拠点間複製 (geo-replication) もサポートしているため、合 計 6 つの複製を保持することもできます。拠点間の複製に関してはパフォーマ ンスの観点から非同期で通信します。 241 241 BLOB ストレージ に書き込まれたデータは、常に 3 つの複製を維持 242 242 補足 BLOB 【 Binary Large OBject 】 データベースシステムで定義されるデータ型の一つ。画像や音声などのバ イナリデータを格納できる Windows Azure BLOB(ブロブ) ストレージ ブロブ ストレージの基本 的な構造 243 ブロブ ストレージは 3 つの階層で構成されています。それぞれの意味 は以下のとおりです。 アカウント (Account): Windows Azure ストレージにアクセスするためのアカウント。ファイル シ ステムにおけるドライブに該当。 コンテナ (Container): 複数のブロブ データをまとめるグループ。ファイル システムにおけるドライブ 直下のフォルダー (= ルート フォルダー) に該当。 ブロブ (Blob): 画像ファイルや動画ファイルなどの実際のバイナリ データ。 244 Windows Azure 仮想マシンでは、必ず Windows や Linux のシステム ドラ イブにあたる OS ディスクが必要です。 オプションで (XL サイズで最大 16 本の) データ ディスクを接続することが 出来ます。 ディスクは論理的な概念であって、BLOB ストレージに格納された VHD ファイルそのものではありません。 ディスクは何らかの VHD に必ず 1:1 対応した名札のようなものです。 245 245 また、イメージは、Generalize 済みの特殊なディスクのことを表します。 イメージはディスクと違ってそのまま使われるわけではなく、複製されて OS ディスクとなるテンプレートです。 246 補足 VHD (ファイル フォーマット) Virtual Hard Disk 拡張子 .vhd Virtual Hard Disk (VHD) は、ハード ディスク ドライブと構造的に似せて いるファイル形式です。 Windows 8/Server 2012に搭載されているHyper-Vでは、新たにVHDX形式 と呼ばれる仮想ハードディスク・フォーマットが導入されています。 Windows Server 2012のHyper-Vでは、これまでのVHD形式も利用可能だ が、VHDX形式にすると耐障害性が向上するなどのメリットもあります。 247 247 Windows Azure 仮想マシンでは、OS ディスクやデータ ディスクの実体 (VHD ファイル) が、インスタンスが動作している物理サーバー上ではなく BLOB スト レージに保存されます。 一方インスタンスが動作している物理サーバー上に Temporary Storage (Windows Server の場合は、D ドライブ) と呼ばれる特別な領域が確保されま す。 このストレージは主にページ ファイル用に使用され、パフォーマンスが予測 できる保証はありません。 248 248 仮想マシンのサイズ変更などの管理タスクを行うと、D: ドライブはリ セットされます。 さらに、仮想マシンがフェール オーバーするときに、データが消去されます。 このような特徴を理解した上で一時領域として利用することを推奨します。 249 250 250 Windows Azure インフラストラクチャは巨大なデータ センターで構築され ているため、複数の仮想マシンやストレージで通信が発生するような構成 では、それぞれの配置場所によってネットワーク レイテンシー (遅延) が発 生する可能性を考慮すべきです。 Windows Azure ではアフィニティ グループ(affinity group)を指定するこ とで、仮想マシンやストレージ (など) の配置をある程度制御することが出 来ます。 たとえば、2 台の仮想マシンを同一のアフィニティ グループ "AG1" に配置し た場合を考えます。ファブリック コントローラーは、この 2 台が同一クラスタ内 に配置されるように配置の調整を行います。 その結果、2 台の仮想マシンはネットワーク的に近く配置され、通信 が高速に行えるようになります。 251 252 252 補足 アフィニティグループ Affinity groups アフィニティとは、そもそも友好関係、親和性、共感できる人たちといった意 味です。特定の目的や共通性を持つ人々の組織を指します。 Windows Azure におけるアフィニティグループとは、Windows Azure の コンピュートサービスやストレージサービスを作成する際に、同一のアフィニ ティグループに属するサービスを極力近づけて配置してもらうための機能で す。この後、Windows Azure コンピュートサービスを作成する際に利用し ます。 253 253 アフィニティ グループを指定した場合、クラスタに障害が発生すると 2 台 が共倒れになるのではないかと疑問に思われるかもしれません。 これは、可用性セットを指定して障害ドメインを分離することで解決できま す。 クラスタ内の各ラックは、電源やネットワーク装置が冗長化され、これら装置 の障害が他のラックに影響を及ぼさないように設計されています。このくくり を障害ドメイン (fault domain) と呼びます。 254 254 たとえば、2 台の仮想マシンを同一の可用性セット "AS1" でくくります。この 場合、2 台が異なる障害ドメインに配置されるように、ファブリック コントロー ラーが調整を行います。 結果、いずれかのラック内で障害が発生しても、可用性セット内の別の 仮想マシンは生き残ることができます。 255 256 256 Windows Azure 仮想マシンでは、さまざまな仮想マシンの展開パ ターンがサポートされています。 最も単純な方法は標準のイメージ テンプレートを提供しているプラット フォーム イメージから仮想マシンを作成する方法です。 この場合、Windows Server や Cent OS などの複数のイメージから 必要なものを選択した後、パスワードやサイズ (スペック) などいくつか の項目を指定するだけで、簡単にインスタンスを作成できます。 他にも Generalize した OS イメージをマイ イメージとして登録して、それを カスタム テンプレートとして利用する方法や、ローカル環境で作成した VHD をアップロードして Windows Azure 仮想マシンのイメージとして利用するな ど、さまざまな方法が提供されています。 257 258 258 仮想マシンには主要なパフォーマンス メトリックを監視するための 機能が搭載されています。 既定では、パフォーマンス カウンターを使用して仮想マシンに対する最 小限の監視が行われ、管理ポータルでグラフィカルに確認することが 出来ます。 259 260 260 261 261 米国 4大クラウドベンダーと比較した上での Windows Azure の特徴 262 262 今日のエンタープライズIT環境では、グローバルなスケールでより速く、安く、柔軟 に提供できるソリューシヨンが求められています。 Windows Azureは、既存のインフラストラクチャ や アプリケーションとハイプ リッドに使用できるクラウドです。 そのため、既存の利用ツールやエンジニアのテクノロジースキルを活用できます。 Windows server、 SQLserver、.NETといったマイクロソフトのテクノロジーはも ちろん、Linux、JavaからHadoopやOracleデータベースなど、異なる環境にまた がるITのニーズにも対応できます。 263 263 264 264 265 265 266 266 マイクロソフトは、エンタープライズクラスの構築に必要なサポートとSLA (サービス・レベル・アグリーメント)、プライバシーポリシー、および業界をリード するコンプライアンス対応を含むグローバルスケールのプラットフォームとして の実績があります。 Windows Azureは、機能によって99.9%から99.99%までの間の月次SLAを 実現し、インフラストラクチャにリソースを割くことなく、可用性に優れたアプリ ケーションを作成、実行できます。 267 268 268 OSとサービスに対して修正プログラムを自動適用できるほか、ネットワーク 負荷分散機能が組み込まれ、なおかつハードゥエア障害からの高い回復力 を備えています。 ダウンタイムなしでアプリケーションをアップグレードできるデプロイモデル をサポートしています。 任意の言語、フレームワーク、またはツールを使用してアプリケーションを作 成できます。 269 Windows Azure の管理ポータルで、ホストサービスの「Configure OS」を開いた画面です。 OS Version が [Automaric] に設定されていることがわかります。 270 オンプレミスにおける Windows Update とは仕組みが全く異なる点 に注意しなければなりません。 オンプレミスでは、修正プログラムは以下のように適用されます。 271 271 Windows Azure では下記のようなイメージになります。 272 272 修正プログラムが適用される...というよりも、「修正プログラムが適用され たOSに置き換えられる」と言ったイメージです。 Windows Azure 管理ポータルで「Configure OS」の OS Version をプ ルダウンすると、以下のようにGuest OSに多くのバージョンが用意されて いることがわかります。 それぞれの違いは、修正パッチやインストールされているSDKのバージョ ンです。 273 274 274 補足 ダウンタイム 【 down time 】 システムやサービスなどが停止して いる時間を指します。 突発的な障害によって起こるものと、 メンテナンスやシステムのアップ デートなどによって人為的に起こす ものがあります。 275 補足 デプロイ 【 deploy 】 デプロイメント / deployment 配備する、配置する、展開する、配置につく、などの意味です。 ソフトウェアの分野で、開発したソフトウェアを利用できるように実際の運 用環境に展開することをデプロイということがあります。 インストール(install)に近い意味ですが、サーバコンピュータ上で運用され 外部からネットワークを通じて利用されるソフトウェアや、他のソフトウェア から参照されるコンポーネントなどを、利用可能な状態にする、アクセス可 能にする、といったニュアンスがあります。 276 276 277 277 補足 フレームワーク 【 framework 】 FW 枠組み、下部構造、構造、組織という意味の英単語。 ソフトウェアの世界では、アプリケーションソフトを開発する際に頻繁 に必要とされる汎用的な機能をまとめて提供し、アプリケーションの土 台として機能するソフトウェアのことを言います。 アプリケーションの雛型。 開発にフレームワークを利用すると、独 自に必要とされる部分だけを開発すれば済むため開発効率の向上が 見込めます。 具体的なソフトウェアだけでなく、汎用的に適用できるプログラムの設 計モデルや典型的な処理パターンなどを含めてフレームワークと呼ぶ 場合もあります。 278 278 279 279 機能とサービスは オープンRESTプロトコル を使用して公開される複数のプロ グラミング言語に対応した Windows AzureSDK (クライアントライブラリ)が用 意されています。 このライプラリはオープンソース・ライセンスに基づいてリリースされ、GitHub 上にホストされます。 アプリケーションのスケールを 簡単に変更できます。 スケールに制限もありません。 280 補足 REST 【 REpresentational State Transfer 】 2000年にRoy Fielding氏が提唱した、分散システムにおいて複数のソフト ウェアを連携させるのに適した設計原則の集合を言います。 また、狭義には、それをWebに適用したソフトウェアの設計様式のことを指 します。一般には後者の意味で用いられることがほとんどです。 一般によく使われる狭義のRESTは、パラメータを指定して特定のURLに HTTPでアクセスすると、XMLで記述されたメッセージが送られてくるような システムおよび呼び出しインターフェース(「RESTful API」と呼ばれる)のこ とを指します。 システムの状態やセッションに依存せず、同じURLやパラメータの組み合 わせからは常に同じ結果が返されることが期待されます。 281 282 282 補足 SDK 【 Software Development Kit 】 あるテクノロジー(プログラミング言語やAPIなど)を利用してソフトウェア を開発する際に必要なツールのセットのことを言います。 283 284 284 補足 GitHub GitHub(ギットハブ)はソフトウェア開発プロジェクトのための共有ウェ ブサービスであり、Gitバージョン管理システムを使用します。 Ruby on RailsおよびErlangで記述されており、GitHub社によって 保守されています。 285 286 286 Windows Azureは完全に自動化されたセルフサービスのプラットフォームで あり、数分でリソースをプロビジョニングできます。 ニーズに応じてリソース使用量を柔軟に変更でき、使用した分だけ支払えぱよい 方式です。 世界各地にある複数のデータセンターで利用できるため、顧客との距離が近い場 所にアプリケーションをデプロイできます。 287 「OS やミドルがプリインストールされており、アプリをそこに転送してイン ターネット上で動作させられる」という点において、レンタルサーバ(共用ホ スティングサービス)に似ています。 しかし決定的に異なるのが、各ユー ザのアプリケーションが仮想マシンレベルで分離されている、という点です。 288 288 Windows Azure コンピュートサービスの実態は、要するに仮想マシン(VM)の イメージのコピーと、アプリケーションを自動展開するシステムです。 展開された各仮想マシンは、CPU やメモリとバインドされて動作する(通常は 1 インスタンスあたり 1 CPU がバインドされる)ため、サービスレベルの保障がし やすい形で動作することになります。 289 Windows Azureを利用することにより、コンピューティング環境内でアプリケーショ ンコードを信頼性の高い方法でホストしてスケールアウトできます。 リレーショナル型のSQLデータベース、NoSQL型のテープルストレージ、および非 構造化データ向けのBLOBストレージを使用してデータを格納でき、必要に応じて Hadoopなどを使用してデータマイニングを行うことができます。 290 補足 NoSQL NoSQL(一般に”Not only SQL”と解釈される)とは、リレーショナル データベース管理システム (RDBMS) 以外のデータベース管理システ ムを指します。 リレーショナルデータベースをやみくもに使用してきた長い歴史を打破 し、それ以外のデータベースの利用・発展を促進させようとする運動の 標語としての意味合いを持ちます。 。関係モデルではないデータストアの特徴として、固定されたスキーマ に縛られないこと、関係モデルの結合操作を利用しないこと(場合に よっては単にそのような機能が欠落しているだけ)、水平スケーラビリ ティが確保しやすい事が多いこと、トランザクションを利用できないもの が多いことなどが挙げられます。 291 292 292 補足 非構造化データ 非構造化データ(Unstructured Data)とは、構造定義されておらず、主に リレーショナルモデルにうまく適合しないデータモデルに分類されるデータ を指します。 数値、文書、画像、音声、動画な ど、人のコミュニケーションをより 表現するデータを活用するよう になりました。 このようなデー タは、構造化データという分類を 超えて、完全な構造定義を持た ない半構造化データ、あるいは、 構造定義を持たない非構造化 データとして分類されるようにな りました。 293 294 294 従来型データベースの問い合わせ言語がSQLであるのに対して、NoSQL と総称されるデータベースも登場するようになりました。 また、Hadoop などの分散ファイルシステムも活用されるようになってきました 295 296 296 補足 BLOB 【 Binary Large OBject 】 データベースシステムで定義されるデータ型の一つ。画像や 音声などのバイナリデータを格納できる。 297 ブロブ (Blob) ストレージの種類 ブロブ (Blob) には様々な種類のデータを保存することが可能であり、 代表的なものでは静止画像や動画などのメディア コンテンツがありま すが、それだけなく、Windows Azure のアプリケーション パッケージ やプログラム コードなどを置くことも可能です。 298 299 299 補足 Hadoop 【 Apache Hadoop 】 Apache Software Foundation(ASF)が開発・公開している、大規模データ を効率的に分散処理・管理するためのソフトウェア基盤(ミドルウェア)です。 オープンソースソフトウェアとして公開されており、誰でも自由に入手・利用す ることができます。 300 301 301 補足 データマイニング 【 data mining 】 小売店の販売データや電話の通話履歴、クレジットカードの利用 履歴など、企業に大量に蓄積されるデータを解析し、その中に潜 む項目間の相関関係やパターンなどを探し出す技術です。 302 303 303 304 304 さらに、信頼性の高いメッセージング機能を使用し、スケーラプルな分散アプリケー ションを実現するとともに、クラウドとオンプレミスのエンタープライズ環境の両方で 動作するハイプリッドソリューシヨンを実現できるのが、Windows Azureの最大の 特徴です。 Windows Azureの分散キャツシュおよびCDNサービスにより、世界中のどこで あっても、待機時問の短い、優れたアプリケーションバフォーマンスが提供されて います。 305 Windows Azure は、アプリケーシヨンプラツトフォームとしてPaasを中心にサー ビスを展開してきました。 306 307 307 補足 分散キャッシュ 近年、大量のデータを扱う大規模システムでは、データのアクセス性能を向 上させるために分散キャッシュ技術が必須のものとなってきています。 キャッシュとは頻繁に使われるデータをメモリ内に保持し処理の高速化を図 ること、またはそのメモリのことをいいます。 従来より、高速なデータアクセスを実現するにはキャッシュ技術が有効であ りましたが、、システムで扱うデータ量の増大に伴い、1台のサーバに搭載可能 なメモリ量では必要なデータをすべて保持することができなくなってきました。 その解決策として、分散キャッシュ技術が今、注目を集めています。 308 309 309 補足 CDN (Content Delivery Network コンテンツ配信ネットワーク) インターネット上にキャッシュサーバーを分散配置し、エンドユーザーに最も 近い経路にあるキャッシュサーバーから画像や動画などのWebコンテンツを、 オリジナルのWebサーバーに代わって配信する仕組みを意味します。 310 311 311 補足 PaaS 【 Platform as a Service 】 アプリケーションソフトが稼動するためのハードウェアやOSなどの 基盤(プラットフォーム)一式を、インターネット上のサービスとして遠 隔から利用できるようにしたものです。 また、そのようなサービス や事業モデルを言います。 312 Windows AzureのべースはクラウドOS として基盤機能を提供する「コン ピューティング」、「データ管理」、「ネットワーク」で構成されています。 その上にサービスアプリケーション開発に必要なクラウドベースのサービスコン ポーネントとして、アクセス制御やメディアサービスなどが用意されています。 313 314 314 315 315 316 316 317 317 318 318 319 319 マイクロソフトのクラウドOSは、3種類のクラウドサービスの総称であり、独自の 構成を築いています。 3種類のクラウドとは、 ①パプリッククラウドであるWindows Azure ②Windows Server 2012およびSystem Center2012を組み合わせて構築した プライベートクラウド、 ③Windows Server 2012とSystemCenter2012を組み合わせて構築したサー ドパーティ (クラウドサービスプロバイダー) のパプリッククラウド です。 320 320 321 321 補足 Microsoft System Center 2012 「System Center」とは、マイクロソフトが提供する運用管理製品のブランド名で す。 従来のSystem Center 2008以前は、PCの管理やシステムの稼働監視ツールな どを、それぞれ個別の製品として提供されてきました。 System Center 2012という最新のバージョンではバラバラな販売形態を改め、 1つの製品(DatacenterとStandardという2つのエディション)として提供すること になりました。 この2つのエディションも、利用する仮想マシンの台数によってどちらかを選択す る必要がありますが、含まれる機能に差はありません。 これまでのように、機能ごとに対応製品を追加購入する必要はなく、1つ の契約に含まれる複数の機能の中で、何から利用するか、どのような組 み合わせで利用するかを検討すればよいだけになりました。 322 323 323 Windows Azureの構築に使用しているソフトウェアは販売されていませんの で、特定のソフトウェアではなく、同じ管理ツール、同じ管理用 APIが利用でき る3種類のクラウドを行き来する仕組みを「クラウドOS」と呼んでいます。 マイクロソフトが目指すクラウドOSは、アプリケーションの配置場所がオンプレミ スのデータセンターつまりプライベートクラウドにあっても、 Windows Azureの パプリッククラウドであっても、あるいはクラウドサービスプロバイダーにあっても、 1つのコンヒュータのように扱うことができる、首尾一貫したノウハウを取得できる プラットフォームであることが特徴です。 324 324 325 325 326 326 データセンターにインストールした Windows Azure パックは System Center および Windows Server と統合され、以下の機能があります。 複数のテナント用の管理ポータル Web サイト、バーチャル マシン、サービス バスなどのサービスのプロビ ジョニング、監視、および管理を行うための Windows Azure と一貫し たカスタマイズ可能なセルフサービス型のポータル エクスペリエンス。 管理者向けの管理ポータル リソース クラウド、ユーザー アカウント、およびテナントのサービス、見 積もり、価格設定を構成および管理するための管理者用ポータル。 327 マイクロソフトのクラウドOSの内容をもう少し具体的に見て行くと、オープンな開発 環境で、一元的なシステム管理ができ、共通のデータベースを持ち、基盤としての 仮想化が実現しています。 マイクロソフトは「Windows Azure Pack」 という追加ソフトゥエアを提供し、 Windows Server 2012とSystem Center 2012を組み合わせて構築したクラウ ドでも、 Windows Azureと同じ管理用APIや管理用UI(ユーザーインタフェース) を利用できるようにしています。 328 サービス管理 API 管理ポータルの機能の基盤であるサービス管理 API は、カスタマー ポータルや課金システムを始めとする多様な統合シナリオを実現する OData REST API です。 329 Web サイト Windows Azure の Web サイトと一貫したこのサービスは、ASP.NET、PHP、 および Node.js Web アプリケーション用の高密度でスケーラブルな Web 共有 プラットフォームを提供する場合に役立ちます。 このサービスには、一般的な オープン ソース Web アプリ ケーションのカスタマイズ可能 な Web アプリケーション ギャラ リーおよび社内で開発された Web サイトとアプリケーション 用のソース コントロール システ ムとの統合が含まれています。 330 バーチャル マシン Windows Azure の仮想マシンと一貫したこのサービスでは、サービスとしての インフラストラクチャ (IaaS) 機能を Windows および Linux の仮想マシン (VM) に提供できます。このサービスには、VM テンプレート ギャラリー、スケー リング オプション、および仮想ネットワーキング機能が含まれています。 サービス バス Windows Azure のサービス バスと一貫したこのサービスでは、分散ア プリケーションの間で信頼性の高いメッセージング サービスを提供できま す。このサービスには、キューとトピックベースのパブリッシュ/サブスクラ イブ機能が含まれます。 331 331 自動化と拡張性 Windows Azure パックには、自動化に加えて、追加 のカスタム サービスを Runbook エディタおよび実行 環境などのサービス フレームワークに統合するための 機能も含まれています。 332 Windows Azure Packの提供により、クラウドOSの管理ツールや管理APIが、 windows Azureベーに一元化されるハイプリッドクラウドの構築・管理・運 用が容易になり、エンタープライズ領域でのクラウド活用がますます活発になると 思います。 333 WebサイトはWindows Azureのコンビューティングサービスの中でも最も導入 が簡単なサービスです。 またWeb上にサイトを公開するためのサービスでもあ ります。 WebサイトはWindows AzureのPaaSサービスであり、また、オンプレミスの Windows serverにもWindows Azure Pack の一部として導入可能であるた め、うまく活用すると有意義だと思います。 334 335 335 .NETだけでなく、PHPやNode.jsなどのオープンソース言語にも対応しており、シ ンプルなサイトやプログ、ECサイトであれぱ、非常に簡単かつ短時問で公開でき るのが特徴となっています。 336 補足 PHP 【 PHP : Hypertext Preprocessor 】 動的にWebページを生成するWebサーバの拡張機能の一つです。 また、そこで使われるスクリプト言語を言います。 レイアウトの「雛形」となるHTMLファイル内に、処理内容を記述したスクリプト を埋め込み、処理結果に応じて動的に文書を生成し、送出することができます。 プログラムの表記法はC言語、Java、Perlの各言語から転用したものがベースと なっていますが、PHP独自のものもあります。 言語仕様やプログラムはオープンソースソフトウェアとして無償で入手することがで きます。 337 337 338 338 補足 Node.js Node.js はサーバー・サイドの JavaScript インタープリターであり、 サーバーの動作に関する概念を変えるものです。 Node.js が目指しているのは、プログラマーが非常にスケーラビリティー の高いアプリケーションを構築できるようにすること、そして何万もの同時 接続をたった 1 台の物理マシンで処理できるコードを作成できるようにす ることです。 339 340 340 Webサイトでは、カスタムのWebサイトをから構築することも可能ですが、Windows Azure 管理ポータルのギャラリーで事前構成済みのWebサイトのパッケージを Web画面に従って選択するだけで導入できます。 用意されているのは、CMSやプログ、フォーラム、Eコマース(ECサイト)、 Wiki、 アプリケーションフレームワーク や プログラムテンプレートなどです。 例えぱ、ブログやサイトでよく利用される WordPress もギャラリーから導入 でき、導入後にデザインテンプレートを適用するだけでオリジナルのサイトを短 期間で公開できます。 341 341 ギャラリーには、Microsoft、サード パーティ企業、およびオープン ソー ス ソフトウェア活動によって開発された多種多様な人気の Web アプリ ケーションが用意されています。 ギャラリーから作成した Web アプリケーションは、Windows Azure 管 理ポータルへの接続に使用するブラウザー以外に、他のソフトウェアを インストールする必要はありません。 342 Windows Azure Web サイト のギャラリーに WordPress の日本語テン プレートが追加され、数クリックで Windows Azure で WordPress 日本 語版がインストールされた Web サイトが利用可能になります。 Windows Azure 管理ポータルから [新規作成] → [Web サイト] → [ギャラ リーから] をクリックして、Windows Azure Web サイトのギャラリーを表示し、 WordPress (Japanese) を選択します。 URLの指定、データベース (新しく作成、または既存データベースを使用)、 リージョン(日本に一番近い東アジアなど) を選択し、他の項目は適時設定 します (←デフォルトのままでもインストールできます)。 343 343 344 344 345 345 管理ポータルで Web サイトの作成が完了したら、指定した URL をク リックし、WordPress の初期設定を行ってください。初期設定画面も日 本語になっています。管理ポータルで Web サイトの作成が完了したら、 指定した URL をクリックし、WordPress の初期設定を行ってください。 初期設定画面も日本語になっています。 346 347 347 設定が完了すると、WordPress の管理画面やサイトが利用できるよう になります。 348 349 349 本資料の関連資料は下記をクリックして PDF一覧からお入り下さい。 ITライブラリー (pdf 100冊) http://www.geocities.jp/ittaizen/itlib1/ 目次番号 453番 454番 他 350 350 351