今回はWEBサーバについての説明です。
自身のWEBサイトを持とうと考えている方なら、後にレンタルサーバを契約するというのが一般的です。
その際に悩まないような情報を記載しています。
WEBサーバとは?
WEBサーバとは、WEBサイトのデータを格納・提供するための端末です。
WEBクライアントへ安定してWEBサイトのデータを提供するために、WEBサーバは安定した駆動を求められます。
そのため、WEBサーバとして用いられるコンピュータは、一般的なコンピュータより高性能です。
また、安定した駆動をするように作られたOS(オペレーションシステム)を搭載しています。
個人や、大きくない会社の場合、レンタルサーバを契約することが多いです。
レンタルサーバの利点として、セキュリティ対策等が事前にされていたり、主要な機能(PHP・WordPressなど)の実装が簡単だったりします。
WEBサーバの種類
WEBサーバの要素として、以下があります。
- OSは何か?
- サーバソフトは何か?
- データベースは何か?
- バックエンド言語は何か?
レンタルサーバの場合、1〜3の変更は難しいため、指定がある場合は事前確認が必要です。
WEBサーバのOSについて
WEBサーバのOSは、LinuxかWindowsの2択です。
以下に各OSの特徴を説明します。
● Linuxサーバの特徴
①CUIである
②CUIなのでUI部の負荷が低く、同等スペックのWindowsサーバと比較すると、安定度が高い
③CUIなのでコマンドなど操作方法を覚える必要がある
④レンタルサーバの場合、契約価格が低い
● Windowsサーバの特徴
①GUIである
②GUIなのでUI部の負荷が高く、同等スペックのLinuxサーバと比較すると、安定度が低い
③GUIで、Windowと同じ操作感である
④レンタルサーバの場合、契約価格が高い
サーバソフトについて
主流のサーバソフト3点(Apache/nginx/Microsoft IIS)を以下に説明します。
● Apache (Linux/Windows)
Apache(アパッチ)は、たいへん人気のあるサーバソフトです。
フリーソフトで1995年にリリースされ、2021年4月までシェア1位でした。
現在ではシェア2位となっています。
1995年リリースのため、ネット上に技術情報も多く、実装する上であまり困ることがありません。
Apacheのメリットとして、CPU処理速度が早いことと、機能が豊富であることが挙げられます。
CPU処理速度が早いと、「バックエンドのプログラムが多い」や「動画が多い」場合でも、軽快にサービスを提供できます。
一方、1ユーザーに割り当てるリソース量(CPUやメモリの消費量)が多くなるため、並列処理が苦手となります。
並列処理の例として、SNSのような多くのユーザが同時に通信をするWEBサービスが挙げられます。
レンタルサーバを契約する場合、Apacheを実装しているレンタルサーバが多いです。
● nginx (Linux/Windows)
nginx(エンジンエックス)は、現時点では、一番普及しているサーバソフトです。
オープンソースで2004年に公開されました。2021年5月にApacheを追い越しシェア1位となりました
Apacheよりも難しいと言われますが、現在ではネット上の技術情報も十分にあるので、実装に困ることはあまりないと考えています。
nginxも機能は豊富ですが、Apacheが苦手とする並列処理が得意です。
Apacheとnginxでは設計思想が違い、nginxはメモリ消費量を抑えるように設計されています。
一方、CPU消費が大きくなる「バックエンドのプログラムが多い」や「動画が多い」という動的な処理には向かないというデメリットがあります。
レンタルサーバを契約する場合、nginxを実装しているレンタルサーバを探す必要があります。
● Microsoft IIS (Windowsのみ)
Microsoft IISは、Windows向けのサーバソフトです。
IISはInternet information service の略です。
シェア率は5位ほどです。
GUIであるWindows向けに作られた、GUIソフトウェアなので視覚的に設定ができ、初心者には敷居が低いです。
また、Windowsならでは、バックエンド言語として.net(C#/VB)と親和性があります。
データベースについて
データベースは、例えばブログ記事などのデータを保管しておくために使用します。
WordPressサイトでは、記事の数だけWEBページがある訳ではありません。
記事を表示するためのWEBページ(枠組み)に、記事のデータを入れ込むことにより、枠組み1つでいくつものWEBページがあるように表現できます。
一般的にはRDB(リレーショナル・データベース)が多いですが、RDB以外のDBも存在します。
RDBはSQL言語という、データベース操作言語でデータの取得・更新を行うことができます。
お勧めのデータベース3点(MySQL・MariaDB/Microsoft SQL Server/PostgreSQL)を以下に紹介します。
※以下に紹介するデータベースは、すべてRDBです
● MySQL・MariaDB
MySQLとMariaDBはフリーソフトで、ほとんど同一の動作が行えます。
有名なCMSソフトである、WordPressのデータベースと使用されています。
また、XAMPPという、WEB開発パッケージ内に含まれることも有名です。
以下は豆知識なので、読まなくてもOKです。
もともとはMySQLのみだったのですが、ある背景からMySQLとMariaDBに分岐することになります。
その背景とは、oracleによるMySQLの買収です。
oracleはoracle dbという、シェア1位のデータベース(主に有料)を所有しています。
MySQLはシェア2位で、oracleにとっては競合でした。
この買収によって、シェアを広げたいoracleが、MySQLを潰したり、無償を辞めるのではないかと懸念しました。
そして、その抑止力となるように出来たのがMariaDBとなります。
結果として、現在も素晴らしいデータベースを無料で使用することができています。
● Microsoft SQL Server
Microsoft SQL Serverは、Windows Serverと親和性が高く、GUIが豊富なので初心者にとって敷居が低いです。
小規模であれば、無料で使用することもできますが、基本的な使用であれば有料と考えたほうが良いです。
データベースのシェアは3位です。
● PostgreSQL
PostgreSQLはMySQLより複雑です。
ORDB(オブジェクトリレーショナルデータベース)といって簡単に機能を説明すると、以下のようなことができます。
・独自の関数を追加できる
・XMLやJSONなど、様々なデータ型に対応している(通常RDBは帳票データ型のみ対応)
・複雑なクエリを実行する場合はMySQLよりも高速である
バックエンド言語について
バックエンド言語は、レンタルサーバーの場合でも、基本的に追加が可能です。
以下にバックエンド言語を3点、紹介します。
● PHP
PHPはバックエンド言語として人気です。
現在でも、アップデートが進んでいて成長性があります。
また、プログラム言語の中では学習コストは低めです。
HTML記述内に書けることも、特徴の一つです。
人気のCMSであるWordPressはPHPで作成されています。
● Ruby
Rubyもバックエンド言語として人気です。
PHP同様に現在でも、アップデートが進んでいて成長性があります。
プログラム言語の中では学習コストは低めです。
● C#
C#はMicrosoft IISを使用する場合に、使用するバックエンド言語です。
WEB開発としては一般的ではなく、個人的にはあまりお勧めではありません。
レンタルサーバについて
レンタルサーバについて、現時点での3選を紹介します。
もっと安いレンタルサーバは多くあるのですが、そこそこのアクセス(100万PV程)でも安定稼働をするという前提での選定です。
● ConoHa WING
現状、コストパフォーマンスが一番高いレンタルサーバだと思います。
料金 | 1年契約:約950円/3年契約:約680円 |
---|---|
運営時期 | 2018年~ |
サーバソフト | nginx + Apache |
スペック(容量/CPU/メモリ/RAID) | 300GB/6コア/8GB/RAID10 |
DB | MariaDB |
バックエンド言語 | PHP/Ruby/Python/Perl |
メルマガ | ✕ |
● エックスサーバー
運営歴が長く、機能面で少しConoHa WINGに勝っています。
ただし、コストパフォーマンスはConoHa WINGに劣ります。
料金 | 1年契約:約1100円/3年契約:約990円 |
---|---|
運営時期 | 2003年~ |
サーバソフト | nginx + Apache |
スペック(容量/CPU/メモリ/RAID) | 300GB/6コア/8GB/RAID10 |
DB | MariaDB |
バックエンド言語 | PHP/Ruby/Python/Perl |
メルマガ | 〇 |
● mixhost
マッチングサービスや大人向けのコンテンツも運営することができます。
逆に、上記を運営する予定がない場合、ConoHa WINGもしくはエックスサーバーのほうが良いです。
この記事を書いた人
兼業サラリーマンをしている、たくみと言います!
自身のためにも、皆さんの役に立つ記事を投稿していきます!
WEB技術やPC関連情報が得意分野です。
コメント