Web開発の3要素 > Webサーバー
Webサーバーの設計、構築、運用、保守の知識まとめ
開発サーバー †
ローカルPC上に、開発用のテスト環境を構築する方法を検討してみましょう。
- Docker
- VirtualBox
- さくらのVPS → LAMP環境の設定方法を参照する。
本番サーバー †
- さくらのVPS → LAMP環境の設定方法を参照する。
Webサーバーの技術要素 †
- SSL/TLS
- OpenSSL
- キャッシュサーバー
- Vanish cache server
サーバーの設置形態 †
- オンプレミス = 自社サーバー、自宅サーバー
- レンタル = 借り物のサーバー
root(管理者)権限の有無で、サーバーの設定を変更できるかどうかが決まる。- root権限あり → サーバーの設定は、自由に変更できる。
- root権限なし → サーバーの設定は、自由に変更できない。
レンタルサーバーの分類 †
分類 | 特徴 |
共用サーバー | Root権限なし。1台のハードを複数のユーザーで共有する。 |
専用サーバー | Root権限あり。1台のハードを占有できる。 |
VPS | Root権限あり。1台のハードを複数のユーザーで共有する。 |
クラウド | Root権限あり。複数のハードを占有できる。仮想化の方法によっては占有してないかも? |
予算に応じて使い分ける。
- 予算低額 → VPSがお勧め。サーバー管理ができないなら共用にしておく。
- 予算高額 → 規模を拡張させやすいから、クラウドがお勧め。専用サーバーでも自前で仮想化させれば規模の拡張は容易になる?
レンタルサービス †
サービス | 概要 |
XREA | 共用レンタルサーバー。 安い。 |
さくらのVPS | Virtual Private Server。 管理者権限があるので、自由に設定できる。 |
VPC | Virtual Private Cloud。 Amazonのクラウドサービスが便利? |
CloudCore VPS | KDDIのVirtual Private Server。 月額945円でストレージ100GBと安い! |
VPSとは? †
- バーチャル・プライベート・サーバ - Wikipedia
バーチャル・プライベート・サーバ (Virtual private server, VPS) とは、一台のサーバ上で仮想サーバを何台も起動する特殊なソフトウェア、またそのような仮想サーバを提供するレンタルサーバのサービスをいう。
VPSの情報源 †
はてなブックマークのVPSタグに、参考情報が集積されています。
はてなブックマーク > タグ > vps
VPSの選び方 †
VPSを起動させるOSとしては Linux が多用されており、XenもしくはKVMを使ったものが主流となっている。その他にもOpenVZベースのSWsoft社のVirtuozzoが使われている。
仮想化の方式に、
- KVM
- Xen
- OpenVZ
等があります。
メモリ管理の仕組みの違いによって、OpenVZは性能が低下する場合があるので、KVMやXenのVPSを選ぶと良いです。
OpenVZを知らなかった私はこの後酷い目にあった。
使い始めて一、二週間経ったある日。Site24X7から鯖落ちのメールが届いた。sshは接続できる、apacheが落ちているらしい。
しかし、apacheをrestartしても何故か立ち上がらずプロセスが消える。rebootすると立ち上がったのだが。
それからも頻繁にapacheが落ちた。必要最低限の状態で稼動させていたのに何故だろうか。
ログファイルを見るとCannot allocate memoryが山のように吐き出されていた・・・(´・ω・`)ショボーン
Google先生に”DTI VPS 不安定”と尋ねるとOpenVZというOSレベルでの仮想化ソフトが使われていることを初めて知った。それの存在も初耳であった。
色々と調べるうちに次のようなことが判明。
● OpenVZのコンテナ内からはSWAP使用不可
● 最大保証メモリーを超えると確保できない場合がある。(3GBとは一体なんだったのか?)
● 全体のメモリーが不足するとコンテナ内のプロセスを強制終了する。(安定動作?何それ美味しいの?)
● オーバーヘッドがハイパーバイザー型よりも少ない。(これは(*´・ω・) ステキ)
つまり、apacheがCannot allocate memoryを吐いていたり、滅多に落ちることが無かった超安定プログラムが強制終了させられていたのはメモリーの不足だったと。
とまぁ、色々とあったわけだが結局DTIの方は無料で使用できる二ヶ月以内で解約してしまった。