アプリ開発・ウェブ開発

ウェブサイト制作で借りるべきサーバは?サーバの役割と種類を解説してみた。


初心者がサイト制作するってなった場合、本買ってきて共用サーバ借りてFTPで秀丸で書いたhtmlをファイルをアップロードって人が多かったと思うのですが、最近はプログラミング志向の人が多くて、プログラミングは学んでるけどサーバのことをあまり知らない人が多いイメージです。

昔は非エンジニアはロリポサーバとか使ってて、エンジニアは専用サーバを使ったりしてたイメージですが、最近はプログラマ初心者が逆に共用サーバの概念を知らなかったりと逆転現象が起こっている気がします。理由としてはスクールが増えたのと昨今の謎のプログラミングブームからだと思ってて、プログラミングの概念や文法、herokuやAWSなどの高度なことは学んだことがあっても、画面で操作できるロリポサーバのことは知らなかったりします。

そんなわけで、今回はサーバについてまとめてみたいと思います。

サーバとは一体何をしているものなのか?

基本的にはサーバもパソコンと同じです。

サーバは常に待ち受けてて外部からのアクセスに対して何かを返すのが仕事です。

リクエストを送る側をクライアントと呼んで、リクエストを受ける側をサーバと呼びます。

サーブ(serve)するものなのでサーバと呼ぶんですよね(そのままですね)クライアントは皆さんが使ってるパソコンやスマートフォンなどです。

「クライアント」が「サーバ」に対して「リクエスト」を送って
「サーバ」が「クライアント」に対して「レスポンス」を返す

簡単ですよね。

このサイトを見られてる方はウェブサイトやウェブアプリの制作に興味がある方が多いと思うので、わかりやすいようにウェブサーバを例にしましょう。

クライアントはサーバに対してリクエストを送る

「スマートフォン(クライアント)」が「ウェブサーバ」に対して「サイトが見たい」って「リクエスト」を送ると
「ウェブサーバ」が応答して「スマートフォン(クライアント)」に対してウェブサイトという「レスポンス」を返してくるわけです。

サーバはリクエストに応答してレスポンスを返す

ちなみに、ウェブサーバの場合リクエストに対して応答できない場合のエラーコードって言うのが決まっています。

代表的なもので言うと

・404エラー

ページが削除されていたり、そもそもそのURLにコンテンツがなかったりすると表示されるエラーです。
ネットサーフィンしていても一番良く見かけるやつかもしれません。

・500エラー
サーバ側のプログラムに不備があったり設定が間違ってる場合のエラーです。
40X系のエラーはクライアント側の問題ですが、50X系のエラーはサーバ側の問題なので利用者はどうすることもできません。運営に文句を言いうか、優しくバグ報告してあげましょう。笑

とにかくサーバはリクエストに応じてレスポンスを返すのが基本の仕事となります。

サイトを作ろうと思ったら一般の人が見れるところに公開してアクセスしてもらう必要があるので、サーバを借りてhtmlファイルやプログラムを置いて、みんなのアクセス(リクエスト)を受け取ってレスポンスを送る(サイトを表示させる)必要があるわけです。

ウェブサーバ以外のサーバ

上記はわかりやすいようにウェブサーバで説明しましたが、サーバの役割はウェブサイトのためだけではありません。

他に代表的なサーバの役割を紹介します

メールサーバ

文字通りメールを置いておくサーバです、ウェブサーバーと同じサーバ上に設置することもありますが、
メールをはじめインフラ周りは一度設定すると変更が大変めんどくさいので、流動性の高いウェブサーバーとは切り離して運用されることが多いです。

DNSサーバ

サーバとクライアントはIPアドレスで通信するのですが、IPアドレスをyahoo.co.jpやentershare.jpなどのドメインに置き換えてくれるのがDNSサーバーとなります。
こちらもウェブサーバやメールサーバーと同じサーバーにまとめて設置することもできますが、同じくインフラ周りで設定変更が大変めんどくさいのと、そもそもDNSの設定を自前でやること自体めんどくさいので、ドメイン会社が提供するDNSのサービスを利用することが多いです。

