fastapple's blog

時系列関係なく、情報を追記・分割・統合などします。ブログに記載の内容のうち、引用ではなく、私自身が記載している文章・コードなどについては、自由にご利用ください。

ファントムシステム


少し思いついたことがあるので、メモ程度に書いておきたい。通常、これまでのシステムは稼働していることが前提だった。冗長化するにしてもActive-Active、Active-Standbyなど色々あるが、そもそも稼働していないという状況は珍しいだろう。最低でも、電源は入っている状態である場合が多い。この場合、電源が投入されたシステムを例えば、クラウドで稼働させることを考えると、最低限のランニングコストがかかる。これは、案外バカにできないような気がする。スケールアウトについては、色々議論されてきてはいたが、クラウドなどの利用が増えるにつけ、「平常時にまったく稼働していないシステム」というのがあってもいいような気がする。

そのようなシステムを、例えば、「ファントムシステム」と表現してみるのはどうだろう。使うときだけ急にあらわれてくるイメージである。*1

本当に、必要な時だけ稼働するようなシステムのデザインパターンというのもあるだろう。さらに、ファントムシステムを確保しておくディスクスペースも、コストを考えればコールドストレージなどに格納するという手もあるかもしれない。勿論、呼び出しにくい場所にあるほど、いざ立ち上げる際の手間は増えるので、そこは考慮しないといけない。

そこを考慮すると、Standbyという概念はもっと細かく考えることができる。例えば、通常のStandbyを電源が投入されている状態と考える。通常のストレージに格納し、すぐに取り出せない状態をPhantomと呼ぶことにしたら、Active-Phantomや、単にPhantomなシステムを考えることができるし、さらにコールドストレージへ格納しておくことを、(Phantomの一種ではあるが)別途、Coldと呼ぶとすると、Active-Coldや、単にColdなシステムを考えることができる。Phantom以外の呼び方を使うとすれば、前者をHot Stored、後者をCold Storedと読んでもいいかもしれない。

Hot Storedの例は、例えばAmazon S3であり、Cold Storedの例は、例えばAmazon Glacierである。(Glacierはカタカナ発音ではグラシアと読むらしい。氷山という意味)しかし、クラウド利用は、クラウドの料金体系などについて十分な考慮が必要であることも押さえておく必要がある。

Amazon Glacierについては、以下のような記事がある。クラウドのコストを削減することは一仕事である。

blog.hde.co.jp

このようにクラウド利用には、別の考慮点が必要となってくる。簡単に言ってしまえば、データをコールドにしても、それを管理する人間はいつも「冴えている」必要がある。クラウドの料金体系はよく吟味する必要があるからだ。*2これはフールプルーフに近いといえば近いが、常に冴えていることを要求されるという点でフールプルーフより困難な要求になる。これを仮に「tangible awareness」とでも表現したい。そういうものが確保できるならよいが、そういったこともコストと考えると、クラウドを利用するかどうかというところから、総合的に議論をすすめる必要があるだろう。

まとめ
・Active,Standbyの他に、Phantom(Hot Stored,Cold Stored)を考えることができる。
・コストを抑えるためにクラウドを利用しても、料金体系をいつでも吟味できる人間またはシステムがいる必要がある(tangible awareness)。これは別のコストと考えられる。
クラウド利用については、tangible awarenessにかかるコストなども加味して総合的に意思決定する必要がある。

*1:他の箇所も含め、英語は母語でないので、語感等々改善の余地があるかもしれないが…。

*2:もっとも、クラウド利用でない場合、あまり意識されていないだけとも言えるかもしれない。