タグ「自宅サーバ」が付けられているもの

この日記も運用している我が家の自宅サーバ環境にアプリケーションサーバを追加投入しました。 といっても3ヶ月ほど前のことになります。こうしたサーバ運用は全て独学でやっているため、突っ込みどころ満載かもしれませんが、経緯と何をしたかというのを紹介したいと思います。

うちの自宅サーバ環境で提供しているサービスは、ほとんどWebで、これまでは一台のサーバでアクセスをさばいていたという背景がありました。 かれこれ、5年以上前からこのサーバ環境を運用しているのですが、その当時では静的なページと若干のCGIを動かす、しかもアクセスが少ないという状況だったので通常の apache + cgi ベースで運用をしていました。 ところが、ここ1年半ほど前から、Catalyst で作ったアプリケーションを apache + mod_perl で動かすということが必要になってきました。そこで Apache + mod_perl のプロセスによるメモリの所有を減らすため、一台のマシン上に静的ファイル( + 簡単なCGI ) を動かす apache、mod_perl を動かす apache と2つのWebサーバーを立ち上げることにしました。当面はこの方法でよかったのですが、ここ最近のアクセス増大に伴い、mod_perl を載せた apache の子プロセスがメモリを占有する事態が多々起こるようになってしまったのです。Load Avg も高い状態でした。今思うと、俺の設定ミスやプログラム効率の悪さにかなり起因していると思うのですが、何よりサーバがスワップも食いつぶして落ちてしまう状況だったので、対策を立てなくてはいけません。そこで、apache + mod_perl 専用のアプリケーションサーバを導入するという段になったわけです。当然のごとく今までのメインサーバにおける mod_perl の処理を物理的に別のマシンで処理できるので、負荷が軽減されます。メタな解釈からすればスケールアウトと言えるのでしょうかね。

負荷が高い時
loadavg

自宅でサーバを運用する場合、いかに電気代を節約しつつ、つまり少ない台数でパフォーマンスを高くするか、そしていかにそれを安く作れるかが肝になってきます。そこで、新アプリケーションサーバはパーツを個別に買って自作で作ることにしました。Dell や HP のサーバも改めて見てみるとコストパフォーマンスがよいのと、すでに構成されているという点で惹かれますが、今回は自分で作ろうと思いました。なんといってもクワッドコアを搭載しているIntelのCPU「Q6600」が3万強で購入できたことが決め手です。上記した通り、サーバは常時稼動させるためにランニングコストがかかるので、なるべくスペックの高いCPUを搭載できるのであれば、それに越したことはないわけです。メモリは 64bit OS を動かさないとしているので、フルフルには使えないのですが、4G 搭載しました。それでも1万円強です。マザーボードは、はてなが「Q6600」を載せているものの色が赤いということ知って、あえてMicro/ATXの赤いマザボを選びました。

kamawada(うちのネットワークの名称)の赤は4倍速い!
server

最終的に見積もりを出した構成は以下のようになります。価格.com のその当時での最安値で計算すると「\76,247」です。購入は、faith というお店から全て通販で買ったのですが、ちょっと安めのHDDを選択するなどしたら見積もりの価格と同じくらいになりました。

インストール時、マザーボードのチップが新しすぎるだめ、OSのインストールの際にうまくCDドライブを認識しないという罠がありましたりしましたが、あとは無難にセットアップ完了。top コマンドとかでみるとちゃんと CPU が4つ認識されててテンションあがります。

Quad

次に、新アプリケーションで実際に今まで動かしていた Catalyst アプリが動作するかどうかをチェックして(これがまぁ意外と時間かかったわけですが)、本番投入。今ではだいぶ安定していて、static サーバー及び、アプリケーションサーバ、どちらとも Load Avg が低くなりました。

完成したサーバ
server

