NEWREEL
Feature

いまの自分に疲れている人のための あおぞら技術用語 「CDNの巻」

清水幹太 Dec 24 2017

PARTY NYに在籍しながら、新たにテクニカル・ディレクターの集合体BASSDRUMを起ち上げた清水幹太さんによる、技術用語解説連載です。

FacebookTwitterLinePocket

思えば、私たちは誰もがとんでもないエリートである。生まれながらにして半端ない競争の圧倒的勝者として存在している。それが私たちだ。誰ひとりとして例外なく、恐らくこれを読んでいるすべての人達がその意味では勝者・エリートだ。

人間生きていると、ちょこちょこ落ち込むことがある。仕事のやる気が出ないとき、酒を飲みすぎて翌日グダグダになってしまったとき、洗い物のクオリティが低くて嫁に怒られたとき。
自分が情けなくて、自己肯定感が下がって、前に進めなくなることなんて、結構な頻度でやってくる。
そんなとき、いつも私は、自分が精子だった頃のことに思いを馳せるのだ。

男性が一度の射精で放出する精子の数は1億〜2億匹だ。「匹」だ。精子っていうのは何しろ、「匹」で数える。みんなみんな生き物だ。そんな私たちも全員この1億〜2億匹の中の「1匹」だったのだ。
これは、とんでもない競争だ。1億〜2億匹に1人、なのだからこれは正直なところ、日本国民に生まれて国民栄誉賞をゲットするよりも大変だ。日本の人口は1億2000万人ちょい。国民栄誉賞は過去に24人もいる。私たちはみんな、1/1~2億だ。これがいかにすごい競争率であるか、おわかり頂けるだろうか。

私たちが一斉に射精された瞬間、卵子へのデスロードが始まる。「うおおおおおおおお」元気の良いストロングスタイルの精子たちが先に先に進んでいく。「く、くそっ。。。遠すぎる。。。」。しかし、最初の勢いは、あまりにも遠すぎる卵子への道のりに途方に暮れたかのように衰えていく。
私たちは息切れする戦友たちを横目に卵子に向かって一心不乱に泳ぐ。仲間たちが1匹、2匹と減っていく。「ぎゃあああああ」。ずっと一緒に泳いできた仲間が力尽きて脱落していく。「諦めるな! ゴールはもうすぐだ!」。仲間の一匹が周りを励ます。そうだ。もうすぐだ。勝つんだ。生きるんだ。
いよいよゴール。卵子が目の前に近づいてきた。しかし一斉にラストスパートをかける他の精子たち。誰かが卵子に到達したらもうお終いだ。自分の横を抜けて先に卵子にたどり着こうとする精子たち。そこに走る一瞬の閃光。そう。仲間の精子が、他の精子の進路を塞いで、私の前に、卵子への直線路が開けた。
「ここは俺たちに任せろ! お前は先に行くんだ!」。叫ぶ仲間たち。
「お、お前ら・・・・」
「お前は俺たちの夢だ! 俺たちの分も幸せな『人間』になってくれ・・・・!」
涙を拭いながら卵子へのレッドカーペットを駆け抜ける。
ライバルとデッドヒートを繰り広げながら、ついに卵子にたどり着く。
ハナ差で競り勝って、卵子の中に入った瞬間、卵子のバリアが発動し、他の精子は一切侵入できなくなる。ついにたどり着いた卵子の中から外を見ると、力尽きて遠くに流されていくライバルの姿が。しかしその表情は心なしか笑っているように見えた。

長くなってしまったが、私たちはこれだ。この非常にシビアな競走に勝ち抜いていま、ここにいる。上記のような思い出(?)を思い返すたびに、「ちくしょう。落ち込んでる場合じゃねえな」と思って、私は立ち上がるのだ。私は、卵子にたどり着けなかった1億9999匹の戦友(とも)を背負ってここにいるのだから。いつだって、それを忘れちゃいけない。

