12.運用環境の構築

初めに

 運用環境の構築に関して記述したいと思います。運用環境はユーザそれぞれでさまざまです。そのためここでは、2018年1月1日現在利用可能な Microsoft社が30日間限定で無償提供している Microsoft Azure を前提にします。
 このホームページで説明する MVC 版も、以下の手順で Azure 上で動作することを確認してあります。ただ、このページでは基本的な Azure 自体の操作方法は説明しません。 一次資料を参照してください。一次資料だけでは分かりにくかったことや、追加の説明が役立つと思われたことを重点的に説明していきます。
 ここに記述する手順は、 Web MVC アプリケーションを動かすまでになります。必要に応じて内容を読み替えてください。

  • VM の構築
    Micosoft Azure の無料登録からバーチャルマシンの構築まで
  • データベースの構築
    Azure 上にデータベースを構築し、既存のSQL Server からマイグレーションするまで
  • IIS の構築
    バーチャルマシンに IIS を組み込み、 MVC アプリケーション用のサイトを追加するまで
  • Visual Studio の設定
    Visual Studio を使用して、 IIS にデプロイするパッケージを作成するまで
  • デプロイの方法
    Visual Studio で作成したデプロイパッケージを IIS にデプロイするまで
  • 動作確認
    ブラウザからホームページを正しく参照できていることを確認します

VM の構築

 Microsoft Azure の無料登録から、バーチャルマシンの構築までは、以下の公式情報で十分作業できました。やっていることが本当に正しいのか自信が持てないので、 何度か繰り返してやってみました。初めて作業される場合は、場数を踏んでみることが必要ですね。

  • https://azure.microsoft.com/ja-jp/get-started/

携帯電話による本人確認について

 無償登録の1ステップに、携帯電話による本人確認があります。識別番号が通知されて、その値を画面から入力することを求められます。
 どうようになるのか不明なまま処理を進めますと、ただちに通話がかかってきました。ごく優しい英語と思いますが、英語の会話がスタートします。 あっと思い、メモ用紙とペンを探している間に Bye !! かなにかの最後の言葉だけ聞き取れました。
 こうなっても心配いりません。画面には、識別番号が届かなかったのボタンがありますから、クリックしてください。 私のような人向けに、連絡方法を音声通話から携帯メールに変更できます。こちらを選べば、メール本文に書かれた識別番号を画面に転記するだけですから安心です。

 Azure 認証後の画面を示します。初めての場合は、まずこの画面にとまどうと思います。(不適切な部分はマスキングしてあります)

画面1

 公式の情報に記載があるかどうか不明なことがありました。

  • 日本語環境に設定する
    VM 構築直後は、英語版の OS となっています
    コントロールパネルの「時計・言語・地域」から「言語」を選びます
    日本語言語パックを新規にインストールし、日本語を優先に変更します
    日本語表示に切り替わるのは、一度サインアウトして再度ログインしないといけません
  • 時刻を日本ローカル時刻に合わせる
    これは、作業しているときにファイルの更新時刻が合っていないことから気が付きました
    タスクバーの右端の時刻表示から、日本ローカル時に合わせておくことをお勧めします
  • 日本語の文字フォントを変更する
    OS を日本語環境に変更すると、とても見づらいフォントが使用されます
    比較的ましなフォントに変更する方法は見つけましたが、 VM の停止・再起動によりもとに戻ります
    この問題には、納得できる解決方法が見つかっていません
  • VM の停止・再起動で IP が変わってしまう
    これは Azure の仕様で、固定にする方法はないのではないかと思っています
    そのたびに、専用のリモートデスクトップ接続用アイコンをダウンロードしています
    VM はそうそう停止するものではないということだろうと思います