これらアプリケーションは自分ひとりで立ち上げたサービスなので、それにおいて負荷の対策をしなくてはいけないという状況は嬉しい悲鳴であり、比較的安価で高性能なマシンを投入することで解決できることも楽しい経験です。もちろん、その負荷は、俺の設定ミスやプログラムの効率の悪さや呼び出しの仕方に起因している面もあると思うので、単純にマシンを投入することじゃなくてチューニングのことも考慮したいとも思っています。とはいえ、サーバというのは、謎にものすごく惹かれる対象です。今サンタさんにプレゼントを頼めるとしたら「サーバください」と言うでしょう。これからも多くの人に利用してもらえる新しいサービスを出して、アクセス過多でサーバさんに喘ぎ声悲鳴をあげさせたいと考えている今日この頃です。

インテル Core 2 Quad Q6600 2.40GHz BOX BX80562Q6600
posted with yusukebe.com::AmazonSearch on 2008.3.30
  • エレクトロニクス / インテル
  • Amazon 売り上げランキング: 10091
  • Amazon おすすめ度の平均: 5.0
    • 5 コストパフォーマンスが高いと思います
    • 5 なかなか爆速です。
Amazon.co.jpで詳細を見る

契約していた ISP(プロバイダ)から帯域規制をかけられたので、 法人向けの ISP への移行作業を進めている今日この頃です。 ところが、申し込みの書類を送付したのが6日、開通するのが10営業日を目安にということで、 遅くて2月の20日くらいまで待たなくてはいけません。 それまで、中のネットワークから Web 等の外のネットワークはサクサクとつながるけれど、 主に Web など自宅サーバで展開しているサービスがユーザーからはかなりつながりにくくなっている状態です。 情報の表現、サービス提供を生きがいとしている自分にとってはこれは窒息しそうなほど息苦しいもののようで、すごく心理的にも「嫌」なことであります。

せめて、20日の開通までその場しのぎでいいので、今すぐWeb等を外から快適に見れるようにできないかと、 思っていたところ、当日記に表示された Google AdSense の広告に俺の欲求を叶えてくれる言葉が書かれていました。

即日固定IPアドレス発行

うはっ、とクリックしてみると、以下のページにたどり着きました。

どうやら固定IPアドレスを即日発行してくれる ISP のようです。 これならその場しのぎができるんじゃね?と思い電話をかけてみました。 するとネットで申し込みをしてから数時間で設定をし、固定IPアドレス、PPPoE のアカウント情報などをメールしてくれてすぐに使えるようになるとのこと。 さらに1ヶ月だけの契約もありのようです。ちなみに Bフレッツ、IP 1個なので2,100円のコースです。

さっそく Web からクレジットで申し込み、その日のうちに設定情報等が送られてきました。 IP が来たのでネットワークを移行します。今までの ISP と 今回の 21ip とを PPPoE のマルチセッションで同時につなぐことも考えましたが、サーバーのサブネットとクライアントのサブネットをわけたくなかったのと、面倒なのもあり、21ip へまるごと移行させます。 すると、簡単に PPPoE がつながりました。固定 IP も来ているようです。 お次はドメインの IP アドレスの書き換えです。外部 DNS サービスを使っているのですが、 管理しているドメインが 30個くらいあってこれが結構大変でした。 とはいえ DNS の更新をしばらく待つとうまいこと外からも見れる状態になった模様です。

この作業を行ったのがおととい8日(金)の未明でした。 試しに YourAVHost の Google Analytics のレポートを見てみると、見事に 2月3日 からトラフィックが急激に下がり、昨日9日から復活していることがわかります。

Google Analytics

こういう様子を見て、ようやく新鮮な空気が吸えるって感覚を味わっています。

