============================== アプリケーションをデプロイする ============================== 以下では、ここまでに作成したDjangoアプリケーションを Windows Azureクラウドサービスとしてデプロイする方法について説明します。 リモートデスクトップ接続の設定 ============================== リモートデスクトップの設定を追加した状態のアプリケーションをクラウドサービスにデプロイすることで、 デプロイ後の各インスタンスに対してリモートデスクトップ接続することが可能となります。 リモートデスクトップ接続の設定は、アプリケーションをクラウドサービスにデプロイするうえで必須ではありませんが、 デプロイしたアプリケーションの動作不具合が発生した場合など、インスタンスの状態を確認するうえで 非常に重要な手段となりますので、アプリケーションのデプロイを行う前にリモートデスクトップ接続を 設定しておくことをお勧めします。 アプリケーションにリモートデスクトップ設定を追加する ---------------------------------------------------- Windows Azure PowerShellでクラウドサービスプロジェクトのルートディレクトリに 移動し、以下のコマンドを実行します。[username]には、 リモートデスクトップ接続時に使用する好きなユーザ名を入力してください。 コマンドを実行するとパスワードの入力を促されますので、任意のパスワードを 続けて入力します。 .. code-block:: console > Enable-AzureServiceProjectRemoteDesktop [username] 上記のコマンド実行により、新しい証明書がローカルコンピュータの証明書ストア内に作成され、 その証明書により暗号化されたパスワードと、入力したユーザ名が リモートデスクトップ接続情報として使用されるための設定が クラウドサービスプロジェクトの設定ファイル内に追加されます。 クラウドサービスに管理証明書を追加する -------------------------------------- 先のコマンド実行により証明書ストア内に作成された証明書は、 リモートデスクトップ接続のパスワード検証で使用するために、 予めクラウドサービス側にアップロードしておく必要があります。 以下のコマンドを実行して、ローカルコンピュータの証明書管理コンソールを起動します。 .. code-block:: console > certmgr.msc 画面左側のフォルダツリーで「個人」→「証明書」を選択して 作成された証明書(発行者が「Windows(R) Azure(TM) Encription Tool」)を選び, コンテキストメニュー「すべてのタスク」→「エクスポート」を選択して 証明書のエクスポートウィザードを起動します。 .. image:: images/deploy_application/112.png :width: 448 :height: 315 ウィザードにおける各質問項目では以下を選択してください。 * 秘密キーのエクスポート→「はい」 * エクスポートファイルの形式→「Personal Information Exchange - PKCS #12 (.PFX)」 上記の通り選択してウィザードを進めると秘密キー保護用のパスワードの入力を求められますので、 任意のパスワードを入力します。最後にエクスポートする証明書ファイルの出力先と名前を尋ねられますので、 入力してエクスポートを完了してください。 .. image:: images/deploy_application/118.png :width: 440 :height: 412 管理ポータル上でアプリケーションのデプロイ先とするクラウドサービスを選択し、 メニュー「証明書」→「証明書をアップロードします。」より、ローカルコンピュータ上で エクスポートした証明書ファイルをアップロードします。パスワード入力欄には エクスポート時に入力したパスワードを入力します。 .. image:: images/deploy_application/121.png :width: 445 :height: 312 アプリケーションのデプロイ ========================== 発行設定ファイルの取得とインポート ---------------------------------- まず以下のコマンドを入力し、Windows Azureサブスクリプション情報を Windows Azure PowerShellに取り込むための発行設定ファイルを管理ポータルから ダウンロードします。 .. code-block:: console > Get-AzurePublishSettingsFile コマンドを実行すると、Webブラウザが起動して管理ポータルへのログオンを 促されます。ログオンすると以下のページが表示されて発行設定ファイルの ダウンロードが始まりますので、ローカルコンピュータ上に保存します。 .. image:: images/deploy_application/110.png :width: 445 :height: 312 発行設定ファイルのダウンロードが完了後、以下のコマンドを実行して ダウンロードした発行設定ファイルをWindows Azure PowerShellにインポートします。 [PATH_TO_PUBLISHSETTINGFILE]には、ダウンロードした発行設定ファイルのパスを 入力してください。 .. code-block:: console > Import-AzurePublishSettingsFile [PATH_TO_PUBLISHSETTINGFILE] 発行設定ファイルのインポートが完了後、Windows Azure PowerShell上で以下のコマンドを実行し、 Windows Azureサブスクリプションが登録されたことを確認します。 .. code-block:: console > Get-AzureSubscription アプリケーションのデプロイ -------------------------- アプリケーションを所定の形式にパッケージング、 Windows Azureにアップロードしてクラウドサービスのインスタンスにデプロイします。 Windows Azure PowerShellでクラウドサービスプロジェクトのフォルダに移動し、以下のコマンドを実行します。 コマンドが完了すると、フォルダ内に ``cloud_package.cspkg`` という名前のファイルが出力されます。 これがWindows Azureクラウドサービスにデプロイするためのパッケージファイルになります。 .. code-block:: console > Save-AzureServiceProjectPackage 次に、管理ポータルより対象のクラウドサービス上にパッケージファイルをデプロイします。 クラウドサービスでは「運用」と「ステージング」の2つのサービス環境が提供されており、 それぞれに対し別個にデプロイすることができます。 まずは「ステージング」に対してデプロイを行いましょう。 管理ポータル上で対象のクラウドサービスを選択し、 メニュー「ステージング」より「新しいステージング環境のデプロイをアップロードします。」を 押下すると、パッケージのアップロード画面が表示されます。 画面内の「デプロイ名」には任意の名前を入力してください。 「パッケージ」には先に出力されたパッケージファイルを、 「構成」には、出力されたパッケージファイルと同じフォルダ内にある 構成ファイル ``ServiceConfiguration.Cloud.cscfg`` をそれぞれ指定します。 「1つ以上のロールに単一のインスタンスが含まれている場合でもデプロイします。」 および「デプロイの開始」にもチェックを入れて入力を完了すると、デプロイが開始します。 .. image:: images/deploy_application/123.png :width: 445 :height: 312 デプロイが完了するまで10分ほど時間を要するので、デプロイの完了を待ちます。 デプロイの進行状況は管理ポータル上に随時表示されます。 デプロイが完了すると、管理ポータルのクラウドサービス一覧や ダッシュボードに表示されるステータスが「実行中」になりますので、 この状態となったらダッシュボード内にある「サイトのURL」に Webブラウザでアクセスし、サービスが稼働していることを確認します。 .. image:: images/deploy_application/126.png :width: 445 :height: 312 .. image:: images/deploy_application/127.png :width: 445 :height: 312 なお、アプリケーションのパッケージングとWindows Azureクラウドサービスへのデプロイの双方を 一度に行う場合は、パッケージングの時と同じコマンドに対して、管理ポータル上で作成した クラウドサービスの構成を指定のうえ実行します。 .. code-block:: console > 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"等) インスタンスへのリモートデスクトップ接続 ---------------------------------------- 管理ポータルのダッシュボード上にあるメニュー「インスタンス」に進むと、 対象のクラウドサービスで稼働中のインスタンス一覧が表示されます。 この一覧上でインスタンスを選択して画面下部メニュー内の「接続」を押下すると、 リモートデスクトップ接続設定ファイルがダウンロードされます。 .. image:: images/deploy_application/128.png :width: 445 :height: 312 このファイルを開いて先に設定したユーザ名とパスワード入力すると、 インスタンスのリモートデスクトップにログインすることができます。 .. image:: images/deploy_application/133.png :width: 476 :height: 268