写真 レンタルサーバーでWindows VPSの契約を検討中のレンサバ女子(通称、鯖女?)
ワテの場合、数年前からWindows VPSを使って、以下のURLで各種のネットサービスを世間に公開している。
まあ人気はボチボチでんなあと言う程度だ。
開発に使うツールはマイクロソフト社のVisual Studioで、現在はVisual Studio 2019を使っている。
Visual StudioはプログラムやWEBサイトの開発が出来る統合開発環境ツールであり、Windows OS上の開発ツールのデファクトスタンダードと言っても良いだろう。
Windows系OSを使ってウェブサイトを構築する場合には、Windows共用サーバー、Windows VPS、Windows専用サーバーなどの選択肢がある。
当記事では、表題の通りWinserverさんのWindows VPS SSDプランを使って
- ASP.NET MVC
- IIS
- SQL Server Express
を使ってウェブサイトを構築する実験を行ったので、その辺りの手順を簡単に解説したい。
これからWindows VPSを契約して自前のウェブサイトを構築したいと思っている方々の一助になれば幸いである。
では、本題に入ろう。
Windows 系レンタルサーバー入門
当記事にお越し頂いた皆さんの場合、恐らくこれからウェブサイトを構築したいと思っていて、OSはWindows系OSを採用したいと思っている人が多いだろう。あるいはLinux系OSかWindows系OSか迷っている人も中にはおられるかもしれない。
ワテの場合、現在はLinux系共用サーバーやWindows VPSを利用しているので、それらの経験に基づいてWindows系OSを使うメリットや、Windows VPSのメリットなど解説したい。
Windows 系レンタルサーバーでウェブサイトを構築するメリット
レンタルサーバーと言えば、Linux系の共用サーバーが広く世間で使われているので、Windows系OSを使うレンタルサーバーは少数派である。
しかし、Windows系OSのレンタルサーバーを使ってウェブサイトを構築するメリットは多数ある。
ワテが思い付くのは以下の通り。
- Windows Server OSは歴史が長く、セキュリティ対策も常に強化されているので安全性が高い
- 未だにコマンドベースのLinuxに比べて、Windows 系はGUIを使ったサーバー管理が基本なので初心者でも使える
- 開発マシンにWindows 10+Visual Studio、ウェブサーバーにWindows Server OS+SQL Server + IISを使えばGUIベースのMicrosoft製品で完結する
- Visual Studio(あるいはVisual Studio Code)を使えばWindows Server OS上にASP.NET FrameworkやASP.NET Coreのウェブサイトを簡単に構築できる
などか。
つまりまあ、初心者でもWindowsのGUIベースのツールを使えば、ウェブサーバーの設定や管理を行う事が出来るのだ。
一方、LinuxやUnixの場合、各種の設定はテキストファイルに設定を書き込んで、コマンドベースで設定作業を行うのが一般的だ。例えば、Linux系OSの標準的なウェブサーバーはApacheだが、.htaccessなどのファイルをviエディタで編集するなどの作業が必要になる。
それらの設定ファイルで、ほんの一行の設定を間違えただけでセキュリティホールを作ってしまう危険性もある。
勿論、ウェブサーバー専門のシステムエンジニアさんなら、GUIを使うよりもコンソール画面に素早くタイピングして設定を行うほうが手っ取り早いと言う人もいる。
図 LinuxやUnix系OSの場合、コマンドベースの設定作業が基本
でも、Windows系OSを使えばそう言う専門家でなくても、ウェブサイトを構築・管理できるのだ。
大企業のWEBサイトでもWindows Server + IISで作られているものも多い。
秋月電子通商さん http://akizukidenshi.com/
共立エレショップさん https://eleshop.jp/shop/default.aspx
その他多数ある。
なお、Windows系OSを採用するデメリットとしては、Linux系OSに比べてサーバーの月額料金が若干割高になる。その理由は、Windows Server OSの料金がサーバーの月額料金にも上乗せされているからだ。
ワテの経験で言うなら、同程度のハードウェア性能のLinux VPSとWindows VPSの月額料金を比べると、Windows VPSのほうが数十パーセント程度は割高かなと言う感じ。Linux共用サーバーとWindows共用サーバーに付いても同様の事が言えるだろう。
とは言っても、具体的には月額料金で千円前後の差なので、そんなに大きな差では無い。
Windows共用サーバーとWindows VPSの違い
Windows系OSを使ってウェブサイトを構築する場合、まず最初に迷うのが、
- Windows共用サーバー
- Windows VPS
- Windows専用サーバー
のどれを選ぶべきかと言う点だろう。
Winserverさんの場合、これらすべてのサービスプランが提供されているので、Windows系OSのサーバーを借りたい人は、取り敢えずWinserver(ウィンサーバー)さんのサイトを訪問してみて、詳細を見ると良い。
さて、共用サーバーは管理者が運営元つまり今の場合ならWinserverさんになる。
一方、VPSや専用サーバーの場合には管理者は自分だ。つまりWindows VPSなら管理者権限を持つユーザーIDとパスワードが貰える。
Windows OSに限らずLinux系OSでもそうだが、ウェブサーバーを立ち上げる場合にはデータベースソフトを使いたい場合が多い。
Windows VPSの場合なら自分が管理者なので、自由に好きなソフトをインストールする事が出来る。データベースを使いたい場合には、無料のSQL Server ExpressやMySQLなどをインストールすれば手軽に利用出来る。或いは必要なら有料のデータベースソフトをインストールしても良い。
一方Windows 共用サーバーを使う場合には、自分では自由にはソフトをインストール出来ないので、事前にどのようなソフトがインストールされているのかを運営元に確認すると良い。
Windows共用サーバーとWindows VPSのどちらを選ぶべきか?
さて、Linux系OSではなくWindows系OSを採用してウェブサイトを構築する事に決めたとする。
次に悩むのがWindows共用サーバーとWindows VPSのどちらを選ぶべきかと言う点だ。
それぞれの長所と短所を見てみよう。
独自のウェブサイトを構築するならWindows VPSがお勧め
あくまでワテの経験で言うなら、IISを使って独自のウェブサイトを構築するならWindows VPSがお勧めだ。
一方、WordPressを使うウェブサイトを構築するならWindows共用サーバーがお勧めだ。特に、そのWindows共用サーバーにWordPressの簡単インストール機能があれば尚良い。
その辺りの理由をもう少し詳しく解説しよう。
まず、Windows VPSなら自分が管理者Administratorなのでサーバーに対しては自由に出来る訳で、IISやSQL Server Express、MySQLなどを組み合わせたウェブサイトを構築する事はとても簡単だ。
逆に言うと、サーバーに関する全ての管理を自分でやる必要があるので難しいと思う人がいるかも知れないが、何度も言うようにLinux系OSに比べてWindows系OSはGUIベースで管理が出来るので、少し練習すれば誰でも出来る。
具体的には、Windows Server には、サーバーマネージャーやIISマネージャーと言ったGUIベースの専用の管理画面がある。それらを開くと多数のアイコンがあり、それぞれのアイコンをクリックすれば各種の設定が簡単に行える。全てのアイコンを使いこなせなくても、基本的にはデフォルト設定で良いものが多く、必要に応じてアイコンの使い方を覚えて行けば良いのだ。
サーバーマネージャーやIISマネージャーを使うWindows Server管理の具体的なやり方は他の記事でも詳細に解説しているので参考にして頂きたい。
WordPressサイトを作るならWindows共用サーバーがお勧め
Windows VPSは自分で自由に出来るけれど、Windows VPSでWordPressサイトを構築するのは意外に難しいのだ。
実際、ワテも過去に自分でやってみた経験があるのだが、Windows Server 2012R2 にWordPress、PHP、MySQLなど必要なソフトをインストールして、細かい設定をやればWindows Server OS上でWordPressサイトを作る事は出来なくはない。
ただし、Linux系OS上にWordPressサイトを構築する事例はネット検索しても沢山の技術情報が見付かると思うが、Windows 系OS上でWordPressサイトを構築する事例は殆ど見付からないだろう。つまり、自力でやるのは非常に難しいのだ。
ワテの場合もWindows VPS上に2~3ケ月掛かりで自力でWordPressサイトを作ったのだが、動く事は動くのだが、文字化けしたり、画像がアップロード出来ない問題が出たり、その他いろんなトラブルが起こった。
解決する為にネット検索しても殆ど情報が無いので、結局は自分で試行錯誤して解決するしかない。
そう言う経験から言っても、WordPressサイトを快適に運営するならWordPress簡単インストール機能があるWindows共用サーバーがお勧めだ。
そうするとWordPressの運用に関しては運営元がやってくれるので自分では何らやらなくても良い訳で、自分は単にWordPressを使う側なれるからだ。かつOSは使い慣れたWindowsなのでLinuxなんて全く知らない人にとっては、Windows共用サーバーでWordPressサイトを運用するのは最適な組み合わせなのだ。
ちなみにWinserverさんのWindows共用サーバーの場合には、WordPress、EC-CUBEの二種類のソフトに関しては簡単インストール機能があるので安心だ。EC-CUBEはショッピングサイトを構築するためのソフトだ。
Winserverさんのサービス紹介
日本には多数のレンタルサーバー会社があるが、その中でもWindows OSを搭載したレンタルサーバーに特化しているのがWinserverさんだ。
ウィンサーバー さんの公式サイトはこちら。
トップページは以下の通り。
図 Winserver公式サイトには四つのサービスが提供されている
上図に示すようにWinserverさんでは以下の四つのサービスがある。
- 共用サーバー
- VPS
- 仮想デスクトップ
- 専用サーバー
の四種類だ。
これら全てがWindows Server OSに特化しているのだ。
各サービスのサブメニューを開くと、サーバーの性能に応じて多数のプランが用意されているので、自分の予算に応じてプランを選択出来る。
WinserverのWindows VPS SSDプランの解説
今回利用するのはWindows VPSだ。
当ページにお越し頂いた皆さんの場合には、恐らくはWindows VPSに付いてはよくご存じだと思うが、念のために簡単に紹介しておこう。
一台の物理サーバーを占有して使うには専用サーバーが必要となる。ただし、専用サーバーは高性能ゆえに月額料金も何万円と言うオーダーなるので個人では中々手が出ない。
それを解決してくれるのがVPSだ(Virtual Private Server)。
一台の物理サーバーに仮想化ソフトウェア(Hyper-V)がインストールしてあり、その環境下では複数の仮想サーバーが稼働している。Winserverさんの場合には、その仮想サーバーにWindows Server系OSをインストールする事が出来る。そのOSを自分で占有して使えるのであたかも専用サーバーのように使えるのがVPSなのだ。
今回ワテが使うWindows VPS SSDプランの場合には、選べるプランは以下の通り。
図 WinserverのWindows VPS SSDプラン一覧
上図に示すように、WinserverのWindows VPS SSDプランの特徴としては、メモリ、SSD、CPUコア数に応じて六種類ものプランがある。かつ、プランのグレードアップも迅速に対応して貰えるのだ。
ワテの知る限り、日本におけるWindows系OSのレンタルサーバー提供会社の中で、こんなに沢山のプランを用意している会社はWinserverさん以外には無い。
なおWindows VPS SSDプランで利用出来るOSは現時点で以下の通り。
- Windows Server 2019 Standard Edition(64bit)
- Windows Server 2016 Standard Edition(64bit)
- Windows Server 2012 R2 Standard Edition(64bit)
現状では、WinserverさんではDatacenter Editionは提供されていないが、ワテの経験で言うならウェブサイトを運用するならStandard Editionで十分だろう。
Windows VPSに必要なメモリ、CPUコア数、ディスクはどれくらいか?
VPSを借りる場合に迷うのがメモリ、CPUコア数、ディスク容量の選択だ。
どれくらいのスペックのサーバーを借りておけば快適にウェブサイトを運用出来るのかが気になるだろう。でもそればかりは使ってみない事には分からないし。
もちろんメモリ、CPUコア、ディスク容量は多いのに越した事は無いし、ディスクに関してはHDDよりもSSDのほうが読み書きが速いので出来ればSSDを使いたい。
でも、高スペップなプランを選択すると月額料金も高くなる。
ここでは、現実的にどれくらいのスペックのプランを選んでおけば快適なウェブサイトを運用できるのかを、ワテの経験で紹介してみたい。
なお、Windows VPS SSDプランの場合には二週間の試用が可能なので、使い勝手を知るにはまずはお試し利用してみるのが最も確実だろう。
Windows VPSはメモリ3GBは欲しい
あくまでワテの経験で言うなら、IISとデータベースソフト(MySQL、SQL Server、SQL Server Expressなど)を組み合わせたウェブサイトを構築するならメモリは3GBは欲しい。
と言うのは、データベースを使う場合には何らかの検索条件にマッチしたデータを検索して取り出して、ウェブページに表示するなどが行われる。いわゆるSQL文を実行する訳だ。
検索結果が1ページに収まらない場合にはページ番号の数字を並べてページ捲り(めくり)が出来る表示にするのが一般的だ。例えばGoogle検索結果みたいに10ページ以上のページャー数字が並ぶ場合もある。
ワテの場合には、とある会社のWindows VPSにおいて、そのページを捲って行く場合に3GBだとレスポンス良く表示出来るけれど、2GBだとちょっと反応が鈍く、1GBだとページを捲るのがかなり遅いと言うような経験をした事がある。もちろん、そう言う場合の応答時間はデータベースで扱っているデータのサイズ、SQL文の複雑さ、他のアプリの稼働状況などにも依存するので、一概には断定出来ないが。
もしメモリを3GBに決めるとすると、世間一般のVPSではCPUコア数は3~6個くらいが一般的な組み合わせだろう。Winserverさんの場合なら上図のSSD1902-4Gプランがそれに該当する。
SSD1902-4Gプラン
SSD 230GB
CPU 6コア
初期費用 0円
月額料金(年払いの場合) 3850円(税込)
SSD1902-4Gは人気No.1プランとの事だ。
確かに月額料金が4千円弱のWindows VPSでCPUコア6個と言うのは他社ではあまり見た事が無いくらい高スペックだ。月額4千円弱なら一般的には4コア程度で有る事が多い。
Windows VPSでCPUが5コアとか6コアクラスのプランになると、月額1万円近いかなり高スペックなWindows VPSプランと言う印象を受ける。それがWinserverさんの場合には、年払い月額3850円(税込)なのでコストパフォーマンスは高いとワテは思う。
かつ、SSD1902-4GプランはWinserverさんのWindows VPS SSDプランの中では中クラスのスペックだ。
従って、もしSSD1902-4Gプランで使っていて性能不足を感じたら、メモリ8G、16G、32GBなどの上位プランに移行する事も出来る。
ちなみに最上位プランは以下の通り。
SSD1902-32Gプラン
SSD 1.7TB
CPU 11コア
初期費用 0円
月額料金(年払いの場合) 29,260円(税込)
凄い性能だ。メモリが32GBも有ればかなり大規模なウェブサーバーを構築してもレスポンスの良いサイトを作れるだろう。
その時に気になるのがプランのアップグレードが簡単に出来るかどうかだが、Winserverさんのサイトには以下の説明がある。
試しに軽めのプランで始めてみたものの、利用しているうちに容量が足りなくなってしまった…」そんな時もウィンサーバーなら安心。
プランのグレードアップにも迅速に対応いたします。
引用元 https://www.winserver.ne.jp/service/vps/ssd/
との事なので、現在のウェブサイトのデータを保持したままプランをアップグレード出来ると思われるので安心だ。詳細は各自確認下さい。
Windows VPS SSDプランを使う
ここでは、WinserverさんのWindows VPS SSDプランの管理画面などを紹介したい。
WinserverのWindows VPS SSDプランのVPS管理画面
WinserverさんのWindows VPSの管理画面にアクセスする場合には以下のURLを開けば良い。
そうすると下図の画面が表示される。
図 WinserverのVPS管理画面 – ログイン画面
上図のログイン画面が出たら、自分のIPアドレスとPasswordを入力すれば良い。
無事にログイン出来ると下図が出る。
これがVPS管理画面だ。
図 WinserverさんのVPS管理画面
この管理画面では、上図の通りWindows Server OSに対して、
- 起動
- シャットダウン
- ステータス更新 (最新表示にする)
- パスワード変更
- ログアウト
の機能を実行する事が出来る。
なお、Windows Server OSの再インストールに関しては、この管理画面ではなくてWinserverのサポートに再インストール(有料)を依頼するようになっている。
ワテも一度再インストールをお願いした経験があるが、メール連絡したら数時間後には再インストールが完了したので実用上は全く問題無いだろう。
他社の場合には、この管理画面からOSの再インストールを自分で実行出来る場合もある。
ワテの経験で言うと、確かに自分でOS再インストールを出来るほうが便利ではあるが、実際にサーバーを運用し始めるとOS再インストールを行う事は滅多に無い。OS再インストールを行うのは、具体的には、Windows Server OSのバージョンが上がったタイミングなどだから、数年に一回と言う感じ。なので、実用上はメール等でOS再インストールを依頼する方式でも不便を感じる事は無いだろう。
もしWindows Server OSに対して各種の実験を行いたいと言う場合には、Windows VPSでやるのでは無くて、例えば開発マシンでVMwareなどの仮想化ソフトウェアを動かして、その上にWindows Server OSをインストールすれば良いだろう。マイクロソフト社公式サイトからダウンロード出来るWindows Server OSは無料トライアルで180日も試用が可能だ。なので、VMware環境にインストールすれば半年もお試し利用が出来るので、各種の実験を行う事が出来る。
Windows VPSはリモートデスクトップで接続出来る
どこのレンタルサーバー会社でも、Windows VPSを契約すると一般にはリモートデスクトップ接続してサーバーを自分で管理できる。
図 Windows VPSに自宅からリモートデスクトップ接続した例
Windows Server OSの管理は、サーバーマネージャーを使うのが基本だ(下図)。
図 Windows Server OSにはサーバーマネージャーなどの管理ツールが充実
サーバーマネージャーを起動した例を下図に示す。
図 サーバーマネージャーのトップメニュー
このサーバーマネージャーを使う事で、文字通り、サーバーに関する各種の管理・設定を行う事が出来るのだ。
その全てがGUIベースなので、初心者にも分かり易くて間違いが少ない。
もちろん必要ならばPower Shellの画面を開くなどして、コマンドベースの管理も可能だ。
Windows VPSでASP.NET MVC+IIS+SQL Server Expressサイト作成する手順
WinserverさんのWindows VPSの場合、試用契約あるいは本契約した場合には、サーバーへ接続する為の情報がメールで来る。
管理者ID:winserverroot
パスワード:***********
などが通知されるので、これらの情報を使ってリモートデスクトップ接続すれば良い。
さて、以下ではWindows系サーバーにおいてIISによるWebサーバーを立ち上げて、データベースにはSQL Server (やExpress)を使い、ASP.NET MVCやASP.NET FrameworkやASP.NET Coreなどの手法でWebサイトを作ると言う基本的な手順を紹介したい。
その環境作りは、慣れてしまえば30分も有れば完了する。
それらの環境に必要となるソフトやツールをサーバー側(Window VPS)、クライアント側(開発マシン)に分けて以下で簡単に解説したい。
Windows VPSにインストールするソフトや設定
まず、サーバー側に必要となるのは以下のソフトだ。
ソフト名 | 機能や説明 |
IIS(Webサーバー) | Webサーバー機能をインストールして有効化する必要あり。サーバーマネージャーでインストールする。 |
Web Platform Installer |
Web関連の各種ソフトを簡単に追加インストール出来るMicrosoft純正ツール。 Microsoft公式サイトから最新版をダウンロードしてインストールすると良い。 |
Web Deploy | クライアントWindows機で作成したWebサイトをWindows VPSに書き込む為のツール(Web Platform Installerを使って入れる)。Web Deployと言うのはFTPのような機能をイメージすると良い。 |
.NET Framework 4.7など | Visual StudioのASP.NET FormやASP.NET MVCの機能を使って作成したWebサイトを表示させる為に必要。サーバーマネージャーでインストールする。 |
SQL Server Express |
Microsoft純正の無料データベース。公式サイトからインストーラーをダウンロードして入れると良い。 Expressが付かない製品版SQL Serverを使っても良い。 インストール後はsaユーザーを有効化する必要あり。 SQL Server Expressはデフォルトではポート1433を使うので、必要なら特定のアドレスからのみアクセス可能にするなどのセキュリティ対策を行う必要あり。 |
SQL Server Management Studio |
SQL Serverの管理ツール、必要ならばインストールする。 |
表 Windows VPSでWebサーバーを立ち上げるのに必要となるソフトや設定
作業手順としては、まずIISを有効化する。
具体的にはWindows Server OSが標準で持っているサーバーマネージャーと言うツールを使う事で、各種の機能を追加・削除出来る。
ここではデータベースはSQL Server Expressを使う例を上げたが、MySQLなどもインストールするれば問題なく使える。
開発Windowsマシンにインストールするソフト
一方、開発マシンにもWindows系OSを使うと、Windows VPSとの連携が簡単に出来る。
ワテの場合にはWindows 10 Proを使っているが、その環境に以下のソフトをインストールしている。
ソフト名 | 機能や説明 |
Visual Studio 2019 | ASP.NET Framework, ASP.NET Coreなどの手法でWebサイトの作成が可能 |
SQL Server Management Studio | SQL Serverの管理ツール、必要ならばインストールする。 |
表 Windows VPSでVisual Studioを使ってASP.NET系のWebサイトを作るのに必要となるソフト
Visual StudioはMicrosoft社の統合開発環境だ。歴史も長く物凄く高機能であり、史上最強と言っても良いだろう。
各種の言語(C/C++、C#、VB.NET、PHP、Python、TypeScript/JavaScript、その他多数)を使ってプログラム開発が出来、デバッグ環境も充実している。さらにウェブサイトの作成も可能なのだ。
図 プログラミングしている人
Windows VPS上でのウェブサイトの作成においては、PHP+JavaScriptと言った一般的な手法も使えるし、あるいはASP.NETと言うMicrosoft社独自の手法を使う事も出来る。あるいは両者を組み合わせても良い。
このASP.NETの手法でウェブサイトを作る場合には、サーバーサイドの処理をC#やVB.NETなどの.NET Framework対応の言語を使って記述する事が可能なのだ。従って、ウェブプログラミングの経験が無い人であっても、C#やVB.NETのプログラミングが出来る人なら、比較的スムーズにウェブサイトを構築する事が出来る。もちろん必要が有れば、PHPやPythonなどの言語もミックスしてサーバーサイドプログラミングを行っても良い。
なお、似た様な名前の無料製品にVisual Studio Codeと言うのがある。Visual Studio Codeを使ってもASP.NETのウェブサイトを作る事が出来る。かつ、Visual Studio CodeはWindowsだけでなくLinuxやmacOS上でも稼働する。
Visual Studioを使うかVisual Studio Codeを使うかは好き好きなのでどちらを選んでも良いだろう。あるいは両方を使っても良いし。
Windows VPSにIISなどを実際にインストールする例
では、Windows VPSに上で紹介したIISなどを実際にインストールする手順を具体的に説明しよう。
サーバーマネージャーを起動して、その中にある「サーバーの役割の選択」メニューに入る(下図)。
図 サーバーマネージャーの中の「サーバーの役割の選択」画面
上図に於いて「Webサーバー(IIS)」を選択して「次へ」をクリック。
下図のように「必要に応じて対象サーバーを自動的に再起動する」にチェックを入れて「インストール」をクリックすれば良い。
図 「必要に応じて対象サーバーを自動的に再起動する」にチェックを入れて「インストール」
単にこれだけの作業を行うだけで、WindowsVPSでIISを動かす事が出来てウェブサーバーを立ち上げる事が出来るのだ。
そうすると、下図のように他のパソコンで起動したブラウザーに、Windows VPSのIPアドレスを指定すればIISのデフォルトページが表示出来る。
図 Windows Server OSのIISウェブサーバーのトップページ
このように簡単にIISを使ってウェブサーバーを開始する事が出来る。
ちなみに、ウェブサイトのルートフォルダは以下に示すパスになる。
C:\inetpub\wwwroot\
この中にある以下のHTMLファイルが上図のトップページだ。
C:\inetpub\wwwroot\iisstart.htm
これで取り敢えずはIISを動かしてウェブサイトの基本形が完成した。
なお、
- Web Platform Installerを使ったWeb Deployのインストール
- SQL Server Expressのインストールやセキュリティ対策
などは他の記事で詳しく紹介しているので参考にして頂きたい。順調に行けば30分も有れば完了する。
それらの作業が完了すれば、開発側のWindowsパソコンのVisual Studioを使ってウェブサイトを作成して出来上がったウェブサイトはWeb Deployを使うと簡単にWindows VPSに発行出来るのだ。
以下では、データベースを使ったウェブサイトのマイクロソフト社のサンプルプログラムを紹介しよう。
Contoso Universityサンプル
以下のマイクロソフト社公式サイトにある「Contoso University」と言うサンプルはASP.NET MVCでEntity FrameworkのCode First機能を使ってSQL Serverなどの操作をする練習には最適だ。
コントソ大学と言う架空の大学の生徒名簿、学科名、教師名簿などをWebサイト上で管理すると言うシンプルなWebアプリだ。
このサンプルを応用すれば、原理的にはどんな大規模なデータベースシステムでも組み上げる事は可能だろう。
Visual Studio 2019でContoso Universityプロジェクトを開く
下図は、Visual Studio 2019でContoso Universityプロジェクトを開いた状態だ。
図 Visual Studio 2019でContoso Universityプロジェクトを開いた
例えば、生徒名簿にある各生徒の情報管理には以下のクラスを使う。
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace ContosoUniversity.Models { public abstract class Person { public int ID { get; set; } [Required] [StringLength(50)] [Display(Name = "Last Name")] public string LastName { get; set; } [Required] [StringLength(50, ErrorMessage = "First name cannot be longer than 50 characters.")] [Column("FirstName")] [Display(Name = "First Name")] public string FirstMidName { get; set; } [Display(Name = "Full Name")] public string FullName { get { return LastName + ", " + FirstMidName; } } } }
コード Contoso Universityの生徒情報を定義するクラス
まあ、名前(FirstName)、苗字(LastName)などのデータを保持する単純なクラスだ。
ビルドする前にWeb.connfigファイルを以下のように変更すれば、Contoso Universityサンプルを動かす事が出来るだろう。
<connectionStrings> <!--add name="SchoolContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=ContosoUniversity2;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /--> <!--add name="SchoolContext" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=ContosoUniversity2;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /--> <add name="SchoolContext" connectionString="Data Source=203.0.113.0,1433\SQLEXPRESS;Initial Catalog=MyTestDB;User id=sa;password=パスワードを入れる;" providerName="System.Data.SqlClient" /> </connectionStrings>
コード Contoso UniversityサンプルのWeb.configファイルの一部
Web.configと言うのは、ASP.NETの手法でWebサイトを作成する場合に、各種の設定を行うファイルだ。
上のコードのconnectionStringsのブロックはデータベース接続に関する設定を行っている。
一行目はサンプルコードのオリジナルの行だが、これを修正して二行目のようにすれば、SQL Server 2019(あるいは Express)のLocalDBを使ってContoso Universityサンプルウェブサイトを表示する事が出来る。
三行目のように修正すると、指定したIPアドレスにあるSQL Server 2019(あるいは Express)にテーブル(MyTestDB)を作成してContoso Universityサンプルウェブサイトを表示する事が出来る。
今の場合には、WinserverのWindows VPS上にインストールしたSQL Server 2019 Expressを使う事になる。
Contoso Universityウェブサイトを開いてみる
実際にそのContoso Universityプロジェクトで作成されるウェブサイトをブラウザーで開いてみた(下図)。
図 Contoso UniversityサイトのStudents登録、表示画面
上図ではContoso UniversityサイトのStudents登録、表示画面を表示している。実行時には生徒は未登録なので一人もいない。
そこで上図のCreate Newをクリックしてワテの名前を登録してみた。
その結果、WinserverさんのWindows VPSで動いているSQL Server 2019 ExpressにはMyTestDBと言う名前のデータベースが作られて、その中にあるdbo.Personと言うテーブルに一つのレコードが追加されたことが分かる(下図)。
図 Contoso Universityサンプルで生徒を登録した後でSQL Serverのテーブルを見たら確かに登録出来ている
ちなみに上図は自宅のWindows 10 ProパソコンにインストールしたSQL Server Management Studioを使ってWindows VPSに接続して、そこで動いているSQL Server 2019 Expressを管理している状態だ。とても便利。
と言う事で、WinserverさんのWindows VPS SSDプラン環境で、マイクロソフト社のVisual StudioやSQL Serverなどを使ってASP.NET MVCやEntity Framework Code Firstと言った標準的な手法のサンプルであるContoso Universityプロジェクトを無事に動かす事が出来た。
このように、Windows VPSはマイクロソフト社の製品で完結すると同時に、GUIベースのツールが完備しているので操作性も良く、生産性が物凄く高いのだ。
まとめ
Windows系OSでウェブサイトを作るのがお勧め
当記事では、Windows系OSのレンタルサーバーを検討中の皆さんに対して、Windows系OSのレンタルサーバーの長所、短所など紹介した。
またWindows共用サーバーとWindows VPSの違い、長所、短所などを紹介した。
ワテのお勧めとしては、Windows VPSだ。その理由は、Windows VPSなら管理者Administrator権限で自分の好きなソフトをインストールして使えるので自由度が高い。
かつ、Windows系OSは自分で管理する場合でも、GUIベースの管理ツールが充実しているので、Linux系OSのような専門知識をそれほどは必要としない。
そのWindows VPS環境にIISを使ってウェブサイトを立ち上げる作業も、慣れてしまえば30分も有れば完了するのだ。
それらに必要なソフトウェアは全てマイクロソフト社の製品で完結するので、安心して使える。また、分からない事や何らかの問題が発生した場合でも、ネット検索すれば多数の技術文書が見付かるので、自力で解決する事も比較的容易に出来るのだ。
ウェブサイト作成に関しては、使い慣れた開発マシンにインストールしたVisual Studioを使って開発作業を行い、完成したらそのウェブサイトのデータをWebDeployの機能を使ってWindows VPSに発行するだけで良いのだ。
後は、必要ならデータベースを使ったウェブサイトもVisual Studioを使えば簡単に構築出来る。
と言う事で、Windows系OSを使ってウェブサイトを構築したいと思っている人はWindows VPSがお勧めだ。
ただし、本文中でも説明したが、WordPressサイトをWindows系OSで使う場合には、Windows VPSではなくて、WordPressの簡単インストール機能を持っている共用サーバーが良いだろう。
WinserverさんのWindows共用サーバーも、WordPress簡単インストール機能が備わっているのでWindows系OSでWordPressを使いたい人には最適なサーバーだろう。
実際にWinserverのWindows共用サーバーを使った例を別記事で紹介している。
WinserverのWindows VPSはスケーラビリティが高い
WinserverさんのWindows VPS SSDプランの場合には、以下の6種類ものプランがある。
プラン名 | メモリ | SSD | コア | 初期費用(税込) | 月額契約(税込) |
---|---|---|---|---|---|
SSD1902-1G | 1GB | 70GB | 3コア | 0円 |
|
SSD1902-2G | 2GB | 120GB | 4コア | 0円 |
|
人気No.1 SSD1902-4G |
4GB | 230GB | 6コア | 0円 |
|
SSD1902-8G | 8GB | 450GB | 7コア | 0円 |
|
SSD1902-16G | 16GB | 900GB | 9コア | 0円 |
|
SSD1902-32GB | 32GB | 1.7TB | 11コア | 0円 |
|
表 WinserverのWindows VPS SSDの全プラン一覧(2019年1月現在)
初めてWindows VPSを使ってウェブサイトを構築したい人は、月額千円程度の最安プラン(SSD1902-1G)を契約すると良いだろう。それで暫く使ってみて、もう少し処理能力が必要だと感じたら、上位プランへグレードアップすれば良い。
そのようにしてウェブサイトを運用しながら、もし物凄い人気サイトに成長したとしても、最上位プラン(SSD1902-32GB)なら大規模サイトの運用にも耐えられるだけのスペックなので安心だ。
今後の予定としては、
- Visual Studioを使ったASP.NET MVCサイトの開発入門記事、
- SQL server ExpressデータベースのCode First方式によるサイト構築記事、
- Windows共用サーバーの紹介記事(その後完成した。当記事の末尾にリンクあり)
など執筆したいと思っている。
乞うご期待!
WinserverのWindows共用サーバー試用体験談の記事が完成した
コメント
ワレコ様
貴重なブログを拝見させて頂いております。kaz と申します。
私もWordPressで自前ホームページを開設しょうと思っています。
IIS + WordPress + ASP.net MVC +MySQL で構成したいですが、
WordPressとMVCの統合がどうやれば良いのか分からず困っています。
※ホームページ全体は WordPress、一部の動的ページ部分は
MVCでMySQLからデータ取得、表示と言うイメージです。
IIS + WordPress と IIS + ASP.net MVC はそれぞれ動いているので、
あとはWordPress と ASP.net MVC を統合させたいのですが
参考情報が少なく困っています。
もし、可能であればこの内容で記事を書いて頂けるか、
アドバイス頂けると大変助かります。
これからも大変参考になる記事を楽しみにしています。
よろしくお願いします。
kaz様
この度は小生の記事にコメントありがとうございました。
>私もWordPressで自前ホームページを開設しょうと思っています。
私の場合は現状ではエックスサーバーのWordPressを使っています(このブログサイト)。
>IIS + WordPress + ASP.net MVC +MySQL で構成したいですが、
と言う事はkazさんはWindows Server OSが動いているレンタルサーバーをお使いなんですか?
Windows VPSあるいはWindows共用サーバーですね?
>WordPressとMVCの統合がどうやれば良いのか分からず困っています。
私の場合はエックスサーバーのLinuxOSでWordPressを使い、PHPを使ってSQL ServerやMySQLのデータを取り出してWordPressページに埋め込むなどしています。
>※ホームページ全体は WordPress、一部の動的ページ部分は
>MVCでMySQLからデータ取得、表示と言うイメージです。
>IIS + WordPress と IIS + ASP.net MVC はそれぞれ動いているので、
>あとはWordPress と ASP.net MVC を統合させたいのですが
「WordPress と ASP.net MVC を統合」に関しては幾つかの手法が考えられると思いますが、私が思い付くのは以下の手法です。
正統な手法かどうかは分かりません。もっと良い方法があるかも知れません。
(方法1)WordPressのページの中にiframeでMVCサイトを埋め込む
これが最も簡単ですね。
(方法2)MVCサイト側では、MySQLのデータを読み取ってtable形式で表示すると言う単純なページを作っておく。
WordPressのPHPを使ってそのMVCサイトのページをhtmlで読み込んでWordPressサイトに埋め込む。
時間があればその辺りの解説記事も書いてみたいんですが、今一つやる気が出ません。
(方法3)jQueryのajaxなどを使って非同期でMVCサイトからデータをJSON形式などで読み取って
WordPressサイトに埋め込む
と言うのもありますね。
ワレコ様
早速の回答ありがとうございます。
>と言う事はkazさんはWindows Server OSが動いているレンタルサーバーをお使いなんですか?
>Windows VPSあるいはWindows共用サーバーですね?
今のところ、ABLE VPS 仮想デスクトッププラン Win2 を考えています。
現在は、手元のデスクトップPC + Hyper-V(Win10 Pro) で構成を試行錯誤中です。
PHPでMySQLにアクセスも考えましたが、動的ページ部分は知識のある ASP.net MVC で
実現したいと思い苦戦中です。
( なので、なるべく PHP対応は避けたい。。。)
>(方法1)WordPressのページの中にiframeでMVCサイトを埋め込む
>これが最も簡単ですね。
なるほど、この方法が良さそうですね。
更に、動的ページ部分はログイン機能を持たせたいので
WordPress側でログイン or MVC側でログイン
この場合、WordPress ←→ MVC の行き来はどうなる? と言う疑問も生まれてきます。
現時点では、iframe 案で考えてみます。
アドバイスありがとうございます。
>時間があればその辺りの解説記事も書いてみたいんですが、今一つやる気が出ません。
ワレコ様のサイトにこのようなニーズが無く、ブログ記事の為だけに調査・試行は大変ですよね。その気持ち、分かります。
# PHPを避けてMVCで動的ページにしたい為、IISになります。すると情報が少なく苦戦していますが、もう少し頑張ってみます。 ドバイスありがとうございました。
># PHPを避けてMVCで動的ページにしたい為、IISになります。すると情報が少なく苦戦していますが、もう少し頑張ってみます。
私も以前、PHPを使わずにWordPressにMVCサイトを埋め込むとかMVCサイト経由でSQL Server, MySQLのデータを抽出してWordPressに埋め込むなど色々実験したんですが、結局はPHPを使う方が簡単だと言う結論になりました。
WordPressでPHPを使ってDBにアクセスする手法は、例えば
https://www.php.net/manual/ja/pdo.connections.php
にある
例1 MySQL への接続
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>
や
例2 接続エラーの処理
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "エラー!: " . $e->getMessage() . "<br/>";
die();
}
?>
などで案外簡単に出来ますので。
でも単にDBからデータを抽出するだけならこんなPHPでも行けますが、ASP.NET MVCで出来る全ての事をPHPでやるとなると本格的にPHPをマスターしなくてはならないので大変ですね。
私としてもASP.NET MVCの使い勝手の良さ(Visual Studio開発環境やIISの使い易さ)に慣れた今では、PHPは極力使わずにC#だけでプログラミングしたいんですが。
ワレコ様
返信ありがとうございます。
動的ページ部分では、DBアクセス、ファイル操作、ダウンロード圧縮ファイル作成など、
最終的にはややこしい処理をしようと思っています。
なので、PHPはやはり避けたいところです。
あと、こんなHP↓を見つけたので、調査してみます。
https://blog.areare.net/archives/13112
#この方のHPもWordPressみたいですね。
返信ありがとうございました。