Garbage Collection


2016-07-07 アクセス数についての技術的な話と情緒的な話

§ はじめに

まずは御礼を。Jono JOI Realtime Simulation には7月5日の木星軌道投入の当日だけで133の国と地域から約4万PVのアクセスがありました。こんなに沢山の人に見て頂けたのは身に余る光栄です。ありがとうございます。楽しんで頂けたのなら良いのですが...

さて、そのアクセスログを眺めながら考えたことを少し。

§ ページビュー(PV)

ある時期から、自分のサイトのPVを気にするようになった。作品には広告などは入れない方針なので、アクセスを増やすことにはさほど興味はない。でもアクセス数はけっこう気になる。一つは、純粋に技術的な問題で、サーバの転送量に制限があるから。もう一つは情緒的な問題で、自分の作品がどれくらいの人に受け入れられているのかを知りたいから。

§ 技術的な話

技術面は、かなり差し迫った問題。Junoのシミュレータは1アクセスあたりの転送量が5MBほどある。計算や表示は全てブラウザ側でやっていて、サーバには静的なファイルが置いてあるだけだから、問題は転送量だけ。とはいえ4万PVで転送量は170GBになる。借りているサーバ*1には一時的に転送量の上限を緩和する機能が付いているけれど、この数字は通常の上限の2倍を超えている。上限が緩和されているからといって、のほほんとしていられる数字ではない。

実は、当日のピークの時間は、アクセス数をリアルタイムでチェックしながら祈るような気持ちで増えていく数字を見ていた。ひとりでも多くの人に触れて欲しいと思う反面、エラーで誰かをがっかりさせているんじゃないかと思うと気が気じゃない。アクセス数が想定以上に伸び始めたら、データやテクスチャのクオリティを一段低いものに差し替えるつもりで身構えていたけれど、その手は使わずに済んだ。

今回はJunoの木星軌道投入というかなり注目度の高いイベントだった。これに耐えられたというのは良い知らせ。一方で、TwitterやFacebookなどで更に多くの有名アカウントに紹介されていたらこの数倍のアクセスが来た可能性もある*2。今回サーバが止まらなかったのはただの幸運だったかもしれない。

一番簡単な対策は、サーバを増強するという方法。要するにお金で解決する。商用Webサイトを考えれば4万PV/dayはさほど大きい量ではない。サーバを上位のグレードに上げる、あるいは専用サーバを借りるなどすれば何も気にしなくてもいい。とはいえ、こんなアクセスは年に数回しかないし、商売でやっているわけでもないから、できればコストを掛けずに知恵と勇気で乗り切りたい。

転送量を減らすためにやれることはまだいろいろある。スクリプトはもう少し圧縮できるし、画像のクオリティも改善の余地はある。アルゴリズムを工夫すればデータ量ももう少し減らせる気がする*3。ただ、それで2倍には耐えられるようになるかもしれないけれど、おそらく10倍には耐えられない*4。今回くらいのアクセスでも、おそらく何日も続けばサーバは止まる*5。そろそろ、その先の手を考えておく必要があるかもしれない。

*1 さくらインターネットの共用サーバ

*2 あかつきの軌道投入の時に、あかつきの公式アカウントとNASAのキャンベラ深宇宙通信局に紹介された途端にいきなりアクセス数が倍に跳ね上がったことがある

*3 これはクライアント側での計算量がさらに増える可能性があるので実行速度とのトレードオフになる

*4 実は、GoogleSatTrackは30万PV/dayに達したことがある。ただ、GSTは一人あたりの転送量は数百kBしかない。こちらの問題は転送量ではなくGoogleMapのアクセス数制限

*5 かつてUARSやROSATという衛星が地上に落下するという話が話題になった時は、GoogleSatTrackへ万単位のアクセスが数日間続いた

§ 情緒的な話

問題という言い方は少し変かもしれない。ようするに、沢山の人に見てもらえてとても嬉しい、という話。前にも同じようなことを書いた気がするけれど、何度でも書いておく。これは絶対に忘れてはいけない話なのだけれど、気を抜くとすぐに忘れてしまうから。

