Umbraco と Windows Azure ~ クラウドカバー Episode 44
みなさん、こんにちは。
前回に引き続きChannel 9 のコーナー Cloud Cover のご紹介。
Episode 44 となる今回はASP.NET ベースの CMS(Content Management Server)である Umbraco("あんぶらこ"、あるいは "あんぶろこ" (のような発音))の Windows Azure への対応について紹介します。
ビデオはこちら –>
さて、今回は Steve Marx が Mix11 でラスベガスに行っているため、キャプテン アイデンティティ こと Vittorio Bertocci が登場。
いつも通り、ニュースから。
セッションのビデオが無償公開されています。最新の Azure 情報を確認するにはもってこいのビデオですので、ぜひご活用ください(ただし、一部録画されていないセッションもあるようです)。
職場ではなかなか見る時間が、、、、という方は通勤のお供にぜひダウンロードを。まとめてダウンロードしたい!という方は、https://channel9.msdn.com/Events/MIX/MIX11/RSS この RSS を Zune ソフトウェア等で登録すれば(Podcast機能を使って)一気にダウンロード可能です。
今回の CLoud Cover お休み中の Steve のセッションもあります♪
Access Control Service の新バージョン(ver. 2) のリリースが行われました。v.2 においては、Facebook、Windows LiveID、Google および Yahoo のISを利用したシングルサインオンの機能が追加されています。
この ACS の学習は Identity Developer Training Kit および Windows Azure の新しい(2011年4月版)トレーニングキット に含まれています。また、Umbaraco / Wordpress のプラグインやビデオ、学習のための様々なリソース、そして ACS を使ったサイトが紹介されています。下記のスクリーンショットは、サンプルとして公開されている myToDo のサイトから。ログインの際に Yahoo! と Facebook のアカウントを利用することが可能です。
◆ Azure SDK 1.4 のリフレッシュのリリース
この SDK 1.4 リフレッシュのリリースでは、SDK 1.4 に対するセキュリティ強化などが行われていますが、もう一つの注目点は、WebDeploy 機能の提供です。WebDeploy は Visual Studio が提供する「開発中の Web アプリケーションを、本番(あるいはステージング)環境へ配置(展開)する」ための機能です。
WebDeploy の機能を利用すると、Visual Studio からクラウド上の Web Role に対して直接 Web アプリケーションのデータをアップロードすることが可能になります。これまでは、Visual Studio で Azure 用の配置パッケージを作成、パッケージをアップロード、インスタンス(Web Role等)を立ち上げ、(インスタンスが立ち上がるまでコーヒーを飲んだりして休憩)、動作を確認、といった手順で実施していた作業が一気に短縮されることになります
ただしこの機能、Cloud Cover の中でも言及されていますが、Web Role の各インスタンスに対して更新をかけるような作業を行うため、インスタンスが再度立ち上がった場合は更新分のデータが消える(元々アップロードしていたパッケージ情報に初期化される)ため、本番環境(Production)では使用しないようにご注意ください。
開発時の時間の短縮に有効な機能であると割り切っていただきご使用ください。
なお、Web アプリケーションのアップロードを早く行う、という点に関して別のアプローチが Cloud Cover Episode 39 – Dynamically Deploying Websites in a Web Role にて紹介されていますので、ご興味ある方はぜひそちらもチェックください(このアプローチは今回の Cloud Cover のメイントピックである Umbraco 用アクセラレーターでも使用されているアプローチです)。
◆ Azure Storage チームによる複数インスタンスからの Windows Azure Drive の共有
Azure ドライブを複数インスタンスから共有するための方法の紹介です。通常、Azure ドライブをマウントし書き込みでも使用する場合、一つのインスタンスからのみしかマウントできない(そのため他のインスタンスでも書き込み処理を行いたい場合はアンマウントの必要がある)のですが、今回紹介する方法では、一つのインスタンスでマウントを行い、そのドライブをさらに共有することで複数のインスタンスからの書き込みを可能にしよう、とするアイディアです。
参考までにフォルダの共有に関してもう少し詳しい記事として Sharing Folder in Azure という記事もありますのでご興味あればぜひ。
◆ Identity Developer Training Kit リリース
ACSリリースに合わせてすべてアップデートされた Identity 関連のトレーニングキットです。Windows Phone 7 に関連するラボもあります。このラボ(WP7のラボ)では、OAuth2 を使った OData へのアクセス、といった興味深いトピックもカバーされています。
なお、ACSに関しては、本年(2011年)中は、無償でご利用いただくことが可能とのことです。
◆ Windows Azure Training Kit 2011年4月版 リリース
ハンズオンラボの更新などがありますが、中でも Wade が強調していたのは、Windows Azure の新機能 Traffic Manager のハンズオンラボ(Traffic Manager は現在 CTP として公開。正式リリースはもう少しお待ちください)と、SQL Azure の Reporting Service のハンズオンラボ。特に Traffic Manager はこれにより、データセンターをまたいだロードバランスが可能になるすぐれものです。
ということで、今回の本題 Umbraco。
Umbraco は先の Mix11 のキーノートにおいて、MVC3 への対応、および Windows Azure への対応を発表している期待の CMS です(Mix11 における Umbraco の紹介は https://channel9.msdn.com/events/mix/mix11/key01 のビデオの 1時間18分ごろから始まります。Umbraco の管理ページから Azure のインスタンスを簡単操作で追加♪)。
Mix11 においては次期バージョンの Umbraco の機能強化の紹介という流れで Windows Azure への対応が紹介されましたが、今回の Cloud Cover では、その機能の一部を先取りするためのアクセラレーターとして、Windows Azure Accelerator for Umbraco を取り上げます。
まずアクセラレーターを https://waacceleratorumbraco.codeplex.com/ からダウンロードし、自己解凍。以下のような Web ページが必要なソフトウェアとともにローカルの PC に展開されます。
以下、この Web ページの Get Started の内容を追うような感じで Cloud Cover が進みます。
まずは、ストレージアカウントの作成を行います。
次にアクセラレーターを展開したフォルダ(デフォルトでは C:\WindowsAzure\UmbracoAccelerator 。別途指定した場合はそちらのフォルダ)直下にある StartHere というスクリプトを立ち上げ、先ほど作成したストレージアカウントの情報(名前と、アクセスキー)を入力します。このストレージには後程作成する Umbraco 本体の情報が格納されることになります。
次にアクセラレーター本体を Windows Azure へアップロードします。アクセラレーターを展開したフォルダの直下に code というフォルダがあるのでそこを開くと、今回のアクセラレーターのコードがあります。試しに code フォルダの直下の UmbracoAcceraleraror フォルダを除くと、先ほどの StartHere のスクリプトを通じて設定ファイル(ServiceConfiguration.cscfg)が書き換わっているのがわかります(下記は私の環境でのスクリーンショット。タイムスタンプなんかにも注目)。
この設定ファイルを含む形で、Windows Azure へアップロードを行うパッケージを作成します(UmbracoAccelerator のプロジェクトを右クリックして、”発行” を選択すると下図のようにダイアログが立ち上がります)
次にでき上がった発行用のパッケージを、Windows Azure の管理ポータルを利用し、そのパッケージをアップロード。この際、証明書情報の入力が必要になります(Cloud Cover ではすでに証明書等の設定を終わらせているようで、ビデオ中ではその内容は省かれています)。この際にアクセラレーター本体に用意されている証明書を使用することもできますが(アクセラレーターの Get Started ではそのような説明になっています)、面倒くさがらずに自身の証明書を作成、エキスポートしたものをアップロードすることをお勧めします
この作業が終わると、いつもの見慣れた Windows Azure のインスタンス初期化画面が表示されます。
Umbraco のアクセラレーターでは、デフォルトで2つのインスタンスを利用する設定になっています。(Windows Azure においてはアプリケーションの稼働率を高めるために、本番環境では 2つ以上のインスタンスを使用することを推奨しています)
さて、ここで一旦スクリプトに戻り、SQL Azure の設定を行います。スクリプトで SQL Azure の設定に必要な情報を入力し、リターンを押して少し待てば Umbraco 用の SQL Azure の準備が整います(なおこの作業においてはポート 1433 を使用するので、会社等の環境で実施する際にはポートの状態(使用可能かどうか)にご注意ください)。
つぎは Umbraco 自体のダウンロード(すでにダウンロード行ておれば必要ありません。今回のアクセラレーターは Umbraco 4.7 で動作確認を行っているようなので、以前のバージョンをお持ちであれば最新版をダウンロードしたほうがよいかもしれません)。
Umbraco も CodePlex にありますので、さっくりダウンロードし、Zip を解凍しましょう。https://umbraco.codeplex.com/
解凍した Umbraco 本体のフォルダのパス情報を先ほどのスクリプトで入力すれば、Umbraco 本体の設定ファイルにおいて、SQL Azure への接続情報を追加してくれます(Cloud Cover でも言及されていますが、パス入力の際は最後の “¥” (実際には半角) をお忘れなく)。
今度は構成したファイルを Blob にアップロードするか尋ねてくるので、Y を選択して、ホストヘッダーを入力(※詳しくは後述)。立ち上がってきたダイアログでさらに必要な情報を入力すると、アップロードと設定が始まります(少し時間がかかるので、ビデオ中ではターボモードで早送りされてます )
アップロードが終了すると、ダイアログで指定した URL で Umbraco の初期設定画面が立ち上がります。なんとなく神々しい感じ。
必要な情報を入力すれば、あっというまに Umbraco サイトの出来上がり!(下記のスクリーンショットは Wade が作成した Blog のページ。ビデオでは 27分過ぎ)
なお、今回私が同じように Walkthrough していて一点はまったのがホストヘッダーの設定。
ホストヘッダーの設定は単一の Web Role インスタンスに対して、複数の Web サイトを動作させるために必要な作業です。たとえば https://blogs.msdn.com という URL における blogs といった部分がこれに当たります。上記で使用しているスクリプトにおいては、Blob へのアップロードを聞かれた後の最終場面でこの設定がありますが、以下のように、[ホストヘッダー].[ドメイン名] といった形式で指定する必要があるようです。また、引き続き出てくるダイアログにおいても同様の形式で設定する必要があるようです(最初ここの入力をスクリプトでは [ホストヘッダー] のみを、ダイアログでは [ドメイン名] のみと、と設定したりしてはまりました)
また、このホストヘッダー付きのドメイン名は、ドメイン登録事業者、あるいはそのドメインを使用しているホスティング事業者で CNAME 登録しておく必要があります。
私はホスティング事業者として ExpressWeb のサービスを使用させていただいていますが、ExpressWeb ではドメイン情報の操作画面からさっくり CNAME 登録できました。手順としては、今回の Umbraco 展開で利用したいドメイン名の管理画面で、「レコードの追加」を選んで、
レコード形式で “CNAME” を選択、サブドメインとして利用する名称(ホストヘッダの名称。たとえば blogs や umbraco)を、「レコード名」に入力し、Record Data に Windows Azure のホスト先( xxxxx.cloudapp.net )を入力する、といった感じです。
なお、この設定でたとえば blogs.example.com の CNAME 登録を行ったからと言って、ホスティングしている既存のドメインやサブドメイン(たとえば、examplet.com や shop.expamle.com ) のアプリケーションまで cloudapp.net に関連づくわけではないのでご安心を。
以下が私が今回 Azure に展開した Umbraco のサイトです。
Umbraco 自体、優れた CMS で様々な用途で使用できると思いますが、Azure でホストする一つの目的を “スケールしやすい” ところである、と考えると、Blog よりもビジネス用のサイトなどの構築に使うのがメリットがあると思いましたので、今回は Starter Kit の中から Bisuness の設定を選択してみました。デフォルトそのままのページですが明るくって、いい感じですね
では、Cloud Cover に戻って。
最後に Vittrio から ACS Extention for Umbraco (https://umbracoacsextensions.codeplex.com/)の紹介です。
ACS Extention を使用することで、Umbraco で作成する Web サイトにおいて、Facebook や Live ID といった既存の ID、あるいは ADFS による Active Directory との連携が可能になります。詳しくは Vittrio の Blog をどうぞ。
ACS Extensions for Umbraco - Part I: Setup
ACS Extensions for Umbraco - Part II: Social Providers
ACS Extensions for Umbraco - Part III: Integration with ADFS and/or Any WS-Federation provider
さて、最後に Tip of the week。
今週は Vittrio から、Sesame Data Browser が紹介されました。
ACS のポータルでは複数の情報を扱うための機能が不足しているので、この Sesame Data Browser で管理しましょう、という話。Sesame Data Browser は Silverlight のアプリケーションですが、Out Of Browser (OOB) の機能を使って、ローカルPCにインストールすることも可能です。
以上で Cloud Cover Episode 44 – Umbraco and Windows Azure の紹介は終了です。
では、Enjoy Coding!