話題の「クラウド」とともによく耳にする言葉に「スケール」がありますが、講演などで「…がスケールする。」などと話されるのを聞くと、まだちょっと耳に新しい感じがします。
「スケール」と言うからには昔からある「スケーラビリティ」などと関連がありそうですが、スケーラビリティには実は2種類あって、「スケールする」と言う場合にはそのうちの1つを指しているというからややこしい。その2種類とは、「スケールアップ」と「スケールアウト」という対の言葉で、垂直スケールと水平スケールと訳されたりします。
スケールアップの方は日常生活でもよく使われます。たとえば、自宅を改装して一室をオフィスとして使えるようにしたり、またはリビングをシアタールームにしたりなど、既存のものに何かを加えて強化することを「スケールアップ」と言います。イメージとしては垂直的に増強されていくという感じです。
これに対してスケールアウトは、自宅マンションにビジネスでの来客が増えて手狭になったので、隣室をもう一軒借り増したり、または来客をもてなすパーティーを頻繁に開くようになったのでさらにもう一軒隣室を借り増すなど、同じものを追加して強化することを言います。水平的または並列的に増強されていくイメージです。
またこのスケールアウトは、話題の「クラウド(クラウドコンピューティング)」を支える重要なアイデアのひとつです。たとえば、Webでキャンペーンを行うと一時的に特定のコンテンツへアクセスが押し寄せます。この場合、サーバーのハードウェア自体を強化して処理能力を高めることもできますが、キャンペーンのたびにハードを増強するのは現実的ではないでしょう。また、あらかじめ処理能力の高い環境を利用しておくのも、コスト的に無駄が多く、やはり現実的ではありません。クラウド型のサービスを利用すれば、運用状況を見ながら、必要に応じてサーバーのメモリーやディスクを増やすなど柔軟な対応が可能になります。1台のサーバーを増強したり置き換えたりするのではなく、同じものを増やしてつなげることで機能を強化する、つまりスケールアウトしていくのです。
さてさて、このようにスケールアップとスケールアウトという2つの視点があるわけですが、Webコンテンツやサービスの企画や運営をする場合に、この2つの視点が役立つのではないかというのが今日(本稿)のポイントです。
2つの視点で眺めてみると、スケールアップ的な発想があっという間に会議を席巻してしまうという場面はよくあることだと気が付きます。しかもスケールアップ的な発想だけで計画されたコンテンツやサービスは、最終的には行き詰まる可能性が高い(お金を含めて莫大なリソースがあれば話は別なのかもしれませんが)。スケールアップ的な発想のすべてがダメだと言いたいわけではありません。アップとアウトの2つの視点を使ってバランスよく発想することをおすすめしたいのです。
最後に、冒頭の「スケールする」は口語で使われることが多いようですが、その意味するところは文脈によって揺れがあります。あるときは「スケーラビリティがある」という意味だったり、または「スケールアウトが可能だ」という意味だったり。ただし「スケールする」と言ってスケーラビリティを話題にしているなら、おそらくはスケールアップ的なスケーラビリティは意図していないのだ、というところがポイントでしょう。発言者がどこまで意図的に話しているかはわかりませんがw