4万PVという数字は、上のように技術的に見れば、ただのサーバへの負荷でしかない。どうやって大量のアクセスを捌くか、どうやってサーバへの負荷を低減するか、そのための指標になる数。でも、実際には、その数は誰かが自分の作品を見るためにページを開いてくれた回数だ。そう考えると133ヵ国、4万PVというのは気が遠くなるような数だ。

これを書いている今も、あのページには常時数十人がアクセスしている。アメリカの西海岸からスマートフォンでアクセスしているこの人はどんな人なのだろう?まて、ロンドンは真夜中じゃないか、こんなページ見てないで早く寝たほうがいいよ。ロシアは今は朝、もしかしたらJunoの話を今朝はじめて知ったのかもしれない。おはようございます。昨日すごいことがあったんですよ...その1クリック、1クリックの裏に誰かがいて、それぞれにバックグラウンドがある*1。みんな楽しんでくれただろうか?がっかりしたりしなかっただろうか。できればみんなにありがとうをいいながら握手をしたいくらいなのだけれど...

あるいは、ログファイルを見ていると、たまたまアクセスが重なって503(アクセス過多)のエラーが出ていることがある。データ上はただのエラーコード。でも、これはクリックしたにも関わらず誰かがサイトを見られなかったということだ。ああああ、ごめんなさい、ごめんなさい。どうかあきらめないで、もう少したってからまたきてね(´・ω・`)ノシ

いつからか、これは何かを作る上でのモチベーションというだけでなく、作品そのものの根幹を形作るようになった。

だいたい僕の作る作品は、いつも機能がすごく少ない。それは技術が追いついていないというのが半分だけれど、もう半分は意図的なもの、見ている人の想像力を邪魔したくないからだ。ふとしたきっかけでこのURLに出会い、なにげなくクリックする。100人いれば100通りのJunoとの出会い方がある。そのときの体験を、あるいはその時の思いをなるべく邪魔したくない。日常の体験の中に、するりと入り込むようなものでありたい。

だから、誰もが日常的に使うブラウザじゃなきゃいけないし、そのために何かをインストールするのでもいけない。いちいち前置きはいらないし、画面に余計なものはいらない。極力シンプルで、簡単で、でも見聞きする話と違和感がないくらいには正確でなくちゃいけない。ブラウザでURLを開くだけで、たとえば星空を指差すように、探査機の今いる場所がわかる。僕が作りたかったのはそういうサイトだ。

そうあれかしと願っているけれど、思い描いているものが、どこまで実現できているかはよくわからない。でも、こうやってアクセスログを眺めていると、少なくとも自分のしようとしていることは間違っていないと信じることはできる。

あの日、少なくとも数万の人達が、あの作品を通じて、人類が木星に探査機を送り込むのを見守っていた。そのことを心から誇りに思う。そのひとつひとつの体験が少しでも豊かなものであったことを願いたい。

最後にもう一度お礼を。ありがとうございます。また何か作ります、これからもどうぞごひいきに。

*1 いちおうBotはアクセス統計からは排除されているので、これらはちゃんと「誰か」である可能性が高い

本日のツッコミ(全3件) [ツッコミを入れる]
> nanasi (2016-07-08 00:56)

仕事中でしたがスマホで見てました。<br>何億キロも離れた所と同じ景色が小さな携帯画面でリアルタイムに再現されていると思うと、とても感慨深かったです。<br>作ってくれてありがとう。

> Makoto (2016-07-08 07:14)

宇宙旅行や「銀河帝国の興亡」の世界に行けるので,少年時代に空を見上げていたとき以上にドキドキする時間を持てます。<br> 『その時』に見損なった人のために,時間を一ケタ早くするか,スライダーで時間進行を操作できるかした,「総集編」サイトは出来ませんか?

> isana (2016-07-08 08:31)

ありがとうございます!楽しんでいただけたのなら何よりです。現状では時間の流れ方を変えるのはシステム的に難しいですが、軌道投入の各シーケンスに戻れる機能を付けました。左上の歯車アイコン>時計アイコンの順にクリックすると出てくるリストから"Reply mode"に入れます。