ASP.NET WebFormsアプリをAzureへ公開!初心者向けデプロイ完全ガイド
生徒
「先生、自分のパソコンで作ったASP.NET WebFormsのサイトを、世界中の人に見てもらうにはどうすればいいんですか?」
先生
「自分のパソコンの中にあるプログラムを、インターネット上の専用の場所に設置する必要があります。これを『デプロイ』と呼びますよ。今回は『Azure(アジュール)』というクラウドサービスを使ってみましょう。」
生徒
「デプロイ…アジュール…。難しそうな言葉ですが、私でもできますか?」
先生
「大丈夫です。Visual Studio(ビジュアルスタジオ)という道具を使えば、ボタン操作だけで公開できるんです。その手順をゆっくり説明しますね。」
1. デプロイとAzure(アジュール)とは何か?
ASP.NET WebForms(エーエスピー・ドットネット・ウェブフォーム)で作ったウェブサイトは、今のままではあなたのパソコンの中でしか動きません。これを世界中に公開する作業をデプロイ(公開)と言います。
プログラミング未経験の方に分かりやすく例えると、自分の家(自分のパソコン)で作った「料理(プログラム)」を、街にある「お店(サーバー)」に運び、誰でも食べられるように陳列する作業のことです。そのお店の場所を提供してくれる超巨大なプラットフォームが、マイクロソフト社が提供するAzure(アジュール)というクラウドサービスです。
クラウドサービスとは、自分で重たい機械(サーバー)を買わなくても、インターネット越しにその機械のパワーを借りることができる仕組みのことです。パソコンを触ったことがない方でも、クラウドを使えば安全に、そして簡単にウェブサイトを世に出すことができます。
2. Azure App Service(アップサービス)の役割
Azureにはたくさんの機能がありますが、ASP.NET WebFormsのデプロイで主に使用するのがAzure App Service(アジュール・アップ・サービス)です。これは、ウェブアプリを動かすために必要な「土地」と「建物」があらかじめセットになった宿泊施設のようなものです。
本来、ウェブサイトを動かすには難しい設定が必要なのですが、App Serviceを使えば「窓を開けて換気する」といった細かいことはAzureがやってくれます。私たちは自分たちが作ったプログラムをその「部屋(インスタンス)」に入れるだけでOKです。この手軽さが、初心者にAzureをおすすめする最大の理由です。
3. 公開の準備:AzureアカウントとVisual Studio
デプロイを始める前に、二つの準備が必要です。一つはAzureの無料アカウントを作成すること。もう一つは、開発に使っているVisual Studio(ビジュアルスタジオ)というソフトにマイクロソフトアカウントでログインしておくことです。
Visual Studioは、私たちがプログラムを書く「魔法の机」のようなものですが、実はデプロイ機能も非常に優れています。この机から直接Azureに荷物を送る「宅配便」のような機能が内蔵されています。この連携機能があるおかげで、難しいコマンドを打ち込む必要がありません。
4. Web.config(設定ファイル)の最終チェック
公開する前に、アプリの設定を確認しましょう。WebFormsには Web.config(ウェブ・コンフィグ) という名前の設定ファイルがあります。これはお店の「看板」や「ルールブック」のようなものです。
例えば、デバッグモード(開発者用の詳細なエラーが出る設定)が「true(有効)」になっていると、公開した際に見知らぬ人へプログラムの内部情報が漏れてしまう可能性があります。公開時はこれを「false(無効)」にするのがルールです。
<configuration>
<system.web>
<compilation debug="false" targetFramework="4.8" />
</system.web>
</configuration>
この小さな変更が、ウェブサイトのセキュリティを守る第一歩になります。パソコン操作が苦手な方も、この一箇所だけは目を通すようにしましょう。
5. Visual Studioから「発行」を開始する手順
いよいよ本番です。Visual Studioの画面右側にある「ソリューションエクスプローラー」から、自分のプロジェクト名をマウスの右ボタンでクリックします。表示されたメニューの中から「発行(Publish)」を選んでください。
ここから「発行ウィザード」という案内役が始まります。「どこに公開しますか?」と聞かれるので、「Azure」を選び、次に「Azure App Service (Windows)」を選びます。Windowsを選んでいる理由は、WebFormsが元々Windowsの仕組みの上で動くように作られているからです。画面の指示に従ってポチポチとボタンを押していくだけで、Azure上の「土地(リソースグループ)」が自動で作られていきます。
6. データベースの接続文字列に注意しよう
もし、あなたのサイトがデータベース(会員情報などを保存する棚)を使っている場合、注意が必要です。自分のパソコンで使っていたデータベースと、Azureで使うデータベースは別物だからです。
デプロイの途中で「接続文字列(せつぞく・もじれつ)」の設定が出てきます。これは「本棚の場所を教える地図」のようなものです。Azure上に作成したSQL Databaseというサービスの情報を、ここに正しく入力する必要があります。これを間違えると、お店は開いているのに「商品が棚にない!」というエラーが出てしまいます。
// C#コードから接続文字列を読み込む例(イメージ)
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyDbConnection"].ConnectionString;
// この「MyDbConnection」という名前をAzureの設定と合わせます
7. 「発行」ボタンを押した後の動作
全ての設定が終わったら、画面にある大きな「発行」ボタンを押しましょう。すると、Visual Studioがプログラムをギュッと一つにまとめ(コンパイル)、インターネットを通じてAzureの部屋へ送り届けます。
画面の下の方に「発行に成功しました」という文字が出れば完了です!自動的にブラウザが立ち上がり、世界中のどこからでも見ることができるURL(例:https://myapp.azurewebsites.net)が表示されます。自分の作ったものが、世界中のスマホやパソコンで見られるようになる、感動の瞬間です。
========== 発行: 1 正常終了、0 失敗、0 スキップ ==========
Web アプリが https://your-site-name.azurewebsites.net で正常に公開されました。
8. デプロイ後の確認とスロット機能
サイトを公開した後も、改良を続けたいですよね。でも、修正中にサイトが見られなくなるのは困ります。Azureにはデプロイスロットという便利な機能があります(一部の有料プラン)。
これは「予備の部屋」のようなもので、まず予備の部屋にデプロイして、正しく動くか確認してから、一瞬で「本番の部屋」と入れ替える(スワップ)ことができます。これを使えば、お客様が買い物をしている最中に看板を掛け替えても、邪魔をすることがありません。こうしたプロの技も、Azureなら簡単に実現できるのです。
9. コスト管理とリソースの削除
最後に、とても大切な「お金」の話をします。Azureは使った分だけお金がかかる仕組み(従量課金)です。初心者のうちは「無料プラン(F1 Free)」や「共有プラン(D1 Shared)」を選んでいれば高額な請求は来ませんが、使わなくなったサイトをそのまま放置するのはおすすめしません。
練習が終わって、「このサイトはもう使わないな」と思ったら、Azureのポータルサイト(管理画面)からリソースの削除を行いましょう。お店をたたんで、土地を返却するイメージです。管理をしっかりすることも、立派な開発者のスキルの一つです。