こんなことを考えて己を奮いたたせると同時に、いつも考えてしまうことがある。
「ところで、なんで精子ってこんな多いんだろう? なんか多すぎないか?」ということだ。
2億はものすごく多い。しかも、その2億匹の1匹1匹には、父親の遺伝子情報ががっつり書き込まれているのだ。実際のところ1つ1つ微妙に違ったりするのかもしれないけれど、だいたい同じ情報が2億個コピーされて放出されている、ということになる。

ところで全然話は変わるが、筆者の仕事は「テクニカル・ディレクター」だ。
テクニカル・ディレクターとは、技術についての知識がない人と技術者のコミュニケーションを媒介する仕事だ。
つまり、技術的に難しいことをみんなにわかるように伝えてみたり、技術を使って何かをやりたい人の(ときに抽象的な)要望を技術者が作業をしやすい仕様に翻訳したりする商売ということになる。

パッと見よくわからないかもしれないが、この仕事はわりと重要な仕事である。たとえば、アプリなんかを作る場合でも、アイデアを考えたりデザインを考えたりするような「考える」人と、それをプログラムで実現していく「組み上げる」プログラマーがいる。
そんなとき、考える側の人は大抵の場合プログラミングのことをよくわかっていないので、何かアニメーションに関する指示をするにしても、「ここはもっと『シュッ!』と動くようにして」みたいなすごい抽象的な雰囲気指示になることが多い。
そんなときに、テクニカル・ディレクターは、「シュッ」という表現を、そこまでのやりとりや全体の印象等を考慮して「ここは0.4秒で30ピクセルくらいの距離をイーズアウトさせよう」みたいな具体的なプログラミングの仕様に落とし込んで翻訳して説明する。
多くのプログラマーは、抽象的なことを言われると困ってしまう。「シュッ? ってなんですか?」となる。ゆえに、この翻訳は非常に助かるし、チームでの作業を高速化することにつながるのだ。

アプリのようなケースだけではなく、大規模なシステムにしてもEコマースにしても、フィジカルな体験インスタレーションにしても、上記のようなことは世界中津々浦々で起こっていて、デジタルの仕事が増えて規模も大きくなればなるほど、「翻訳者」であるテクニカル・ディレクターは必要不可欠な存在になってきている。

この連載は、そんなテクニカル・ディレクターとして活動している筆者が、デジタル・技術周りの難しげな言葉というか専門用語を通して、ふんわりとその意味を説明したりしながらエッセイ的に心象風景をつづる、いわば「技術用語歳時記」みたいな読み物となる。

記念すべき初回である今回のテーマは、「CDN」としてみる。
CDN、コンテンツ・デリバリー・ネットワーク。完全に技術用語だ。筆者の嫁は絶対に知らない。インターネットを使う仕事をしている方ならば、小耳に挟んだことくらいはあるかもしれない。

まず、インターネットのウェブサイト(ホームページ)の仕組みを説明しなくてはならない。ウェブサイト上の情報というのは、すべて、「サーバ」というものに入っているデータだ。で、サーバというのは世界中色んなところに置いてあるコンピュータだ。
たとえば、このウェブサイトは、筆者の父親(詩人)・清水鱗造のホームページである。

謎のイラストや、詩作をホームページに発表し続けてもう20年だ。
このリンクを踏んで表示されたホームページの情報、これは最初からあなたのコンピュータに入っているわけではなくて、日本のどこかに置いてある人様のコンピュータの中にある情報を取りに行って、それが表示されているのだ。

とにかく、どこか他のところに置いてある情報を取りに行ってそれを見る。それが基本的なウェブサイトの仕組みだ。しかし、そういう情報が置いてあるのはどこかのコンピュータなわけだから、問題が起こってしまうことがある。
たとえば、家で複数の家族がファイルサイズが大きい動画を見ていたりすると、ネットが遅くなったりすることがある。家の回線というのは限られているし、それを家族で共有しているからそういうことが起こってしまう。
これはネットを見る側の話だが、ネットに情報を供給する側にも同じことが起こる。
たとえば、うちの父のウェブサイトに置いてある動画がインターネットでバズって、アクセスが集中して1万人がその動画を見に来るとどうなるかというと、細かくは違う部分もあるが、家の中で1万人の家族が一斉に動画を見ているのと同じような状態になる。

