趣味と実益を兼ねて、C# (ASP.NET) でWebアプリを作成しました。
題材としては、実にくだらないですが3つほどアイディアがありましたので、そのアイディアを実現していこうというわけで、空いた時間にコツコツ開発してきました。
それぞれ性格の違うWebアプリで、機能としてもばらばらですから、いい勉強になると思ったわけです。第一作目としては、簡単な投稿と検索、閲覧機能を持ったWebアプリです。これはWebアプリ開発を始めたときの練習用として作っていたものを、とあるジャンルに特化させて作り替えたものです。
実はコツコツ作り始めたのはずいぶん前の話で、ここ数か月は全く手をつけていませんでした。しかし、ちょっと隙間時間ができたので再開しまして、2日でできました。元々大して機能がないものを勉強ついでにこねくりまわしていただけなので、仕上げるのは早かったです。結局、勉強用につけた複雑怪奇な機能たちを省き、できるだけシンプルに、だれが見てもわかりやすく作ることを意識して仕上げました。
さて、折角仕上がったわけですから実際に動かしてみたいわけですが、Windows Serverのレンタルサーバーなんて高いものしかないだろうと諦めていました。別に商売をするわけでもないのに、月に数千円とか払いたくありません。感覚的に月に1000円が上限です。
仕事でASP.NETを使って、趣味でもASP.NETを使い始めたけど、動かせる環境がない。
そんな人が僕以外にいるのかわかりませんが、実際にWindowsサーバーを手頃な価格でレンタルし、ASP.NETで作成したWebアプリケーションを動作させるまでの流れをまとめたいと思います。
SQL Serverは高いよ!趣味ならMySQLへ乗り換えよう。
レンタルサーバーを選定する前に、仕事の延長でDBとしてSQL Serverを使っていたことに気が付きました。仕事で何度もSQL Serverを扱っていましたが、そのライセンス料の高さはよく知っているつもりです。
まずは以下にWindows Serverのレンタルサーバーサービスと、SQL Serverを使用する場合の料金を示します。月額料金は12か月契約を基準にしています。
さくらインターネット:さくらの専用サーバー
初期費用:21,600円
月額:3,888円
Windows Serverについて | 機能・オプション紹介 | さくらインターネット
GMO
初期費用:0円
月額:5,400円
プラン料金 一覧表 | GMOクラウド専用サーバー(ホスティングサービス)
1st Rental Server
初期費用:2,400円
月額:1,200円
Winserver
初期費用:2,160円
月額:864円
Windowsレンタルサーバー 共用サーバー2016 プラン詳細|ウィンサーバー(Winserver)
なお、価格からわかる通りサービス内容に大きな差異があります。
単純にWindows Server + SQL Serverが使える各社最安値のプラス(多分)を並べただけです。1st Rental ServerおよびWinserverは標準でSQL Serverが利用でき、追加料金はありません。
最初に言ったように商売をするわけでもなく、スペックを求めていませんので1st Rental ServerかWinserverで検討したいと思います。ただ、今後のことを考えると趣味としては早めにMySQLに乗り換えるのが得策だと感じました。
SQL ServerからMySQLへ変更する実装は超簡単で助かった。
あれこれ作りこんでからDBを変更するのは、テストの手間が増えてとても面倒くさいと想像がつきます。
そこで早速SQL ServerからMySQLへ乗り換えることにしました。実装は人・会社それぞれかと思いますが、僕はDB接続をする最低限の機能をひとつのクラスにまとめていました。大体、どこでも同じようなことはしていると思います。そのため、DBを変更する時の影響は最小限になったと思います。
MySQLへの接続方法はこちらがとても丁寧にまとまっていてわかりやすかったです。
とはいえ、手順は簡単。あんまりにも簡単でびっくりしました。
1.MySQL.Dataを参照に追加する(NuGet)
→SQL ServerではSystem.Dataを使っていましたが、MySqlを使う時はMySQL.Dataを代わりに使います。
2.System.Dataの代わりにMySQL.Dataを使う訳ですから、usingディレクティブを書き換えます。
3.ありがたいことに、大体のクラス名はMyがつくだけです。SqlConnectionはMySqlConnection、SqlTransactionはMySqlTransaction、SqlParameterはMySqlParameter。
ということで、僕の場合にはまとめて置換するだけで大体できちゃいました。
- using System.Data.SqlClientをusing MySql.Data.MySqlClientに置換。
- SqlConnectionなど、System.Data.SqlClientのクラスが参照エラーになる。
- エラーになったクラスの頭に「My」を付け加える(置換)
レンタルサーバーをえらぶ
SQL Serverの問題が解決したところで、レンタルサーバーを選定します。
趣味ですから、低スペックだけど安い1st Rental ServerもしくはWinserverのいずれかということになります。もちろん格安なりにそれぞれ機能的な違いがあります。
1st Rental Server レギュラープラン |
WinServer Quick+プラン |
|
初期費用 | 2,520円 | 2160円 |
月額費用 | 1,200円 | 864円 |
OS | Windows Server 2016 | Windows Server 2016 |
Webサーバー | IIS10.0 | IIS10.0 |
Web容量 | 100GB | 10GB |
DB容量 | 20GB | 10GB |
ASP.NET | 2.0 - 5.0 | 2.0 - 5.0 |
バックボーン | 10,000Gbps | 630Gbps |
データセンター | ? | 国内 |
サブドメイン | 1strentarlserver.com | happywinds.net |
サブドメイン数 | 無制限 | 1 |
リモートアクセス | 不可 | 不可 |
簡単にまとめましたが、ご覧のように1st Rental Serverの方がちょっと良いサービス内容を提供しています。サブドメインは酷いですので、サブドメインを使わず、きちんとサイトを運営したいなら1st Rental Serverが良さそうです。一方でWinserverは本当にぎりぎり下限のスペックしかありません。とりあえず動かしてみたいという場合にはこちらが安価で良さそうです。もし不満があれば、もちろん上のプランもあります。
ということで、今回はWinserver Quick+プランにしました。
サブドメイン利用で「happywinds.net」というかっちょわるいサブドメインですが、商売じゃないので目をつむります。それにしても安いですね。こんなもんなのかもしれないけど、これくらいなら趣味で借りていても負担になりませんね。
申し込み後の流れ
早速申し込んでみたものの、最短3時間で始められる!と謳っている割にいつになっても何の連絡もありません。仕方がないので待っていると、月曜日朝に連絡がありました。そうです。土日はお休みで、僕は土曜の朝に申し込んでいたわけです。
月曜朝に決済完了の連絡があり、間もなくサービス開始の連絡がありました。
サービスが開始されると、メールでパスワード付きのPDFファイルが送られてきます。
ここに、FTPのアクセス方法やパスワード、コントロールパネルのアクセス方法などが記載されています。
使い勝手は良くない!
共用サーバーであることから致し方ありませんが、リモートアクセスをしたり、直接IISの設定をいじくることができません。コントロールパネルから最低限の機能が提供されています。それ以上の設定が必要な場合には、管理者にメールで連絡する必要があります。
Winserverのコントロールパネルはこんな感じです。
「MySQL追加」の項目にはデータベース名やユーザーなどアクセスに必要な情報が記載されているだけです。Winserver Quick+プランではSQL Serverが使えるようですが、別途メールで申請が必要なようです。
「サイトの管理」の項目ではサイトの起動と停止が行えます。しかし、表示は起動しても停止しても変わらず、機能してるいないっぽいです。別に必要がないので無視しています。
「アプリケーションの管理」の項目では、ルートフォルダ配下にあるフォルダ内のアプリケーションを追加することができます。アプリケーションプールの操作とASP.NETのバージョン変更もここから行えます。
あとはパスワード変更とWordpressなどのインストール機能だけ。
つまりほとんど何にもできません。ただサイトをアップロードして動かす。それ以上は都度管理者へメールで連絡をする必要があります。Webページをただアップロードしたり、ブログをするだけ、ということであれば他社のもっと安いサービスもあります。Windows Serverのために高くなっているWinserver Quick+プランを選ぶ必要はない気がします。一方でまじめにASP.NETで作ったWebアプリを運営したいのであればスペックも機能も不足しています。一体どこをターゲットにしているのかわからないサービスだなというのが素直な感想です。
おまけ:MySQL Workbenchすごい!
今回、MySQLに触れたのは実に5年以上、下手したら10年近く久しぶりでした。当時はSQL ServerでいうSQL Server Management Studioに相当するものはなかったと思うのですが、今回久々にMySQLをインストールしてみたら、一緒にMySQL Workbenchというものがインストールされました。
これがなかなか優秀で、SQL Server Management Studioほどの機能的な充実はないものの、それに迫るくらいの機能は持っていてとても便利です。DBの作成、テーブルの作成や変更、データの追加や削除などもGUIから行うことができます。英語表記なのと、まだまだ触って間もないので細かいところには言及できませんが、MySQLもいつの間にかリッチになったんだなぁと驚いたという話でした。