Windows Azure へのアプリケーション移行手順 (1)–ASP.NET + SQL Server

Azureが無償である程度使えるとはいえ、アプリが移行できないのであれば、意味がありません。
ここでは、既知のものではありますが、整理の意味も含めてご紹介します。

参考情報:

WIndows Azure Step by Step チュートリアルガイド:

http://msdn.microsoft.com/ja-jp/windowsazure/gg261766.aspx

※ 上記資料は多少古いので、Azure管理画面が古いままです。その点だけご了承ください。

事前準備

 

ダウンロード: Web Platform Installer 3.0 を通じて提供されています。
Web PI 3.0: http://www.microsoft.com/web/downloads/platform.aspx

手順

DBを先に、アプリを後に行います。手元のIISから、SQLAzureに接続文字列を変えるだけで接続できますので。

1. Azure上にドメイン取得

Azureの管理ポータルに行きます。

https://windows.azure.com/Default.aspx

画面左上の [New Hosted Service]から、サーバーを作成します。

image

URLやデータセンターを選択します。ここで、パッケージ済みのアプリケーションの配布もできるのですが、今は行いません。

image

これで、ドメインが作成されます。

image

ここで、Azure管理サービスとセキュアにやりとりする証明書を作成します。以下の手順が簡単です。

http://msdn.microsoft.com/ja-jp/windowsazure/gg261770.aspx#3.2.4

アップロードが終了すると、管理画面から確認できます。

image

2. DBの移行

ここでは、SQL Server Migration Wizardを使います。BCPコマンドを内部実行するので、一番高速です。データ転送時のセキュリティが気になる方は、Integration Serviceにて。

具体的な手順は、こちら

3. Azure側にテストデータ生成

接続文字列切り替えるだけですと、データの内容でしか動作確認が取れません。ですので、SQL Serverの管理コンソールにて、SQL Server / SQL Azure 双方への接続ができるようにしておきます。
ちなみに、SQL Server 2008 R2のManagement Studioから、SQL Azureの管理が超楽になりました。管理ツールは、できたら最新にしてください。旧バージョンにも勿論接続できますので。

SQL Azure への接続ですが、実は、サーバー名にWindows Azure 管理ポータルから、[Full Qualified DNS Name]を。SQL Server認証にて、ユーザー名とパスワードを入力します。

image

青いアイコンがSQL Azureです。

image

この段階で、テスト用のレコードを追加してください。

4. DBの接続文字列の設定

ADO.NET:

Server=tcp:<ServerName>.database.windows.net;Database=<DB>;User ID=<UserName>@<ServerName>;Password=<myPassword>;Trusted_Connection=False;Encrypt=True;

ODBC:

Driver={SQL Server Native Client 10.0};Server=tcp:<ServerName>.database.windows.net;Database=<DB>;Uid=<UserName>@<ServerName>;Pwd=<myPassword>;Encrypt=yes;

例えば、ADO.NETの場合、こんな感じです。

Server=tcp:pxg2ala54g.database.windows.net;Database=NorthwindJ;User ID=dahatake@pxg2ala54g;Password=myPassword;Trusted_Connection=False;Encrypt=True;

これを、SQL Serverへの接続文字列と置き換えます。
よくあるのは、web.config ファイル内に埋め込んでいるパターンです。

image

Debug/ReleaseモードなどでWeb.config 切り分けられるのですが、ここでは話を単純化するために、そのままこの文字列を活かします。大事な点は name=”<接続文字列の名前>”を同じにすることです。
こちらの例では、オリジナルをコメントアウトし、 connectionString=”<先のAzureの接続文字列>”にて置き換えました。

image

これにてF5にて実行してみます。
普通に動くと思います。この段階で、DBのみは、クラウドで動作しています。

image

5. WebアプリケーションのAzure化

ASP.NETのプロジェクトに、Windows Azure プロジェクトを追加します。
ソリューションを右クリックして、「新しいプロジェクト」を選択します。

image

プロジェクトの種類から [Cloud] を選択し、適当な名前を付けて、[OK] を押します。

image

プロジェクトの追加画面が表示されますが。ここでは、既存のASP.NETアプリがあるので、何も選択せず、OKを押します。

image

これで、Azure用のプロジェクトができました。

image

次に、Azure用のプロジェクトに、既存のASP.NETを追加します。
[ロール] を右クリックして、[ソリューション内のWebロールプロジェクト]を選択します。

image

表示されているASP.NETアプリケーションを選択してOKを押します。

image

[ロール]の先に、先ほど紐づけしたプロジェクトがあります。

image

これをダブルクリックすると各種設定が可能です。

この段階で、F5を押して、プロジェクトを実行してみてください。
今度は、タスクバーにAzureのエミュレーターが立ち上がってきていると思います。これで、ほぼ完了です。

image

6. Azureへのアプリケーションの展開

こちら手順がまだありますので、以下をご参照ください。
一度配布用の設定ができてしまえば、その後は、一発配布になります。

http://msdn.microsoft.com/ja-jp/windowsazure/gg261772.aspx

ここでは、設定後という状況の手順を。

Azure プロジェクトを右クリックして [発行] を選択します。

image

先に設定した証明書が正しく構成されていると、[資格情報]にて選択ができます。ここに出てこない場合は、資格情報に [追加] を選んでください。

image

以下の画面に表示されている手順にそって、証明書管理をします。

image

正しく構成できると、以下の様にAzure上のWebサーバーや、ストレージなど選択できます。
ここで、OKを押す前に [リモートデスクトップ接続の構成] をする事をお勧めします。アプリがうまく動作しない場合や、問題発生時のトラブルシュートに大変便利です。私も何度も助けてもらいました。

image

Azure上のサーバーは全てワークグループです。ですので、ここで作成するユーザーはそのコンピューターにしか存在していませんので、ご注意ください。10台にしたらそれぞれ10台に個別に作成されます。
有効期限に特にご注意を。

image

後はOKを押します。

本日、3/14にネットワークを使わせていただいて香港に配布してみましたが、10分くらいかかります。
Visual Studio の下部にてアップロードの状況が確認できますし、同時にAzureの管理ポータルからも確認ができます。

image

これで、Azure上にWebアプリも、DBもあり、 [Web サイトのURL] にアクセスすることで、Azure上にてアプリが動作していることが確認できます。

image

 

移行作業自体は、多少慣れた方であれば、30分程度ではないでしょうか?

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中