そうすると、サーバの置いてある場所のネットは遅くなるし、サーバそのものも処理できなくなって熱くなって止まったような状態になってしまう。俗に言う「アクセス多すぎてサーバが落ちる」というのはこんなような状態のことを言う。

今日も世の中のいろんな場所でサーバが落ちている。サーバが落ちると、そこに置いてあるコンテンツは見ることができない。落ちなかったとしてもアクセスが集中してめちゃくちゃ遅くなったりとかしているサーバはそこかしこにある。

しかし人間というのは工夫するもので、そんなことが起こらないように「いくらデータが重くて、アクセスが集中しても落ちないサーバ」という仕組みが発明されて、ずっと前から利用されている。
というか、たとえばYouTubeなんて世界中で常に何十万何百万というユーザーが同時に動画を再生しているわけだが、基本的には落ちない。すごい。これはどういう仕組みなのか。

その仕組みが、CDN、コンテンツ・デリバリー・ネットワークだ。

そして、このCDN、コンテンツ・デリバリー・ネットワーク、仕組みとしては精子に似ている。
誤解を恐れずに言うと、CDNは精子だ。

1度に放出される精子は2億匹。この2億匹の1匹ずつに遺伝子情報が同じように書き込まれている。
そのうちの1匹が卵子にたどり着き、遺伝子情報を伝える。他の精子が脱落しても2億匹いるから問題ない。どれか1匹がたどり着けばいい。

CDNは、世界中に何万何十万というサーバを用意し、いろんな場所に1つの情報をコピーしまくり、アクセスが集中した場合他のサーバにアクセスを転送して分散する。
つまり、何十万個というサーバの1個くらい落ちても他が生きているから大丈夫。遅くなることもない上に、世界中にサーバが分散しているから世界のどこでアクセスしても高速に情報を取得することができる。

YouTubeのような大規模サービスは当然CDNを利用しているし、老舗ではAkamaiみたいなサービスだったり、AmazonもCloudfrontというCDNサービスを提供していたりして、筆者もよく利用している。 Cloudflareみたいに無料のCDNサービスなんかも存在する。

これは大胆な工夫であると思う。「1個だと不安だからめっちゃ増やせばいい」というのは乱暴なように見えてとても有効な方法だ。

そして「1個だと不安だからめっちゃ増やせばいい」という工夫は恐らく自然界でも精子や別の形で実現されている工夫だ。だから、畢竟自然界の末端に生きている存在である私たち人間がCDNみたいなものを発明するということは、あらかじめプログラムされていることなのかもしれない。


人間は、各々2億匹の中から選ばれた1匹たち、生まれながらにして圧倒的勝者であるにも関わらず貪欲に進化する。既に勝者なんだからサーバくらい落としても良いように思うのだが、絶え間なく工夫をし続ける。

しかし、そんな工夫を怠らない私たちだからこそ2億匹のとんでもない生存競争を生まれてすぐに勝ち抜くことができたのではないか。我々が実現し、体験している高速な技術の進歩は、私たちが2億匹から選ばれた優秀な遺伝子の証左なのではないか。

そう思いながら、心の中で、脱落していったライバルや仲間たちに思いを馳せて、語りかけるのだ。「俺は、まだやってやる。そっちの世界から見ていてくれよ。」と。

(マンガイラスト・ロビン西)

バーテンやトロンボーン吹き、デザイナーを経て、ニューヨークをベースにテクニカルディレクターをやっている。

BASSDRUM( http://bassdrum.org

Latest

VIEW ALL