ファイルサーバ

ファイルを置いておくだけのサーバ。個人利用だとNASのイメージです。
今でこそネットで外の世界と簡単に繋がって、Dropboxなどのクラウドストレージサービスを使うことができますが、昔はそんなんなかったので社内にサーバー置いてみんなでファイルを共有してました。
今でもセキュリティの厳しい会社だと社内サーバーを使ってたりしますね。

データベースサーバ

データベースを提供するサーバです。データベースはウェブサービスと密接に関わることが多いので、よく使うことになると思います。
例えば、WordPressのようなブログを書くツールだとブログ記事を保存する先はデータベースになります。
PostgreSQLやMySQLなどなど小さいサイトの場合同じサーバー内にインストールすることが多いですが、規模が拡大するとデータベースだけ別のサーバーに分けたりします。

レンタルサーバの種類と特徴

サーバと一口に言っても、ドラマTwentyFourのCTUが使っているようなでっかいラックのものもあれば、ドスパラに売ってるようなミドルタワーみたいなものもあります。

その中でまたレンタルサーバと言われる、ウェブ上で申し込みできて簡単にレンタルできるレンタルサーバにさらに色んな種類があって、知識なしでも使える共用サーバから、インフラ周りの知識がいるVPSやAWSなどまで様々です。
簡単なものだと、月100円くらいからで別にプログラミングを学んでなくても簡単操作でサイトが作れるツールなどを提供してくれてたりもします。

普段見る機会はほとんどありませんが、映画で見るようなハードがデカい専門機は一般的に処理能力が高かったり、堅牢な作りをしてると考えてOKです。

でも中に入ってるOSはオープンソースで誰でも手に入ったりしますし、実はiOSやAndroidやMacOSと中の仕組みは非常によく似ています。

今回はウェブサーバの文脈で話をしますが、サーバの中身はパソコンやスマートフォンとほとんど一緒です。

共用サーバ

1台のでっかいサーバをみんなで共有するサーバです。月100円くらいからレンタルできます。

面倒なミドルウェアの設定や負荷対策なども全てサーバ屋さんがやってくれますし、画面をクリックだけで簡単にサイト公開できたりします。

プログラミングの知識がなくてもサイトを公開することができますが、逆に自分の実行したいプログラムを置いても、サーバ側が提供しているプログラムのバージョンと一致しなくて動作しないってこともあります(*_*)

全てサーバ屋さんが面倒見てくれる代わりに、独自で色々ツールをインストールしたりすることは制限されてたり、そもそもできなかったりします。

例えて言うなら、家具付きマンションの一室を借りるようなイメージです。既にイスも机もベッドもあるけど、自分で買ってくることはできないって感じです。

また、みんなで1台のサーバを共有するので、同居人のサイトが自分のサイトのパフォーマンスにも影響することがあります。例えば同居人のサイトにアクセスが集中したら自分のサイトも重くなります。

共用サーバーのおすすめはロリポップ!サーバーです。プログラミングの知識がまったくなくてもウェブサイトを作ることができますし、弊社のWordPressワークショップもロリポップサーバーを基本としています。


ロリポップサーバーのお申込みはこちら

ちなみにロリポップサーバーはムームードメインと一緒に申し込むと初期費用が無料になった気がします。



 
ムームードメインのお申込みはこちら

VPSサーバ

VPSはバーチャル・プライベート・サーバの略で、1台のでっかいサーバをみんなで共有しますが、でっかいサーバの中に仮想的なサーバを1台インストールしてその中は自分専用に使えるサーバです。

月1000円くらいからレンタルできます。

例えて言えば、分譲住宅みたいな感じでしょうか^^;みんなの共同体ではありつつ、自分の土地の中ではどんな家建てようが、どんなバス・トイレにしようが基本的には自由です。

VPSは大きな仮想マシンの中で好きにOSをインストールすることができますし、OSの中にインストールするミドルウェアもプログラミング言語も自由です。
デメリットは全部自分でインストールする必要があるので、知識も手間も必要です。