データベースの構築

 データベースの構築は、次の2段階で行います。ただし、ここで想定しているデータベースは、 SQL データベース限定です。 そもそも、マイグレーションツールは、SQL Server から Azure Database へのマイグレーション機能しかありません。

  • 空の SQL データベースを作成
    Azure の画面から、空のデータベースを作成します。その際に、同時にデータベースサーバも作成します
    この項目も、公式情報で作業できました
    https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-get-started-portal
  • データベースのマイグレーション
    専用のツールを使用して、既存の SQL データベースから Azure データベースにマイグレーションします
    この項目も、公式情報で作業できました
    https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-migrate-your-sql-server-database

 バーチャルマシンから Azure データベースを操作する必要があるでしょうから、使い慣れたツールをインストールすることをお勧めします。 ツールのダウンロードは、上記の Azure 画面から可能でした。私がインストールしたのは、 SQL Server 2017 Management Studio です。


SQL Server の日本語環境について

 初めて Azure データベースを作成した時、うまくないことが見つかりました。
 マイグレーションに使用したデータベースには、ストアドプロシージャが組み込まれています。 そのストアドプロシージャには、日本語の固定文字列を使用しています。例えば、データベースのフィールドに性別を示す数字項目があったとします。 数字の 0 が性別不明を、 1 が男性を、 2 が女性を表す場合に、意味不明な数字を表示するわけにいきません。数字を日本語に変換する必要がありますが、そこに固定文字を使用しています。 この固定文字が文字化けして、「?」となってしまうという問題でした。
 試行錯誤の結果、次の方法で問題を回避できました。
  • VM に日本語環境を構築
    日本語を確認し、また入力するためにも必要です
  • Azure データベースの照合順序を変更
    Azure データベースを構築する際の照合順序を日本語用(例えば、Japanese_CS_AI)に変更します
 データベースにすでに登録されている日本語データは、上記のような作業を行わない状態でも正しく読み出せました。

IIS の構築

 IIS の構築に関しては、 Azure で用意されている方法でも可能と思いますが、私がここで試したのは、 VM 上に直接 IIS の機能を追加する方法です。 それは、プログラムの仕様上 IIS からフォルダーの作成や削除を行い、そのフォルダーに画像ファイルを自由に作成することが必要です。あらかじめ用意されている方法で、そのことが可能かどうか分からなかったためです。 VM 上に一から IIS をインストールすれば、やりたいことが可能であることは分かっていましたので、こちらを選択しました。さらに、アプリケーションの動作が Visual Studio に組み込まれている 簡易 IIS と本番用の IIS で違いがでるようなことがあると大変です。その場合は、本番用 IIS を使用したデバッグ環境を構築する必要があります。そのため自分の手が届く方法が安全と判断しました。

  • VM に IIS の機能を追加
    VM 上に IIS の機能を追加します
  • デプロイ用ツールの入手とインストール
    Visual Studio で作成したデプロイ用パッケージを IIS に組み込むためのツールを利用します

 これ以後に必要な IIS へのデプロイ作業は、 こちら を参照してください。

VM に IIS の機能を追加

  • 「コントロールパネル」→「プログラム」→「Windows の機能の有効化または無効化」 の順に選択
  • 「サーバーの役割」画面まで進む
    項目はデフォルトのままで大丈夫です
  • サーバの役割を選択(下記画面2)
    「Web Server(IIS)」にチェックを入れて、「次へ」をクリック
  • サーバの機能を選択(下記画面3)
    「.NET Framework 4.6 Features」と「ASP.NET 4.6」にチェックを入れて、最後までそのまま処理します
  • IIS マネージャの確認(下記画面4)
    メニューの「管理ツール」→「インターネット インフォメーション サービス(IIS)マネージャー」を選択して、起動することを確認します
画面2
画面3
画面4

デプロイ用ツールの入手とインストール

  • デプロイ用ツールの入手
    以下の URL からデプロイ用ツールを入手します
    お使いの VM の OS に合わせて、 64 ビットと 32 ビットを選択してください
    https://www.microsoft.com/ja-JP/download/details.aspx?id=39277
  • デプロイ用ツールのインストール
    入手したインストールパッケージを実行します
    「セットアップの種類」で「完全」を選ぶ必要があるようです(下記画面5)
  • インストールの確認
    IIS マネージャを起動して、アプリケーション名の上の右メニューに「展開」があることを確認してください
    Visual Studio で作成したデプロイ用パッケージを展開する場合に使用します
    デプロイ用ツールをインストールしないと、メニューにこの項目が追加されません