ところで、 ISP からの帯域規制について俺がわかる範囲で説明しておきます。 まず、規制をかけられた ISP はどこか?ということですが、「ASAHI-NET」というプロバイダです。 固定 IP が無料で提供され、契約料が激安なのでそこにしてました。 こうした家庭用の ISP は近頃の P2P ソフトの使用による回線の圧迫に伴い、過剰なトラフィックがあるクライアントに対し、帯域規制をかける場合があります。 どうも、うちでやっている主に Web のサービスがその規制対象の転送量を超えたため目をつけられたようです。 では、どのくらいの転送量があったかと言うと、 これはあくまで目安ですが、Apache の1月の転送量がトータルで約 500GB ありました。 Webalizer という解析ソフトで計った結果で、そもそも信頼性がそこまであるわけではないのですが、 参考としてだいたい 500GB/1month以上 ということです。 この量、果たして多いか少ないかはわかりませんが、十分規制の対象になりうる量でして、 計算してみて俺もびっくりしてます。 ようはそろそろ、回線もルータもしかり、家庭用ではまかなえなくなってきたというわけで、 法人向けのプロバイダ、中小企業向けルータへの移行を決めたのです。

このように、応急処置的に即日固定IP発行の ISP と契約することにより、 うちでホスティングしているサービスは快調に見られるようになりました。 ただ、まだネットワーク絡みの移行作業は続いており、

  • 法人用回線が開通したらそちらへの移行
  • 新ルータへの移行

という作業を今後行っていくため、またネットワークが不調な場合が発生するかもしれませんが、ご了承を。 上記2つのことに加え、2月の頭に導入した新アプリケーションサーバについて、今後も「自宅サーバ管理者の憂鬱」シリーズの記事にするのでお楽しみに。 ってか「自宅サーバ」の域を超えつつある?

1

プロフィール

yusukebe

ゆーすけべー / yusukebe
Yusuke Wada
1981/12/23 生
天然パーマ Erogeek
HP Twitter mixi はてブ
yusuke (at) kamawada.com
more...

最近10件のアクション