また、基本的に自己責任ですので、脆弱性のあるプログラミング言語をインストールしたりしてクラックされても自分で直さないといけません。

仮想サーバなのでそこまで大きなパフォーマンスを発揮することはできませんが、非常に割安ですしスタートアップでウェブサービス作るとかなら最適です。

共用サーバが非プログラマでも使える簡単なサーバなのに対し、プログラマは最低でもVPSのサーバを使うことになると思いますし、自分でサーバやネットワークの仕組みを勉強するにも丁度良いサーバです。

おすすめはさくらのVPSサーバ、実績があって安定しているし、弊社で新規でウェブサービスを作るときもさくらVPSでスタートすることが多いです。


さくらVPSのお申込みはこちら

 

もしお勉強のために借りてみる場合や、バックアップ専用のサーバにするなどであまりコストかけたくない場合海外の激安VPSを使ってみるのも良いかもです。

 

専用サーバ

1台のサーバをまるごと自分のものとして使用できます。

月5000円くらいからレンタルできます。分譲住宅とは違い、自分で好きな土地を買っちゃったような感じですかね。

VPSでできることは全部できますし、自分専用ですのでパフォーマンスも高いです。

VPSで限界がきたら専用サーバに乗り換えるのが昔ながらのスペックアップの手順です。

しかしながら、乗り換える場合、旧サーバでセットアップした内容をまた新しいサーバにセットアップする必要があるので非常に面倒です。

そこで出てくるのが次に紹介するクラウドサーバです。

クラウドサーバ

クラウドサーバはVPSのように仮想的なサーバを自分のものとしてセットアップすることができます。

VPSや専用サーバの場合、借りたサーバの限界がきたら、引っ越してさらに高いスペックのサーバにセットアップし直すことになるのですが、クラウドサーバの場合、限界が来たらスケールアップすることができます。

さらに設定しておけば自動でスケールアップすることもできますので、例えばサイトがテレビ取材で取り上げられて、アクセスアップが予想できるタイミングだけスケールアップする、みたいな使い方もできます。

クラウドのサーバだとAWSが圧倒的に有名で、世界の有名サイトのほとんどはAWSで稼働していると言っても過言ではないかもです。

そんな便利なクラウドサーバですが欠点としてはスペックあたりの値段単価が非常に高いことです。

VPSと比較しても、1.5倍くらい高いので、拡張する予定がなかったり、アクセスが一定のサイトなどの場合はVPSの方が良いです。

PaaS、mbaasなどなど

クラウドサーバの派生として最近主流なのがPaaS、mbaasなどです。

クラウドサーバが拡張可能な土地だったとしたら、PaaS、mbaasは拡張可能な家具付きマンションみたいなイメージです。(そろそろ不動産の例えが難しくなってきた笑)代表的なサービスとしてはherokuとかですかね、herokuにはDBやウェブサーバなどのミドルウェアが全て揃ってるので、開発者はソースコードをアップするだけで公開できてしまいます。

しかもアクセスアップしてきたら拡張可能ですので、専用サーバのように引っ越しの手間もかかりません。

取り急ぎ開発したアプリを公開したいのであれば大変便利ですが、同じくクラウドなので少し割高なところがネックです。

サーバを自宅に置いてみる

今回はウェブサイト開発を想定してレンタルサーバの紹介を中心にしてみましたが、何度も言うようにサーバもパソコンと同じようなものですので、自分で購入して自宅に設置することも可能です。

一般にサーバというとこのようなデカイラックのイメージですが、小さいスペックでよければ電気屋に売っているノートPCなどでも十分です。

中にインストールされているOSがWindowsなのかサーバーOSなのかの違いでサーバとして動作するかどうかが決まるわけです。

興味がある方は一度サーバOSインストールして遊んでみてはいかがでしょうか?

まとめ

今回はサーバの役割のさわりだけを説明しましたので、もしガッツリお勉強したい方はこのあたりの本でお勉強してみると良いです。

この本、何故かオフィスに2冊あるのですが、サーバの概念をざっくり理解したい方にはおすすめです。

The following two tabs change content below.

SNS