自宅ラックを始めてみました。
はじめに
はじめまして。北海道大学の小林巧です。
普段は@chamaharunというアカウントでくだらないことをつぶやいたり、
石狩市にあるデータセンターでサーバー構築のアルバイトをしたりしています。
ICTトラコン、「名前だけは知っている」程度だったのですが、
昨年さくらインターネット新卒の凄腕エンジニア川畑さんよりお声がけいただきまして、
右も左も分からぬまま学生運営スタッフにjoinしました。
僕も問題作成をさせていただいているので、解いていただけると嬉しいです。
自宅ラックとは
「自宅ラックとは、ロマンである。」
とありますが、自宅にデータセンター向け規格の19インチのラックを設置して趣味その他に使用することを言うようです。
自宅ラックとの出会い
自己紹介にも書いたように、データセンターでのアルバイトをしているのですが、
仕事に慣れてくるにつれて、業務で行っているBIOSの設定などの作業だけでなく、
ハードウェア交換といった保守作業やWebやDNSなどのサーバ構築作業を行ってみたくなったのと、
自宅にあったMicroServerで出来ることにスペック的にも拡張性的にも限界を感じていたところに、
昨年11月、幸いにも引越しが決まり、新居にて自宅ラックを始めたのでした。
ラックが自宅に届いた時の感動を振り返ってみようと思います。
19インチの静音ラックをヤフオクで入手。
ラック内に機器の設置と配線を済ませ、電源を入れてみる。。。
「ファーーーーー」
って音、まるで自宅がDCになったかのようです。。。
さて、ラックの防音効果は如何ほどか、
サイドの蓋を閉め、前面のドアを閉めます。
「ゴオオオオオオオオオ」
全然静音じゃない。まるで轟音ラック。
これからは毎日これと共に寝るのか。
自宅ラック生活がスタートしました。
こばやしの自宅ラック
こんな感じです。
- DELL R415 8コア 8G
- FUJITSU RX200S5 8コア 32GB
- HP MicroServer N54L 2コア 16GB
- HP MicroServer N54L 2コア 8GB
- DELL PoerConnect 5224
- HP MicroServer N54L 2コア 8GB
いずれも新品で揃えると150万円前後かかると思いますが、一学生に出せるような金額ではないので、
型落ちで安くなった新品を購入したり、ヤフオクや秋葉原で中古品を手にいいれることで、
10万円前後の支出に抑えました。
XenServerとHyper-Vによる仮想マシンが30-40台程度常時起動していて、
そのほとんどがWebサーバで、Webサービスを開発したり、友人に貸したりしています。
工夫していること・苦労していること
ドメインとIPアドレス
複数のWebサーバに外部からアクセスするにあたって、1つ問題があります。
VPSなどのインフラサービスと違って、一つのIPアドレス共有しなければならないので、
HTTPのリクエストも、SSHも直接IPアドレスに対して繋ぎに行くわけには行きません。
そこで、HTTPとSSHにそれぞれ、代理サーバを用意しています。
ルータから特定のポートに来た通信をそれぞれに転送するよう設定します。
nginxでは以下のような設定ファイルを書くことで簡単にリバースプロキシを構築することができます。
server {
listen 80;
server_name hime.charakoba.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;
location / {
proxy_pass http://192.168.11.125;
}
}
特に、HTTPのリバースプロキシは設定ファイルの書き換え/再読み込みを頻繁に行うので、
図のように、ロードバランサを置いて片方のリバースプロキシがダウンしていても正常にリクエストに答えられうようにしています。
SSHの踏み台サーバは、よりセキュリティを意識して構築しています。
rootでのログイン禁止はもちろん、
全ユーザーに対して公開鍵認証を要求しパスワード認証を禁止します。
こばやし家内のサーバにアクセスする場合は、
踏み台サーバに対して一度SSHログインしたのち、対象のサーバにSSHでログインします。
一般の家庭であるこばやし家には動的IPアドレスが一つ割り当てられています。
変動するIPアドレスにドメインを割り当てる方法として、IPアドレスが変更される度にDNSサーバに通知し更新してもらう、
DDNS(DynamicDNS)というものがありますが、DDNSで設定できるドメインってあまりカッコいいイメージが無かったので、
何か良い方法はないかと調べていたところ、
お名前.comで取得したドメインはDDNSで使えそうということがわかり、
WindowsServerでクライアントを設定し運用しています。
最後に・こばやしのやぼう
他にも、新規仮想マシンを作成した際にあらゆる設定を自動化するような実験などを行っています。
今後は騒音と電気代の面から自宅ラックを実家に移設し、
VPNを張って遠隔で管理したりしていこうかと考えています。
まだまだこばやし家は発展途中ですがこういった工夫をすることで、
IT企業が普通に行っていることを高価な機器を使わずに実現できたらなぁと考えています。