第 5 回 Open 棟梁でクラウドアプリ開発 (1)
こんにちは!これまでは、Open 棟梁のモバイルアプリ開発での利用方法を紹介しました。 今回からは、クラウドアプリ開発、特に Microsoft Azure において、Open 棟梁がどのように利用できるのかをご紹介していきたいと思います。
Microsoft Azure とは
今さらご説明するまでもありませんが、Microsoft Azure とは、マイクロソフト社が運営するクラウドサービスです。 Microsoft Azure は、主に以下のようなサービスを提供しています。
この中で、クラウドアプリ開発で利用するサービスは、PaaS である Web Apps と、IaaS である Azure Virtual Machines です。
Web Apps へのアプリの展開
ご存じの方もおられると思いますが、Open 棟梁には、Azure 向けのテンプレートがあります。 しかし、このテンプレートも作成から時間が経ち、作成当時からは実装方法などが変わってしまったため、そのままでは使用できなくなってしまいました。 たとえば、テンプレート作成当時は、トレースログの監視 (詳しくは次回ご紹介します) を、プログラムで実施する必要がありましたが、今は Microsoft Azure のポータル画面から設定できるようになりました。
そこで、ここでは Open 棟梁の Azure 向けのテンプレートを使用するのではなく、オンプレミス向けの Open 棟梁の Web サンプルアプリケーションを Web Apps に移行する方法をご紹介します。(Azure の各サービスの内容・実装方法・サービス名・管理ポータル画面(見た目や操作方法)は変わることがありますので、ご注意ください)
なお、以前のブログでもご紹介いたしましたように、Open 棟梁を使ったシステム開発のおおまかな流れは以下のとおりです。
- テンプレートベースをもとに、プロジェクトテンプレートを作る
- プロジェクトテンプレートに含まれるサンプルアプリに、プログラムを実装していく
このため、新規にクラウドアプリを作成する場合も、
- まず、オンプレミス向けのテンプレートを使用して Web アプリケーションを作成する
- 作成した Web アプリケーションを Web Apps に展開する
という流れをオススメいたします。
前提環境
- Visual Studio 2015 Professional
- Azure SDK for .NET 2.9.6
- Git 2.9.0
データベースの移行
まず、サンプル Web アプリケーションで使用しているデータベースを移行します。 オンプレミスのデータベースからの移行パスを確認します。
SQL Server の場合
たとえば、SQL Server の場合、移行の選択肢には以下が挙げられます。
それぞれ、料金、SQL Server との機能差異、既存の Web アプリケーションからの移行コストなどを考慮し、移行先を決定してください。 機能差異については、以下のサイトが参考になります。
また、既存の SQL Server から SQL Database に移行するには、以下のサイトを参照してください。
SQL Server 以外の場合
SQL Server 以外のデータベースを使用している場合、移行の選択肢には以下が挙げられます。
- Azure Virtual Machines 上の各データベース
Azure Virtual Machines にそれぞれのデータベース環境を構築し、そのデータベースに移行する方法です。Azure Marketplaceには、Open 棟梁がサポートしている各データベースを含む仮想マシンが提供されています。 - DocumentDBなどの NoSQL 製品
接続文字列の変更
当然ですが、データベースを Azure 上に移行すると、Web アプリケーションから接続するための接続文字列が変わります。 移行先のデータベースの接続文字列を確認し、その接続文字列をアプリケーションに設定してください。
セッション管理モードの変更
Open 棟梁では、各種設定内容を ASP.NET のセッションに保持します。 既定のセッション管理モードは「StateServer」モードです。 Web Apps ではこのモードが使えないため、「Azure Redis Cache」または「SQL Server」モードに変更する必要があります。 ここでは、手軽に利用できる「Azure Redis Cache」を使います。
Redis Cache サービスを追加する
Microsoft Azure のポータル画面から、Redis Cache サービスを作成します。
そして、ポータル画面から、作成した Redis Cache サービスのホスト名とプライマリキーを確認しておいてください。
RedisSessionStateProvider をアプリケーションに追加する
Visual Studio のパッケージ マネージャー コンソールで、以下のコマンドを実行し、セッション情報を Redis Cache に格納するためのプロバイダーである RedisSessionStateProvider を Web アプリケーションに追加します。
Install-Package Microsoft.Web.RedisSessionStateProvider
なお、このコマンドを実行すると、自動的に Web.config に <sessionState> タグが追加されます。 Open 棟梁のテンプレートでは、もともと <sessionState> が定義されていますので、どちらかを削除してください。 そして、<sessionState> タグを以下のように定義してください。
<sessionState mode="Custom" customProvider="RedisSessionProvider">
<providers>
<add name="RedisSessionProvider"
type="Microsoft.Web.Redis.RedisSessionStateProvider"
host="[Redis Cache のホスト名]"
port="6380"
ssl="true"
accessKey="[Redis Cache のプライマリキー]"/>
</providers>
</sessionState>
Redis Cache にセッションを格納する方法について、詳しくは以下のサイトを参照してください。
ちょっと長くなってきましたので、続きは次回にしたいと思います。次回は、Open 棟梁の設定ファイルの移行方法から、動作確認までを実施していきますので、お楽しみに!