うちのブログメンバーは興味が無いしーのん♪を除いて皆自宅サーバを持っている。
特に筆者(ktm@s)とnk.とxx2zzは専用の鯖機をわざわざ組んでいる。
(なお全員過度のネタ不足によりリソース過多状態)
鯖機の構成と値段を書いただけの記事だけど、意外にも多様な検索ワードで人が来ていた。
いつの時代も興味がある人がいるんだな・・・という事で、自宅サーバーについて少し書く。
聞きたい事があったらコメントしてくれたら回答する。
注意:Windowsサーバーについてはこの記事では扱わない。
自宅サーバーのメリット・デメリット
用途を限定しない大まかなメリットとデメリット。
メリット
- 各種環境を自由に構築できる
- 他所ではやり辛い実験的な事ができる
- 仲間に一部貸してあげたり、必要な環境を作ってあげられる
- 少なからずサーバー・ネットワーク周りの知識・技術がつく
- たのしい!
デメリット
- まずサーバーマシンを用意する必要がある
- 電気代がかかる
- IPアドレスを固定するとお金がかかるが、DDNSを選択すると外部からアクセスできない時間が出来得る
- 停電の影響を受ける
- セキュリティ面をある程度考えないといけない
- ハードウェアの故障があれば対応に時間やお金がかかる(特にHDD)
- 外出先で何か問題が起きても帰るまで対応できない事がある
- 設置場所によっては稀に音が気になって眠れない場合がある
技術的なところの話
前項のメリット・デメリットを前提として色々かんがえる。
そもそも自宅サーバーって必要?
こんな記事書いてるけど自宅サーバーってそもそも必要なのか?
完ッ全に不要!
どうしても自宅サーバーが必要という状況はかなり限られる。ほぼ存在しないと思って良い。
まずウェブサーバーがほしい場合、無料でもPHPやMySQLが利用可能なサーバーがある。
日本のもので代表的なのはXREAとか。
仮にそういったサーバーではまかない切れないPVを捌くにしても、大体自宅サーバーの電気代って月に1000円くらいだから、中々いい有料レンタルサーバーと契約できることになる。
Linux環境丸ごと欲しい場合も、さくらやカゴヤのVPSが月額1000円かからない。
もっと用途がいっぱいあったり、ゲームのサーバーを立てたりだとかスペックが必要なケースで自宅サーバーは活躍する。
ただし、たいした用途がなくても興味があるなら自宅サーバー立てたらよい。
目的本位の人は自宅サーバーより良い解決方法が大体あるけど、興味本位の人はとりあえず立てる方向で考えよう。
どのくらいの知識・技術がいるか
知識や技術は後述するセキュリティ面以外で特に必要ない。
よほどマニアックなことをしなければ、ググればほぼ間違いなく答えがある。
特にウェブサーバー周りに関しては間違いない。
とにかく検索して試して、失敗しても投げ出さなければ大丈夫。
セキュリティ面
セキュリティ面は難しい。非常に難しい。
ただし、最低限のツボを抑えていれば大きな問題にはなり辛く、その最低限のツボをいかにして抑えるかが検索する力だと思う。
やることやってれば気を配る必要はあっても過剰に心配する必要は無いし、最低限の事って大体検索すれば出てくる。
小まめなアップデート、sshの公開鍵認証、iptablesやTCPWrapperの設定、パッケージ名+セキュリティで検索してみる(大事)など、基本的な事をしっかりやるのは絶対。
各種サーバ構築の難易度
よほど変わった事をやらなければ検索すれば出てくる。
検索して、とにかく試す。エラーが出たらエラーで検索する。
用途
仮想化
1台の鯖機に1つのOSを入れて使うのが古の自宅サーバーの常識だったけど、近年は安くでハイスペックなマシンが組めるので仮想化も現実的。
というか、よほど用途が絞られていない限り、スペックがそこそこであれば仮想化したほうがいいというレベル。
仮想化することによって、1台の物理マシンの中で、リソースが許す限りの仮想マシンを並列で動作させる事が出来る。
何でもかんでも1つのOSにぶち込むより断然良い。
ありがちな使い道
- ウェブサーバー
- ファイルサーバー
- メールサーバー
- メインPCやスマホのファイルをバックアップ
などなど。
人によってはエンコードさせたりゲームのサーバーたてたり。
筆者の使い道
画像や音楽データなどを入れたファイルサーバー、ウェブサーバ、身内用チャットなどが主な用途。
身内用チャットはどこかのサービスを使うとログが残ってしまうので大変便利。
ファイルサーバーに入ってるデータは家のPC、スマホ、タブレットなどで快適に閲覧できる。
ウェブサーバーでは複数のウェブサイトを公開している。
あとはメールサーバー!
全てのメールが1つのメールアドレスに転送されるように構築しているので、メインのメールアドレスを使いたくないときに大活躍している。
サービス名@example.comみたいに毎回適当なアドレスにしても全部1つのアドレスで管理できる。これはでかい。
必要なスペック・予算
自宅サーバーに必要なスペックだけど、ウェブサーバーであればあまってるPCがあればそれでよいと思う。モニターはいらない。
HDDが年季入ってるなら交換してバックアップだけはちゃんと取るようにしたら良い。
ただしノートPCの24時間稼動は出火事例が多数あるのでやめよう!
予算は使いまわすなら0円か何か取り替えても1万円以内だし、あとは壊れたら壊れた部分をその都度直す感じで良い。
仮想化しないウェブサーバーなら中古で1万円くらいのPCでも十分な戦力になるよ。
専用で組むならnk.と筆者の構成が以下の記事にある。
5万くらいの予算でも、よっぽどな使い方しないとリソース半分以上あまる!
筆者の鯖(下の記事のほう)はメモリ使用がまだ半分でCPUに至ってはほとんどの時間10%も使用していない。
かなり安定してるから誰か借りて欲しいくらいのあまり具合になってる。
あ、でもMinecraftのサーバーをxx2zzの自鯖に立ててた時はなかなかリソース食うとか言ってたな。
パーツごとの話
この項目は2017年06月08日に追記しました
CPU
もちろん用途によるが、ウェブサーバーやたまに受信する程度のメールサーバーのみの稼動であれば、Core2Duoマシンでもおつりが来るくらいだった。
仮想化したいなら4Core以上をお勧めするが、型落ちの中古Intel製CPUや安価なAMDの品で構わない。
基本的に、エンコードなどをゴリゴリやらない限りは最も思っていたより余る部分といえる。
すでに手持ちがあるならまずそれで動かしてみたらどうか。
マザーボード
基本的にCPUを決めた後考えるのでこれとは言えない。
メモリやSATAなど、拡張性は意識する。
メモリ
ウェブサーバーにするだけなら2GBもあればいい。
色々ごちゃごちゃ入れるにしても4GBあればいいだろう。
一方仮想化してゲストOSを複数入れるような場合は16GB以上を推奨する。
4GBだとメモリ1GB割り当てたゲストOSを3つが限界(ホストOSもメモリを食うため)なので最低でも8GBは欲しい。
簡単に拡張できる部分でもあるから、用途が絞られていないならとりあえず少なく買っておくのもアリ。
多めに買うなら多すぎたときにメインPCにまわせるものを買うとなお良し。
手持ちのものを使うときはMemtest86+とかでエラーが無いかチェックしておく。
HDD
HDDが死んでデータが取り出せなくなるなどあってはならない。重要部分。
普通は同容量のHDDを2つ買ってミラーリングする。
RAIDカードにかなりお金をかけるならともかく、安いRAIDカードでは結局ソフトウェアRAIDになってしまう。
最低限のバックアップを取りたいだけであれば、メインHDDと32GBとか64GBとかの大容量USBメモリなんかでも十分。
ただし仮想化するとなるとRAIDを組むかそれなりの容量のHDDにゲストOS丸ごとバックアップとって行くことになる。
データとんだら終わるので可能なら2つあったほうがいいのは間違いない。
できるだけ新品を用意するのが望ましい。
グラボ
基本的に必要ない。
電源
もちろん構成にもよるけど、グラボ乗せないなら300Wとかでも十分そう。
ケース・ファン
ケースやファンは設置場所から考えないといけない。
設置場所にゆとりがあって音が出ても構わないなら、なるべく広くてキッチリ空気が循環する構成にする。
スペースがとれないならMicroATXのマザーボードでケースもそれに合わせる。
自室において音が気になるタイプなら静音性を重視したほうがいい。
(個人的にはすぐになれると思うけど)
その他機器
この項目は2017年06月08日に追記しました
ルーター
業務用は高いしオーバースペックなので今使っているものを使えば良い。
UPS
停電、瞬間停電でサーバーが傷むのを防ぐ。
あとがき
すげー眠いので後で加筆すると思う。
(2017年06月08日 ちょっと加筆した)
とりあえず立てたいやつは立てなよって事が言いたかった。
でも目的ありきの人は自分で立てなくても多分他の解決方法があるよ。
興味がある人はとりあえずやってみな。不安があるなら聞きな。
書いてない事でも何か質問があったらコメントか何らかの手段でktm@sにどーぞ。返します。
コメント
こんにちは。
サーバー自作を調べてます。
いまそれに関する書籍を探しているの
ですが、ご存知であれば教えてください。
作るのは個人サーバーですが、
業務レベルでの運用の勉強も視野に入れて
います。
また、
オンラインゲーム
ブラウザによる通信販売
この2つをサーバー構築した場合、
両者を比較してどのような違いが出る
でしょうか。
上の例は単純に、低負荷高負荷の比較としての私の漠然としたイメージと、ゲームサーバーに興味があるからで挙げさせていただきました。
よろしくお願いします。
こんにちは。
興味がある段階で具体的な知識はないという前提でお答えします。
■書籍に関して
お勧めできる書籍はありません。
私にとって書籍は右も左もわからない状態で何をしたらいいかの道しるべでしかなく、最終的にほぼ全てをテキトーに検索して解決するようになりました。
ですから私がサーバーに関する書籍で購入したものは「実践DebianGNU/Linuxサーバ ルート養成講座」これのみです。
ゼロからのスタートだったので一番最初はこの本の通りに構築しました。情報が古くてもうお勧めできませんがいい本です。
まずは評価の高い初心者向けのサーバー構築本を探してトライするのがベターです。
私はAmazonをぐるぐるして目次とレビューを読み漁りました。
(Debianと決めてたので絶対数が少なくてすぐ決まりましたが)
■業務レベルでの運用の勉強について
自宅サーバーがあってつつき回していることは確実にプラスに働くと思いますが、一般的な自宅サーバーの運用が直接サーバー構築・運用の実務的スキルに結びつくとは考えづらいです。
もちろん具体例があってその環境を作って勉強するなら別ですし、そうでなくてもテクニックや知識の備蓄はできます。
個人的にはAWS関連の書籍を片手にAWSをいじり倒してみるほうがスキルとしては喜ばれるのでは?と思います。
■オンラインゲームと通信販売の比較
どちらも規模やアクセス数によるのでお答えするのが難しいです。
ゲームサーバーはゲームサーバーによるとしか答えようがないのですが、ブラウザによる通信販売サイトよりほぼ間違いなく高くなると思います。
通信販売サイトは結局アクセス数につきるので難しいですが、php5.6よりphp7のほうが軽かったり、Apache2よりnginxのほうが軽かったりなどが構成によってあります。
あまり答えになってない気がするのでうちの自宅サーバーにあるTerrariaサーバー(ゲームサーバー)とNginx(リバースプロキシ)及びApache2(ウェブサーバー)の負荷を参考までに貼っておきます。
アクセスはほぼないので起動しているだけの負荷の比較と思ってください(OSの負荷も含まれています)。
Terraria(CPU1コア2ソケット メモリ2GB割り当て)
Nginx(CPU1コア1ソケット メモリ1GB割り当て)
Apache2(CPU1ソケット2コア メモリ4GB割り当て)
補足
その他判らないことがあればまた聞いてください。
面白かったです。
クラウド全盛のいまだからこそ、自宅にサーバを持つロマンを感じますね。
今では録画サーバくらいしか自宅サーバである必然性がないですから。
昔は仮想化といえばesxiでしたが、最近はxenも流行ってるんですね。
私が自宅サーバをはじめて作ったのは、未経験新卒でIT業界に飛び込んだ春でした。
ネットで勉強していた折り、自宅サーバを仮想化していた人がいて、それならばと自分も真似てみたのです。
右も左もわからない頃でしたので、構築には苦労しましたが、その経験も含めてたいへん役に立ちました。
こういった記事をみると、あの頃を思い出して感慨深いですね。
かつてのような、自分サーバに関するコンテンツの隆盛を再びみたいものです。
自宅サーバーはとても面白いのでもっと構築する人が増えて欲しいです。
興味がある人はそれなりに居ると思うのですが、じゃあはじめてみよう!って人は今となっては滅多に居ません。
もっとも、IT業界とは無縁で特にプログラミングなどの技術もない自分のように、興味を持っても技術的に難しい(難しそう)というのはありますよね。
聞いてくれたら一緒に悩むんですけど(答えがわかる訳ではない)、そういう相手の存在も重要かもしれません。
このサイトも自宅サーバーで運用されてますか?
このサイトはKAGOYA VPSで運用されています。
もしこのサイトが自宅サーバー運用の場合、最低でもこれと同等かこれ以上のパフォーマンスを出せると思います。
しかし停電や固定IPサービスを契約していない場合のIPアドレス変更など、自宅サーバー特有の問題があり、安定感が低下する可能性があります。
この程度のサイトであれば自宅サーバーでもほぼ問題なく運用できると思います。
マンションでの自宅serverは大丈夫ですか?
大丈夫です。私はマンションです。
PentiumMのノートパソコンを鯖(FreeBSD4 – 11)にして10年以上になるのですが、
掃除をしつつ、小型のサーキュレーターで風を当て続けて使ってます。
これまで故障したのは、HDDのみで、定期的にバックアップを取っていますが、
ノートパソコンを鯖にするのは良くないですかね…。
バッテリーや、DVDドライブを外して、最小限の構造にして、半開き状態で、風を当てています。
CPUも古いので、新しく中古でそこそこのノートパソコン探そうかと思っていますが、ラズベリーパイのような小型で、安く、低消費電力で、初代core i3ぐらいの性能でいいので、サーバに適した物をご存知でしたら、ご教授いただけたらありがたいです。
用途は、WEBをローカル内で立ち上げて、実験的なコードを動かしたりすることがメインなので、サーバとはいえないかもしれません。
やや負荷のかかるコードを実行し続けることもあります。
ノートPCも悪くないと思います。余っているなら特に。
24時間稼働させますから出火事例や拡張性などを考えた時に選べるならお勧めしないというだけですね。
サーバーに適した中古ノートPCはわからないです。