1.023world - ヤドカリパークとマリンアクアリウム -

海洋の仕組みと細菌・微生物から学ぶマリンアクアリウムサイト

1.023world Facebook

結果 Oh! Life (旧ブログ)

懲りずに書いてみたりする結果オーライな日記

プチ動画共有サイト構築を夢見たら、

やぁ、大はまりったら♪
でも良い感じで進んでます。ほとんど完成かも?
需要?
え?ないの?(汗)

ま、せっかくサーバーを新調したので、使わなきゃ勿体ない、と言う目論見です。動画でも入れなきゃ、とても埋め尽くせないスペースがありますもので(汗)

と言うわけで、まりんちゅの僕のレビューゆーいちさんのレビューにテスト動画がありますので、良かったら参考にご覧下さい。
大概の形式の動画に対応できそうです。一部ダメかもですが。
1ファイルあたり最大で20MBまでアップ可能。とりあえず。

ついでに皆さんの利用可能スペースもどーんと増やしておいたので、遠慮無くお使い下さい。とは言え、そこそこのレベルに達してないと、スペース狭いかな?
例えば僕の場合で、今レベルが100ほどなので、この場合約100MBほどの利用スペースが与えられています。なので、2~3MBの動画ならたくさん、10MBとしても10個は入ります。

水槽の動画とか、その他ペット、何気ない風景など・・・ま、それは月並みな用途。もちろん大歓迎です♪
それ以外で、ふと思いついたのが、お気に入りの動画を携帯で見られるようにしたいとか、そゆのは需要あるのかしらなんて?
公開はしないけど、単に携帯に取り込みたいだけ、みたいな。

と言うわけで、実は既に携帯にも対応すべく取りかかっています。
公開しなくても、管制塔からこっそり携帯へ取り込めるようにします♪

但しパケット代がエライ事になるので、絶対にパケホーダイじゃない人は使っちゃいかんです。死にます(汗)
ま、そのための目安のパケ代も表示するようにしておきますけど。
ちなみに、実際にギリギリ20MBの動画を上げた場合、携帯向けには約2MBほどにリサイズされますが、それでもパケ代はなんと4,000円近くに・・・(汗)
こんなん、ひとつ見ただけで上限額逝っちゃうわ。。。

て言うか、なんか変じゃない? このパケ代って。。。たかだか2MBの通信費が4,000円て。。。それだけの負荷をインフラに与えているとでも言うのだろうか。。。どうして誰も騒がないのでしょ? 国家的な詐欺?(苦笑)

おっと、話が反れましたが、実はまだ携帯での実機テストは僕のドコモ P-03B でしか出来てません。au さんや softbank さんも心配です。もし良かったら・・・どなたか・・・パケホーダイの人で・・・試してみて頂ける奇特な方は・・・?
我こそはと思う方は、とりあえず僕のこの猫のレビューには携帯向け動画も入れてありますので、携帯からお試し下さい(パソコンからはパソコン向けの動画しか見れません)。但し、くれぐれもパケホーダイの方のみでお願いしますね。この猫さんの動画だけでも500円ほどになるそうですから(汗)

で、見れても見れなくても、キャリア名と機種名を教えて頂けたら幸いです。
ご報告、お待ちしております。

また、もう少しテストしたら、とりあえず一般公開したいと思いますです。
但し、サーバーの負荷を見つつ、いろいろと変更は出てくるかもです。

こちらのエントリーもどうぞ♪

サーバー負荷・トラフィックをとことん軽減する

LEDネタ、いつ書くんだろう。。。(汗)

ただいま仕事そっちのけでサーバーいじってます(汗)
だって試用期限が決まってるし、サーバー費用は生活にも支障をきたしますから(曝)

ちなみに当サイトは、ちょうど2年前から専用サーバーで運用しています。ひぃぃぃ。
で、契約当初は一番安いプランでしたが、その後すぐにアップアップで2番目のプランへ移行(笑)、そして今回ついに最上位プランの扉を叩きました。開けたくないけど(汗)

さて、今回はサーバーの負荷やトラフィック軽減のため、以下の3項目について徹底的に対策をおこないました。

  1. プレーンなテキストファイルを gzip 圧縮でレスポンス
  2. ファイルへ有効期限を付加し、キャッシュを促す
  3. ETag ヘッダを削除して、サーバー負荷を減らす

僕自体、サーバー関係は超ビギナーなので、今回はこれらを判りやすく .htaccess への記述で実現する方法を、備忘録的に紹介しておきます。トラフィックにお悩みのウェブマスターにもお役に立てれば幸いです。
もちろん、慣れた方なら直接 httpd.conf へ記述した方が良いでしょうね。
ちなみに僕は昨日、下手にいじってたら httpd.conf 吹っ飛びました・・・(涙目)
慣れないことはするもんじゃないねぇ。。。

1. プレーンなテキストファイルを gzip 圧縮してレスポンスさせる

これは昨年11月からも一部適用していましたが、今回画像以外の全てのファイルを対象に gzip 圧縮レスポンスを適用することにしました。
お使いのサーバーの Apache のバージョンが 2.x 系 ならmod_deflate モジュールにより以下のように .htaccess に書くことができます。

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary

gzip 未対応の古いブラウザ等の除外判定が入ってるため、なんかややこしい構文です。詳しくは apache のサイトを参照のこと。

これで、ブラウザには以下のようなヘッダが返されます。

Content-Encoding: gzip

実際の圧縮例としては、例えば当サイトのトップページの index.css は27.6KB4.6KB になり、またトップページ全体(CSS、JS、画像すべて含め)では、488.4KB311.3KB と言う感じになりました。ブロードバンド時代とは言え、まだまだ重いなぁ。。。

2. ファイルへ有効期限を付加し、キャッシュを促す

これは、レスポンスヘッダに Expires (有効期限)を付加することによって、ブラウザのキャッシュを促そうと言うものです。
上の gzip と同様、.htaccess へ以下のように記述します。

ExpiresActive On
ExpiresByType text/css "access plus 3 days"
ExpiresByType text/javascript "access plus 3 days"
ExpiresByType application/x-javascript "access plus 3 days"
ExpiresByType image/gif "access plus 30 days"
ExpiresByType image/jpeg "access plus 30 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType image/vnd.microsoft.icon "access plus 30 days"
ExpiresByType image/x-icon "access plus 30 days"
ExpiresByType application/x-shockwave-flash "access plus 30 days"
ExpiresByType video/x-flv "access plus 30 days"
ExpiresByType video/mp4 "access plus 30 days"

これによりヘッダには、例えば以下のように返されます。

Expires: Thu, 01 May 2010 00:00:00 GMT

各ファイルと有効期限はお好みでどうぞ。

うちの場合は、テキストファイルは更新頻度が高いので短めに、画像関係は更新することはほとんど無いので30日にしてみました。
また、ブラウザをリロードすれば強制的にキャッシュが更新されるようなので、特に不便はなさそうかな?

3. ETag ヘッダを削除して、サーバー負荷を減らす

ETag ってなんだ?
あまり意識したことの無いヘッダです。。。
調べてみたら、どうもこれもブラウザのキャッシュに関係しているらしい。

通常、キャッシュはURLで管理されますが、それだと同一URLでPCと携帯のソースを分岐している場合(うちとか)は、それらの区別ができませんよね? そこで、更にそれらへ固有のIDを関連付けることで、それらの識別を可能にしているようです。それがこの ETag だとか(合ってるかな?)

しかし、サーバーの設定によっては画像でもなんでもかんでも ETag を付加しちゃう場合があって、その度にサーバーはブラウザのリクエストを検証しなきゃならなくて、必然的に仕事が増えて大忙しに。。。自業自得じゃん(苦笑)
なので、ETag の必要のないファイルには ETag を付けさせないように設定しましょ、と言うことらしいです。

で、記述はこんな感じ。
上が設定対象、下が除外対象です。
ファイルの選定はサイトの状況に合わせてご検討ください。

<Files ~ "\.(css|js|html|xml)$">
FileETag MTime Size
</Files>

<Files ~ "\.(gif|jpe?g|png|flv|mp4)$">
FileETag None
</Files>

以上で一通りの設定が完了です。

さあ、これでどのくらいサックサクになったのか?
いざチェックです。
計測には、Google の Page Speed と、Yahoo! の YSlow を使いました。
どちらも事前に Firefox の Firebug と言うアドオンが必要です。

結果は・・・

サクサク度チェック 施工前 施工後 備考
Google Page Speed 78/100 85/100 100点満点での評価
Yahoo! YSlow Grade (E) Grade (C) A~Fの6段階評価 (Aが優秀)

うーん。。。思ったほど改善してないような。。。
これ以上、どないせぇと?
もう少し研究が必要みたい。。。

こちらのエントリーもどうぞ♪

サーバースペック確保!

お詫びというわけではありませんが、現行のサーバースペックを2倍に引き上げた最上位プランの試用を開始しました。多分めちゃんこ快適になると思います。当分は。で、恐らく本契約になるかなぁ。。。ひぃぃぃ。

ま、良いのです。元々考えていたことですし。
それに、応援してくださる大勢の頼もしい仲間にも恵まれていますから♪

誰かも言われましたが、僕の一存で突然サイトを閉鎖することはないです。
少なくとも皆さんに相談もせず、ある日急に終わらせることはありません。
僕にとっても、1.023worldは借金してでも続けたい大切なサイトですから♪
ひとりでも利用者が居る限り・・・と言えるほど人間できてませんがね(汗)

ただ、僕も普通のおっさんなので、ブログでハメを外す時もあります(苦笑)
そんな時はなるべく力を抜いて、ポカーンと見て頂けたら幸いです♪
そして、僕ももっと信用を磨きたいと思います。

参考までに、ここ一年のトラフィック状況です。
これを安定して支えられるサーバーが必要です。
勿論なるべく安価で・・・(苦笑)
オススメあったら教えてちょ!

集計月 月間転送量 ページビュー
2010/03 28.1 GB 140,958 PV
2010/02 27.9 GB 152,263 PV
2010/01 30.8 GB 168,543 PV
2009/12 36.8 GB 153,323 PV
2009/11 46.0 GB 162,256 PV
2009/10 42.9 GB 154,351 PV
2009/09 32.5 GB 133,483 PV
2009/08 32.0 GB 143,182 PV
2009/07 27.7 GB 124,129 PV
2009/06 24.9 GB 119,429 PV
2009/05 23.2 GB 131,592 PV

昨年の11月にあまりにトラフィックが増加したので、ファイルのレスポンスの多くをgzip圧縮で返すように変更し、お陰様で3割近くも転送量が軽減できました。
また、今年に入ってからは、忙しくて全く更新できなかったこともあり、これもトラフィック軽減に繋がりました(曝)
とは言え、まだ30GB近くもありますし、また今後益々増加が予想されるので、どのみちサーバーの強化は不可欠だったのです。

ま、これで当分は安心して更新できますな♪
さ、そろそろLEDネタ解放していくかな( ̄ー ̄)
あ、仕事終わらせないと。。。涙

こちらのエントリーもどうぞ♪