Amazon商品の価格変動チェック「あまとも」
コミックダッシュ!は初音ミクGTプロジェクトを応援しています
個人ニュースサイトを巡回する「メガとんトラック」
全ての記事 携プレMP3 デジカメ レコーダ ゲーム メモリ デジモノ コラム 雑談 ブログ あまとも コミックダッシュ!
前の記事次の記事
2006/06/18 23:59 - 2006/06/18

「何でもRSS」の良し悪し - トラフィック・コントロールとRSS粒度

カテゴリ : コラム タグ :

    日曜コラムです、こんばんは。
     
    あまとも」に 商品別RSS が加えられたのは、ちょうど2週間前のことです。
     
    それまでは「あまとも」に登録されている商品全体に対して、
    価格変動のあった商品をお知らせするRSSを1つだけ提供していたのですが、
    自分の興味の無い商品の価格変動を延々と見せられても困りモノですので、
    ユーザのみなさんが自分の興味のある商品の変動だけをRSSリーダに登録
    できるように商品別RSSを吐き出すように変更してみたのです。
     
    ところが、この商品別RSSを提供し始めてから、ある変化が起こりました。
     
     サーバ負荷が急激に上がる時間帯が出始めたのです。
     
    RSS自体は全て、価格が変動したときだけ更新される静的なxmlファイルで、
    価格チェック処理ののときに合わせて、いわば「ついで」として吐き出す
    ようにしているもので、生成処理に特に負荷が掛かるワケでもありません。
     
    では何がこんなに負荷となっているのか?
    と思って調べてみると、思わぬモノに出くわしました。それは、
     
     Webサーバのログに記録された、Bloglinesから大量アクセス
     
    です。crawler.bloglines.com というホストからのアクセスが、
    多いときには何と、
     
     1秒間に60回といった猛烈な頻度で
     
    やってきていました。しかもそれが、2時間おきくらいに同じコトを
    繰り返してきます。これはたまったものではありません。
     
    さらに事態は悪化します。Bloglinesのログを発見したすぐ後に、
     
     今度はLivedoor Readerからのログが
     
    大量に記録されるようになりました。これもBloglinesに負けず劣らずの
    大量アクセスを容赦なく浴びせてきます。
     
     
    では、実際にどのくらいのアクセスが襲ってきたのか、数字で確認してみる
    ことにしましょう。ちなみに、xmlを除いたhtmlやcgiだけのアクセスで見ると、
    デジ埋」「デジモノREVIEW」「メガとんトラック」「あまとも」は
    全て合計しても 20,000pv/day 程度のアクセスしかありません。
     
    それに対して以下の数字はどうでしょう?
    これは「あまとも」の商品別RSSだけに対するアクセスの数です。
     
    ■2006/06/11 の /amatomo/rss/ 配下のアクセス数
     39,152 Bloglines
     23,252 Livedoor FeedFetcher
      1,497 その他
     63,901 合計
     
    目を覆いたくなるような惨状です。1日は86,400秒ですから、
    これがなだらかな頻度で襲ってくれば 1秒に1アクセス という計算です。
    ところが先ほども説明したように、実際にはBloglinesのクロウラーは
    2時間に1度動き、そのたびに 秒間30回 といった集中的なアクセスを浴びせてきます。
     
    もしこれが個人の書いたスクリプトなどからのアクセスであれば、
    心苦しくとも「ひとまずアク禁にして様子見」という手を打つことができます。
     
    しかし、Bloglines や Livedoor Reader ですとそうもいきません。
    その先には当然、これらのRSSをチェックしているユーザの方がいるからです。
    こちらで提供しているRSSは、これらの著名なRSSリーダでチェックできることが
    最低条件であり、これらのRSSリーダのクロウラーのアクセスを弾いてしまうと、
     
     「RSSを提供している」という言葉そのものに偽りアリ!
     
    ということになってしまうのです。こうなるともう、八方塞がりです。
     
    逆に、
     
    「そもそもBloglinesやLivedoor Readerのクロウラーのほうが、
     節度がなさ過ぎる からこんな問題が生じるんじゃないか?」
     
    とおっしゃる方もいらっしゃるでしょう。しかし、これらのクロウラーの立場
    からしてみれば、あまともの商品別RSSなどとは比べ物にならないほど大量の
    大量の RSS Feed を短時間でチェックする必要があります。そのために必要な
    スケジュールを組んでいるにすぎません。
     
     
    もうお判りでしょうか。根本の原因は、
    RSSを大量に吐きすぎるサービス(=あまとも)の側にあります。
     
     RSSは大量に吐きすぎると、その負荷が自分に跳ね返ってくる
     
    のです。これが人間の閲覧するページであればそれほど気にすることは
    なかったのですが、いわゆる「bot」(自動プログラム)にチェックされる
    対象となるデータ(=RSS)を無節操に作ってしまうと、それらが全て、
    短間隔で定期的にチェックされるべき存在として捉えられてしまいます。
     
    botの側では、どれが重要なRSSで、どれが意味の薄いRSSなのかといった
    区別はつきません。Bloglinesなどでは、自らのチェックの負荷を下げるために
    更新頻度の低いRSSはチェック頻度も下げるように自動調整されているようですが、
    それとて、誰かがチェックしているRSSである以上、チェックの手間自体が完全に
    省けるワケではありません。
     
    あなたのサイトがRSSを1つ提供しているだけであれば、これは2時間に1回の
    アクセスという何でもない事象にしかなりません。ところが、あなたのサイトが
    10,000個のRSSを提供していれば、それは突如として
     
     2時間に1回、10,000回の集中アクセス となってあなたを襲ってきます。
     
    botはある意味、どんなRSSにも平等です。
     
    そうなると、サービス提供側(=RSS提供側)のほうが頭を捻らなければなりません。
    もちろん、あなたのサーバが
     
     どんな大量アクセスでもどんとこーい
     
    な場合は特に気にする必要はありませんが、そうではない場合には、
    どの粒度でRSSを提供するのかという設計は非常に重要になります。
     
    Web2.0の時代は、コンピュータが人間より遥かに多いHTTPアクセスを行う時代です。
    あなたが見た1つのWebページは、実は裏でコンピュータ同士のアクセスが
    何回~何十回~何百回も行われた結果 として作られたページなのです。
     
    サービス提供者は毎日毎日こうした ログとにらめっこ をしながら、
    コンピュータからの自動アクセスの動向を把握しつつ、それらと
    どう折り合いをつけていくか を考える日々を過ごしているのです。
     
     
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    ※追記 2006/06/19 PM12:45
     
    すみません、記載ミスがありました。はてなブックマークで、
    「2時間にたった10000アクセスだったら、機械の力でいくらでも対処できる」
    との適切なツッコミを頂いてしまいましたので、訂正いたします。
    「2時間に10,000回のアクセス となって・・・」のくだりは、
    「2時間に1回、10,000回の集中アクセス となって・・・」と書こうとしたものが、
    表現をミスしてしまったものです。その旨本文も修正いたしました。
     
    具体的な数字を挙げますと、
    6/12 20:23:25~20:25:35 の 131秒 の間に 3,982回 のアクセスを
    Bloglinesから頂きました。これは平均すると 30.4回/秒 となります。
     
    いずれにせよ工夫すれば対処方法はいろいろあるのですが、
    ぼーっとしているとこうなる、という例としてご参照ください。

    CK@デジモノに埋もれる日々 @ckom
    ブログ「デジモノに埋もれる日々」「アニメレーダー」「コミックダッシュ!」管理人。デジモノ、アニメ、ゲーム等の雑多な情報をツイートします。



    投稿者 CK : 記事URL | コラム | | 2006/06/18 23:59


    « 懐かしのPC98でMIDI制作映像 - レコンポーザ、MIMPI、NPLAY

    トップに戻る

    Amazonにも楽天にもない・・・?! 2台目の BiBio wGate を購入 »



    ▼ コメント ▼

    No.2999   投稿者 : 黒   2006年6月19日 09:37

    先週末、個人的にあるサービスを考えていました。
    これを見て公開をやめる事を決意しました。

    ところであまともさんはどうしますか?
    個人的には商品個別は多すぎるのではないかと思います。
    ジャンル別(種類によってどこまで落とすかですが)で良いのではないかと。


    No.3001   投稿者 : yoosee   2006年6月19日 17:52

    とりあえずダメ元で、bloglines と livedoor に rss へのアクセス時間をばらけさせることが出来ないかを聞いてみるのはどうでしょうか?


    No.3002   投稿者 : あ   2006年6月19日 19:43

    タイトルを見て
    http://blogwatcher.pi.titech.ac.jp/nandemorss/
    なんでもRSS!のことかと思っちゃいました…


    No.3012   投稿者 : itochan   2006年6月20日 15:02

    生成するRSSを、生成したRSSだけを、いくつかのサーバーに分散すればいいってことですか?


    No.3082   投稿者 : 匿名   2006年6月28日 16:25

    botのアクセスログだけ吐かない様にするとか、色々対策できるんじゃね?


    ご自由にコメントください(=゜ω゜)ノ  ▼ コメント入力欄を開く ▼
    ※管理人は多忙のためお返事はほとんどできません(スミマセン)。
    スパムおよび本文と無関係なコメントは削除対象になる可能性があります。


    ▼ はてなブックマークのコメント ▼


    ▼ トラックバック ▼

    このエントリーのトラックバックURL:

    このリストは、次のエントリーを参照しています: 「何でもRSS」の良し悪し - トラフィック・コントロールとRSS粒度:

    トラックバック時刻: 2006年6月20日 04:57

    » 巡回ロボットのトラフィック from fami-note
    結構前になるんだけど、職場(Web制作)のサーバー担当の先輩が、「Google... [続きを読む]

    ★コミックダッシュ! 10,000人突破ありがとうキャンペーン!(9/18~10/23)
     
    デジモノに埋もれる日々 : (C) CKWorks