目次

前のトピックへ

1.5. アプリケーションを作成する

次のトピックへ

1.7. Windows Azure SQL データベースを使用する

このページ

1.6. アプリケーションをデプロイする

以下では、ここまでに作成したDjangoアプリケーションをWindows Azureクラウドサービスとしてデプロイする方法について説明します。

1.6.1. リモートデスクトップ接続の設定

リモートデスクトップの設定を追加した状態のアプリケーションをクラウドサービスにデプロイすることで、デプロイ後の各インスタンスに対してリモートデスクトップ接続することが可能となります。

リモートデスクトップ接続の設定は、アプリケーションをクラウドサービスにデプロイするうえで必須ではありませんが、デプロイしたアプリケーションの動作不具合が発生した場合など、インスタンスの状態を確認するうえで非常に重要な手段となりますので、アプリケーションのデプロイを行う前にリモートデスクトップ接続を設定しておくことをお勧めします。

1.6.1.1. アプリケーションにリモートデスクトップ設定を追加する

Windows Azure PowerShellでクラウドサービスプロジェクトのルートディレクトリに移動し、以下のコマンドを実行します。[username]には、リモートデスクトップ接続時に使用する好きなユーザ名を入力してください。コマンドを実行するとパスワードの入力を促されますので、任意のパスワードを続けて入力します。

> Enable-AzureServiceProjectRemoteDesktop [username]

上記のコマンド実行により、新しい証明書がローカルコンピュータの証明書ストア内に作成され、その証明書により暗号化されたパスワードと、入力したユーザ名がリモートデスクトップ接続情報として使用されるための設定がクラウドサービスプロジェクトの設定ファイル内に追加されます。

1.6.1.2. クラウドサービスに管理証明書を追加する

先のコマンド実行により証明書ストア内に作成された証明書は、リモートデスクトップ接続のパスワード検証で使用するために、予めクラウドサービス側にアップロードしておく必要があります。以下のコマンドを実行して、ローカルコンピュータの証明書管理コンソールを起動します。

> certmgr.msc

画面左側のフォルダツリーで「個人」→「証明書」を選択して作成された証明書(発行者が「Windows(R) Azure(TM) Encription Tool」)を選び,コンテキストメニュー「すべてのタスク」→「エクスポート」を選択して証明書のエクスポートウィザードを起動します。

../../_images/112.png

ウィザードにおける各質問項目では以下を選択してください。

  • 秘密キーのエクスポート→「はい」
  • エクスポートファイルの形式→「Personal Information Exchange - PKCS #12 (.PFX)」

上記の通り選択してウィザードを進めると秘密キー保護用のパスワードの入力を求められますので、任意のパスワードを入力します。最後にエクスポートする証明書ファイルの出力先と名前を尋ねられますので、入力してエクスポートを完了してください。

../../_images/118.png

管理ポータル上でアプリケーションのデプロイ先とするクラウドサービスを選択し、メニュー「証明書」→「証明書をアップロードします。」より、ローカルコンピュータ上でエクスポートした証明書ファイルをアップロードします。パスワード入力欄にはエクスポート時に入力したパスワードを入力します。

../../_images/121.png

1.6.2. アプリケーションのデプロイ

1.6.2.1. 発行設定ファイルの取得とインポート

まず以下のコマンドを入力し、Windows Azureサブスクリプション情報をWindows Azure PowerShellに取り込むための発行設定ファイルを管理ポータルからダウンロードします。

> Get-AzurePublishSettingsFile

コマンドを実行すると、Webブラウザが起動して管理ポータルへのログオンを促されます。ログオンすると以下のページが表示されて発行設定ファイルのダウンロードが始まりますので、ローカルコンピュータ上に保存します。

../../_images/110.png

発行設定ファイルのダウンロードが完了後、以下のコマンドを実行してダウンロードした発行設定ファイルをWindows Azure PowerShellにインポートします。[PATH_TO_PUBLISHSETTINGFILE]には、ダウンロードした発行設定ファイルのパスを入力してください。

> Import-AzurePublishSettingsFile [PATH_TO_PUBLISHSETTINGFILE]

発行設定ファイルのインポートが完了後、Windows Azure PowerShell上で以下のコマンドを実行し、Windows Azureサブスクリプションが登録されたことを確認します。

> Get-AzureSubscription

1.6.2.2. アプリケーションのデプロイ

アプリケーションを所定の形式にパッケージング、Windows Azureにアップロードしてクラウドサービスのインスタンスにデプロイします。Windows Azure PowerShellでクラウドサービスプロジェクトのフォルダに移動し、以下のコマンドを実行します。コマンドが完了すると、フォルダ内にcloud_package.cspkgという名前のファイルが出力されます。これがWindows Azureクラウドサービスにデプロイするためのパッケージファイルになります。

> Save-AzureServiceProjectPackage

次に、管理ポータルより対象のクラウドサービス上にパッケージファイルをデプロイします。クラウドサービスでは「運用」と「ステージング」の2つのサービス環境が提供されており、それぞれに対し別個にデプロイすることができます。

まずは「ステージング」に対してデプロイを行いましょう。管理ポータル上で対象のクラウドサービスを選択し、メニュー「ステージング」より「新しいステージング環境のデプロイをアップロードします。」を押下すると、パッケージのアップロード画面が表示されます。画面内の「デプロイ名」には任意の名前を入力してください。「パッケージ」には先に出力されたパッケージファイルを、「構成」には、出力されたパッケージファイルと同じフォルダ内にある構成ファイルServiceConfiguration.Cloud.cscfgをそれぞれ指定します。「1つ以上のロールに単一のインスタンスが含まれている場合でもデプロイします。」および「デプロイの開始」にもチェックを入れて入力を完了すると、デプロイが開始します。

../../_images/123.png

デプロイが完了するまで10分ほど時間を要するので、デプロイの完了を待ちます。デプロイの進行状況は管理ポータル上に随時表示されます。デプロイが完了すると、管理ポータルのクラウドサービス一覧やダッシュボードに表示されるステータスが「実行中」になりますので、この状態となったらダッシュボード内にある「サイトのURL」にWebブラウザでアクセスし、サービスが稼働していることを確認します。

../../_images/126.png ../../_images/127.png

なお、アプリケーションのパッケージングとWindows Azureクラウドサービスへのデプロイの双方を一度に行う場合は、パッケージングの時と同じコマンドに対して、管理ポータル上で作成したクラウドサービスの構成を指定のうえ実行します。

> Publish-AzureServiceProject -ServiceName [ServiceName] -StorageAccountName [StorageAccountName] -Slot [Slot] -Location [Location]

以下は主なオプションです。詳細については、Windows Azure PowerShellよりコマンドのヘルプ(get-help Publish-AzureServiceProjectで表示)を参照してください。

  • ServiceName: クラウドサービス名
  • StorageAccountName: ストレージアカウント名
  • Slot: デプロイ先の環境(”Production”または”Staging”)
  • Location: デプロイ先の地域(”East Asia”等)

1.6.2.3. インスタンスへのリモートデスクトップ接続

管理ポータルのダッシュボード上にあるメニュー「インスタンス」に進むと、対象のクラウドサービスで稼働中のインスタンス一覧が表示されます。この一覧上でインスタンスを選択して画面下部メニュー内の「接続」を押下すると、リモートデスクトップ接続設定ファイルがダウンロードされます。

../../_images/128.png

このファイルを開いて先に設定したユーザ名とパスワード入力すると、インスタンスのリモートデスクトップにログインすることができます。

../../_images/133.png