最近のブログ記事

  • PerlでWeb API入門/Web APIでPerl入門 - PerlCasual#3より

    先日7月23日(金)に株式会社ネイバーさんのご協力で行われたYokohama.pm#6 x PerlCasual#3。 イベント自体のまとめはアンケートの様子をみて後ほどさせていただくとして、 僕が発表を担当したPerlCasualセッションのことを少々。 PerlCasualのセッションは僕の割と独断で「どういう内容/スタイルが誰に求められているのか」を毎回試行錯誤で 探っている状況です。 この度は自分の原点に戻る感じでテーマを「Web API」としました。 というのも僕の最初のCPANモジュールはまさしく「WebService::Simple」ですし、 このPerl/Webの世界に入ってきたのも様々なWeb APIがキッカケだったからです。 また、対象のスキルレベルをかなり低いものと設定してみました。 何か新しいことを試す時には「極端なこと」をしてみて様子を探るっていうのは実は有効な手段だからです (これは学生時代にPHSを作ったとも言われる「小檜山賢二」教授に教えてもらったことです)。 で、そういうたくらみがあって、 sugyanによる「全裸ボットの作り方」というライブコーディングを中心に構成を組みました。 前半20分僕の「PerlでWeb API入門/Web APIでPerl入門」という発表、 後半30分はsugyanのライブコーディングです。 ライブコーディングの方、 結構無茶ぶり気味だったにもかかわらずsugyanはキョドリつつも引き受けてくれて、 直前の週のskype打ち合わせでガーっと内容固めていく感じでした。...

  • 今日(7/23金)はYokohama.pm#6 x PerlCasual#3だよ!/アンケート/スタッフ若干募集

    今日、23日(金曜日)はいよいよPerlのイベント「Yokohama.pm#6 x PerlCasual#3」です! 最終確認のエントリーを書きます。 ATNDで参加希望を出した方は必ず以下を確認してください。 Yokohama.pm#6 x PerlCasual#3 : ATND 必ずATNDで自分が出席可能かどうかを確認してください どうしても行けないという方は必ずATNDでキャンセルをお願いします イベントは18時開場です! 今後の活動の参考にするためWebアンケートを用意しました。「イベント終了後に記入」ということなんで、 まだ記入しちゃだめだよ!って感じですが、URLは以下ですので、是非「イベント終了後に」ご回答ください! http://bit.ly/perlcasual03 また、イベント中に若干のお手伝いをしていただくスタッフを募集しています。 15分ほど一部セッションみれなくなっちゃうかもしれませんが>< 人員が足りないので、もしご協力してくれる方がいたら18時開場時点で僕かclouderさんに声をかけてください。 もしくは事前に @yusukebe へ向ってつぶやいてもらえると助かります! さて、PerlCasualのセッション「初心者向け勉強会 テーマ:...

  • 明日(7/23金)はYokohama.pm#6 x PerlCasual#3だよ!

    明日、23日(金曜日)は100人規模の(ビッグ)イベント「Yokohama.pm#6 x PerlCasual#3」です! 待ちに待ったというよりか「え!もう?明日なの?」って感じかもしれないので、 参加予定者の方は以下ご確認お願いします。 Yokohama.pm#6 x PerlCasual#3 : ATND 必ずATNDで自分が出席可能かどうかを確認してください どうしても行けないという方は必ずATNDでキャンセルをお願いします スタートの時間は18:25分ですが、開場は18時からなので来れる方はその時間を狙って来てください 懇親会の会場として五反田の居酒屋を予約しました、会場から徒歩10分ほどらしいです 参加していただいた方にはもれなくWeb上でのアンケートに答えてもらおうと思います。 URLは後ほどお伝えいたしますのでよろしくお願いします Ustream中継あります。URLは http://www.ustream.tv/channel/yokohama-pm、ハッシュタグは #yokohamapm の予定です 以下、ほぼfixのプログラムになります! 日時: 2010/7/23(金) 18:25...

  • 本日(21日) twittie(携帯Twitterアプリ)のイベントに出ます

    twittieというすごい使いやすい携帯用Twitterクライアントアプリの人達が企画するイベントが明日開催されます。 そこで、Twitterサービス開発者ということで招かれて参加することになりました。 Twibの発表してきます。 普通のお方の現地参加は無理ぽいのですが、Ustream配信をするようなんで、 よかったら見てください!他の某有名Twitterサービスの開発者の方もたくさん来るみたいです。 イベントは19時から開始です! Ustream URL:http://ustre.am/kVRk ハッシュタグ: #twittie0721 twittie...

  • コードとかをブログで晒す意味 - dankogaiと私

    Perlやり始めて4年くらい経つんでもう初心者ってほどではないという立場から言ってみます。 「コードとかプログラミングに関することをブログに晒すってすごくいい」と思います。 最近Twitterがあるもんで、情報の発信の力をそちらに取られている感があって若干悲しいので、 もっとブログ使った方がいいと考えるのです。 で、コードを晒したりすると何が嬉しいって、とにかく自分が成長できます。 そしてお友達が増えます。ただそれだけだけどすっごく重要。 俺はそれで成長できたし、あの!dankogaiさんとお友達?になって雑誌での対談まではたしちゃいました。 というエピソードを例に挙げるんで参考にしてくださいね。 # まぁ、dankogaiさんと言ってもただのエロ親父なんですけどね^^; 本人には内緒だよ! 2007/8/3 ニコニコ動画をダウンロードするPerlスクリプトのコードをブログに書く Perl、割とかじり始めの俺がニコニコ動画のflvをダウンロードしちゃうイケナイスクリプトをブログに晒す。 正直今見るとひどいコードだ。 Perlでニコニコ動画のflvとコメントxmlをダウンロードする (Yusukebe::Tech) 2007/8/4 dankogaiさんに添削される、コード量半分くらいになる ニコ厨のdankogaiさんが即座に反応。 「勝手に添削」シリーズとして添削され、コード量が半分くらいになったし、少なくなっただけじゃなく スマート!ぶっちゃけると一瞬、怒られた感じがして腹が立ったが、ちょっとするとすげー!こんな風に書けるんだ!すげー!ってなり感動する。 404 Blog...

閉じる