今さら聞けないWebサーバの
基本知識と選び方
コンなご & さくらクラブ & JAWS-UG Nagoya 勉強会
自己紹介
● 株式会社アーシタン所属
● 静岡県富士宮市在住
● たぬき
● concrete5エヴァンジェリスト
● エンジニアやる前は塾講師とか
今回の目次
1. Webサーバのお話
2. データベースサーバのお話
3. セキュリティのお話
4. concrete5を使う上での選び方
5. 困ったらどうする
サーバのこと気にしてますか?
いろいろ気にしなければならないことがありますねぇ・・・(;´Д`)
1. Webサーバ
● HTMLや画像などのファイルをウェブブラウザの要求に対して、適宜配信
するためのサーバ
● PHPやRubyなどの言語を用いることで、動的に配信内容を変更することも
できる
● SSL証明書を利用することで、通信を暗号化することもできる
● HTTP/2はHTTPSベースのため、SSL証明書が必要
● Apache, Nginx, IISなど
Apache HTTP Server
● 多くの共有レンタルサーバに利用
● 2016/04/24現在のサポートバージョンは2.2, 2.4
● mod_****というモジュールを組み込むことで様々な拡張が可能
● .htaccessというファイルでディレクトリごとに設定を変更することが可能
● 多くのCMSはApacheで動かすことを前提として作られている
concrete5での.htaccessの利用例
例:プリティーURL
[管理画面]→[システムと設定]→[URLとリダイレクト]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
Nginx
● 静的なコンテンツを高速に配信する機能に特化
● 動的にコンテンツを配信する場合、別プロセスと連携させる必要がある
● ロードバランサーとしても利用可能
● リバースプロキシとしても利用でき、キャッシュさせることができる
● .htaccessが利用できず、設定はサーバの設定ファイルですべて行う
● モジュールの組み込みも可能
● HTTP/2にも対応
PHP
● Webサイトを動的に変化させたいときに利用するプログラム言語
● 変化にはロードが必要
● 2016/04/24現在サポートされているバージョンは7.0, 5.6, 5.5
○ 5.5のサポートは2016/06に終了
● concrete5はPHPベースで作成されている
黒駒
2. データベースサーバ
● Webサイトやアプリケーションなどで、多くのデータを利用する場合に管理
をしやすくするためのシステムが入っているサーバ
● MySQL, MariaDB, Postgresqlなど
● CMSなどのシステムでデータ量が増えるとここがボトルネックになることがよ
くある
● ご利用は計画的に( ・`д・´)
MySQL
● データベース管理システム
● 多くのシステムでMySQLの利用が可能
● 2016/04/24現在のサポートバージョンは5.6, 5.7(Community Edition)
● 現在は主たる開発及び権利をオラクルが所有している
MariaDB
● MySQL派生のデータベース管理システム
● CentOSではMySQLからMariaDBに置き換えられている
● MySQLで動くシステムは基本的に動く(concrete5も同様)
黒駒
3. セキュリティ
● アップデートはこまめに
● WAF(Web Application Firewall)も使うといいかも
● メールフォームや会員サイトなど、個人情報を扱う可能性がある場合は暗号
化通信に(SSL証明書)
● ミドルウェアのサポート期限に要注意
アップデートしましょうね
● CMSはアップデートに脆弱性対策やバグ修正が入っているため、アップ
デートは必ず行うこと
● CMSを使ったWeb制作だと、作りきりで管理しないパターンが多いが、作り
きりでも注意喚起はしておこう
● concrete5は近々バージョン8が出るよ
WAF(Web Application Firewall)
● Webアプリケーションに設定できるファイヤウォール
● 不正なアクセス要求を遮断できる
● 共有のレンタルサーバで利用できるところもある
○ さくらのレンタルサーバ
○ CPI(ACE01)など
● クラウドでも
○ AWS WAF
SSL証明書
● サーバの通信を暗号化するための証明書
● 「Let's Encrypt」で無料取得も可能(期限は90日間)
● 無料取得したものは暗号化のみのもので、ドメインやサイトの信頼性を証明
するものではない
● 「SSL Server Test」を使用することで、SSL証明書と設定内容の安全性をテ
ストすることができる
● HTTP/2はSSL通信が前提なので、Webサイトの全ページをSSL化するのが
デフォルトになっていく
● concrete5はSSL化しやすいよ
ミドルウェアのサポート期限
● 脆弱性やバグに対するアップデートが行われる期間
● Windows XPの時に問題になったが、PHPやMySQLにもサポート期限があ
ることを知らない人も多い
● 共有のレンタルサーバだと古いバージョンのものしか使えない場合もあるの
で注意
● 共有のレンタルサーバでもPHPのバージョンアップできたりする
● VPSやクラウドの場合、管理者がアップデートする必要がある
● 「独自パッチを当ててるから大丈夫」という言葉には要注意
黒駒
concrete5を使うサーバの選び方
1. システム条件で絞る(必須)
2. Webサイトの属性で考える
3. Webサイトのこれからの成長を見据えて考える
システム要件
● PHP:5.5以上必須 5.6, 7 以上推奨
concrete5バージョン8から5.5.9 以上必須
● PHP拡張:
CURL, zip, mcrypt, openssl, GD, mysql (PDO Extension), mbstring, iconv
● MySQL:5.1以上必須, Innodb テーブルサポート
● Webサーバ:Apache, Nginx など(リライトルールなど設定ができるもの)
Webサイトの属性
1. コーポレートサイト
2. メディアサイト
3. ECサイト
4. Webサービス など
何が目的なのか、どんな機能が必要なのかによって、サーバに必要とさ
れる処理能力も変わってくる
Webサイトの成長
● アクセス数の増加
● 機能の追加
○ EC・決済機能
○ メディア化
○ Webサービス化
などなど
例えば、コーポレートサイト
➔ お知らせを更新するだけ
➔ 会社・業務・商品紹介とお問い合わせ
➔ 特に機能の追加は考えていない
➔ 商品は追加・修正するかもしれない
➔ PVは多くても月間1,000くらい
共有のレンタルサーバで
➔ 会社・業務・サービス・商品の紹介
➔ お知らせ
➔ 今後、EC機能を付けたい
➔ SSL必須に
➔ PVは月間10,000くらいから
クラウド・VPSで構築したほうがいい
かも(要構成)
例えば、データベース型のWebサービス
➔ ターゲットは狭い
➔ 情報は月に1回増えるくらい
➔ 突発的なアクセスはほぼない
➔ 今後、拡張する予定はない
➔ 会員機能など特殊な機能はない
共有のレンタルサーバで(?)
➔ ターゲットが広い
➔ 情報が頻繁に更新
➔ イベントなどで突発的なアクセスがある
➔ 会員機能あり
➔ SSL必須
クラウド・VPSで構築したほうがいい
かも(要構成)
黒駒
具体的なサービス紹介
● さくらのレンタルサーバ
(スタンダードプラン以上、PHP5.6選択可、クイックインストール)
● CPI シェアードプラン ACE01
(PHP5.6, PHP7 選択可、クイックインストール)
● XSERVER
(PHP5.6, PHP7 選択可)
● Zenlogic
(クラウド型、PHP5.6選択可)
● Amata Cloud
(クラウド型、インストール不要、PHP7)
クラウドやVPSに構築されている場合の注意
● RHEL 7系でもデフォルトのPHPのバージョンは5.4系なので、別途対応が必
要
● その他、拡張機能やミドルウェアも脆弱性が見つかる場合があり、緊急的な
アップデート、定期的なアップデートは必須
● 構築だけ外注に出している場合など、管理されていない場合があるので、
担当者に状況の確認を
黒駒
困ったらどうする
● とりあえず、エラーメッセージなどで検索する
→日本語の情報が出てくるとは限らない
● フォーラムで聞く
→すぐに返答が返ってくるわけではない
● 詳しい人に直接聞く
→相手に失礼のないように
● 対応してくれそうな会社に依頼する
→concrete5の情報を持っているところにしないと痛い目見ることになるかも
まとめ
● Web制作しているしている上で、サーバは不可欠
● クライアントはサーバのことも任せていると思っている
● レンタルサーバでも放っておいてはいけない
● concrete5はバージョン8からシステム要件が上がる
● わからない・知らなかったでは済まないので、基本的なことだけでも知って
おくべき
● 困ったら、わかる人に聞く
ご清聴ありがとうございました

今さら聞けないWebサーバの基本知識と選び方