画面5

デプロイ用ツールの不思議

 ここで紹介した Deploy Tool のバージョンは 3.5 です。現時点(2018/1/1)での最新は 3.6 です。
 ところが最新の 3.6 をインストールすると、 IIS のメニューに「展開」が追加されません。何度か試したのですが、対処方法が分かりませんでした。 3.6 を使用する上で、なにか設定が不足しているのかもしれません。
 バージョン 3.6 を使用してメニューに追加されなかった場合には、1つ古いバージョンのものを試してください。私が動作確認に使用したものは、この古いものになります。
 紹介文に書き込んだ URL は、3.5 を入手する場合のものになります。 3.6 を入手して試したい場合は、ネットで検索してください。容易に見つかります。

Visual Studio の設定

 ここで紹介するデプロイの方法は、 Visual Studio を使用してデプロイ用パッケージを作るというものです。 そのため、作成したパッケージを IIS にコピーして、さらに展開するという手作業が発生します。このような手作業を不要にする方法もあるようですが、試していません。

  • デプロイ用フォルダーを作成
    デプロイ用パッケージを格納するためのフォルダーを、プロジェクトに追加します
  • Release 版でプロジェクトをビルド
    デプロイパッケージに格納するのは通常は Release 版でしょうから、そのプロジェクトを Release 版でビルドします
  • デプロイ用パッケージ作成
    プロジェクト名を選択して、右ボタンメニュー→「発行」を選択します
  • 発行の種類を指定(下図画面6)
    「発行」のタグを選択した状態で、「IIS, FTP, その他」を選択して、「発行」をクリックします
  • 発行の情報を指定(下図画面7、図面8)
    「接続」のタグを選択した状態で、「Publish Method」に「Web デプロイ パッケージ」を選択し、
    「パッケージの場所」に上記で作成したフォルダーとパッケージ名を指定し、
    「サイト名」にサイト名―自由な名前でよい―を指定します
    「設定」タグを選択した状態で、「Release」が選択されていることを確認して、「保存」をクリックします
  • デプロイ用パッケージの確認
    指定したフォルダーに指定した名前のパッケージファイルができていることを確認します
    デプロイに必要なファイルは、拡張子が「ZIP」の1ファイルだけです
    デプロイパッケージ作成が2回目以降の場合は、保存してあるプロファイル名(CustomProfile)を選択して、「発行」をクリックすればよいです
画面6
画面7
画面8

デプロイの方法

 IIS にアプリケーションをデプロイする手順は、次のようになります。

  • デプロイ用パッケージを IIS にコピー
     前章 で作成したデプロイ用パッケージを IIS にコピーします
  • サイトの作成
    ここでは、標準の「Default Web Site」の下に「Fieldwork」のアプリケーションを作成した想定です
    必要に応じて読み替えてください
  • デプロイパッケージの展開
    アプリケーション名(Fieldwork)を選択して、右ボタンメニュー→「展開」→「アプリケーションのインポート」を選択します
  • 展開情報の指定(下図画面9)
    コピーしたデプロイパッケージを指定して、「次へ」をクリックします
  • 展開情報の確認(下図画面10)
    展開情報を確認して、そのまま「次へ」をクリックします
  • アプリケーションパスのクリア(下図画面11)
    ここに名前を指定すると、アプリケーションの URL がその分深くなるため、クリアしています
    その後、デプロイが終了するまでそのまま進めてください
画面9
画面10
画面11

動作確認

 ブラウザを使用してアプリケーションの動作を確認する手順は、次のようになります。

  • VM に完全修飾ドメイン名を登録
    以下の URL を参考にして、完全修飾ドメイン名を登録します
    こうすれば、 VM の IP アドレスが変更になっても、アプリケーションの URL は固定になります
    https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/portal-create-fqdn
  • ブラウザから動作確認
    アプリケーションの URL は次のようになります
    適宜読み替えてください
    http://完全修飾ドメイン名/コントローラ名/メソッド名