SHOEISHA iD

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

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

Windows Azure新機能チュートリアル

Full IISでIISの構成を変更しよう

Windows Azure新機能チュートリアル(4)

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

ダウンロード sample.zip (1.1 MB)

Web配置(Web Deploy)

 4/12から4/14に、米国で開催されたマイクロソフト社のイベント MIX11で発表されたWindows Azureの追加機能の1つにWeb配置機能があります。これは、一度Windows Azureへアプリケーションパッケージを配置しておけば、次回からはWeb配置機能を利用してWebアプリケーションのみ入れ替えることができます。通常のIISでできることが、またひとつAzureでも可能になったといえます。

 ただし、以下のように、PaaS環境であるWindows Azure固有の制限も存在します。

  1. Web配置は、1ロール1インスタンスのみ可能です。1インスタンスならば、複数Webロールでも利用可能です。
  2. 反復的な開発とテストのシナリオのみ対象としています。
  3. Web配置は、パッケージの作成をバイパスします。Web ページへの変更は永続的ではありません。変更を保存するには、パッケージし、サービスを展開する必要があります。

 結論として、「永続的な変更でないこと」を理解し、あくまで開発やテストでの利用に限って利用するようにしましょう。また、本機能を利用するには、Windows Azure SDK 1.4 Refresh版が必要です。

Web配置の有効化

 それでは、実際にWindows AzureのWeb配置機能を試してみましょう。初期状態のまま配置し、Web配置機能で変更してみます。そのためサンプルファイルはありません。

 Visual Studioを起動し、[ファイル]-[新規作成]-[プロジェクト]を選択します。Windows Azureプロジェクトを選択し[OK]ボタンをクリックします。新しいWindows Azureプロジェクト作成画面が表示されるため、ASP.NET Webロールを[OK]ボタンをクリックし、新しいソリューションを作成します。

 プロジェクトを作成したら、初期状態のままパッケージの配置を行います。ソリューションエクスプローラーからプロジェクトを選択し、コンテキストメニューから[発行]を選択します。

 Windows Azure プロジェクトの配置ダイアログが表示されます。ダイアログには、[すべてのWebロールのWeb配置を有効にする]チェックボックスがあり、これを有効にすることでWeb配置機能を利用することができます。ただし、Web配置機能を有効にするためには、あらかじめリモートデスクトップ接続の構成が必須です。

 「Windows Azureの運用/デバッグを効率化する リモートデスクトップ」の記事を参考に、リモートデスクトップ接続を構成すると、[すべてのWebロールのWeb配置を有効にする]のチェックボックスをチェックすることができるようになるため、チェックをオンにします。(図7)。

図7 Web配置を有効化
図7 Web配置を有効化

 

 警告アイコンにマウスを載せると上の図の通り、自己証明書を利用する旨の警告メッセージが表示されるため、利用にあたっては注意してください。

 パッケージの配置が完了したら、Webサイトを開いてみます。いつもの見慣れた画面が確認できます。

図8 初期状態のWebアプリケーション画面
図8 初期状態のWebアプリケーション画面

Web配置の利用

 パッケージの配置が完了し、Webアプリケーションの画面が確認できたら、Webアプリケーションを変更します。Webフォームをリスト6のように修正しますが、自由に修正していただいて構いません。

リスト6 Webフォーム(Default.aspx)
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        Web配置 サンプル
    </h2>
    <p>
        日付:<%= System.DateTime.Now %>
    </p>
</asp:Content> 

 Webアプリケーションの修正が終わったら、Web配置を実行します。Web配置は、Webロールプロジェクトを選択して[発行]を選択します。同じ発行で紛らわしいのですが、パッケージを配置する場合は、Azureプロジェクトのコンテキストメニューから[発行]を選択し、Web配置を利用する場合は、Webロールのコンテキストメニューから、[発行]を選択します。

 下図のWebの発行ダイアログが表示されます。サービスURLと、サイト/アプリケーションは既定の値が設定されています。ユーザー名とパスワードに、リモートデスクトップ接続の構成で設定したユーザー名とパスワードを入力します。[発行]ボタンをクリックし、エラーが表示されなければWeb配置は成功です。

図9 Webの発行画面
図9 Webの発行画面

 Web配置が完了したら、ブラウザをリロードしてみましょう。修正した内容が、即座に反映されていることが確認できます。

図10 Web配置後のWebアプリケーション画面
図10 Web配置後のWebアプリケーション画面

Web配置の注意

 以下の場合、Web配置が有効化できないことを確認しています。

  1. Web配置は、Visual Studioからパッケージの配置を行ったときのみ有効化されます。サービスパッケージの作成をVisual Studioから行って、管理ポータルから配置する方法では有効化できません。
  2. WebロールがFull IISではなく、HWCとして構成されていると、本機能は有効化できません
  3. ソリューションをReleaseビルドで構成していると、本機能は有効化できません。

 インスタンス数を2以上に設定した状態で、パッケージの配置を行おうとすると、図11の警告ダイアログが表示されます。ダイアログの通り、強制的に1インスタンスで配置されますが、サービス構成ファイルのインスタンス数が書き換えられるわけではありません。

図11 インスタンス制限の警告画面
図11 インスタンス制限の警告画面

 先ほどのWeb配置のダイアログをみて気づいた方もいると思いますが、Web配置機能を有効にすると、InputEndpointを1つ消費することになります。図12の通り8172番ポートを利用していることが分かります。

図12 管理ポータルのInputEndpoint一覧
図12 管理ポータルのInputEndpoint一覧

まとめ

 IISのカスタマイズ方法は、TechNetやMSDNによって、幅広く公開されています。スタートアップタスクと組み合わせて、柔軟なカスタマイズを行うことによって、PaaSならではのAzureサービスが提供できると思います。

 またWeb配置機能の登場によって、より開発しやすくなるのではないかと思います。

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

  • 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プロジェクト statemachine(statemachine)

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング