ドリリウム

趣味の情報や思いついたことを発信しています。高知 / 釣り / DIY / バイク / 車 / 家具制作 / アクアリウム / コーヒー / 地方移住 / ルノー・ルーテシア / SUZUKI ST250 E typeなど。

趣味の情報や思いついたことを発信しています。高知 / 釣り / DIY / バイク / 車 / 家具制作 / アクアリウム / コーヒー / 地方移住 / ルノー・ルーテシア / SUZUKI ST250 E typeなど。


【趣味のASP.NET】ASP.NETが動かせる激安レンタルサーバーを借りてみた

趣味と実益を兼ねて、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円

レギュラープラン料金|Windows共用サーバー

Winserver

初期費用:2,160円

月額:864円

Windowsレンタルサーバー 共用サーバー2016 プラン詳細|ウィンサーバー(Winserver)

 

なお、価格からわかる通りサービス内容に大きな差異があります。

単純にWindows Server + SQL Serverが使える各社最安値のプラス(多分)を並べただけです。1st Rental ServerおよびWinserverは標準でSQL Serverが利用でき、追加料金はありません。

最初に言ったように商売をするわけでもなく、スペックを求めていませんので1st Rental ServerWinserverで検討したいと思います。ただ、今後のことを考えると趣味としては早めにMySQLに乗り換えるのが得策だと感じました。

SQL ServerからMySQLへ変更する実装は超簡単で助かった。

あれこれ作りこんでからDBを変更するのは、テストの手間が増えてとても面倒くさいと想像がつきます。

そこで早速SQL ServerからMySQLへ乗り換えることにしました。実装は人・会社それぞれかと思いますが、僕はDB接続をする最低限の機能をひとつのクラスにまとめていました。大体、どこでも同じようなことはしていると思います。そのため、DBを変更する時の影響は最小限になったと思います。

 

MySQLへの接続方法はこちらがとても丁寧にまとまっていてわかりやすかったです。

MySQL Connector/NETを使ってみよう

 

とはいえ、手順は簡単。あんまりにも簡単でびっくりしました。

1.MySQL.Dataを参照に追加する(NuGet)

 →SQL ServerではSystem.Dataを使っていましたが、MySqlを使う時はMySQL.Dataを代わりに使います。

2.System.Dataの代わりにMySQL.Dataを使う訳ですから、usingディレクティブを書き換えます。

3.ありがたいことに、大体のクラス名はMyがつくだけです。SqlConnectionMySqlConnectionSqlTransactionMySqlTransactionSqlParameterMySqlParameter

 

ということで、僕の場合にはまとめて置換するだけで大体できちゃいました。

  • using System.Data.SqlClientusing 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のコントロールパネルはこんな感じです。

f:id:katamichinijikan:20171203085109p:plain

 

「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もいつの間にかリッチになったんだなぁと驚いたという話でした。