ファーストサーバーのZenlogic全面停止 なぜ再び集中?

2018年6月中旬から断続的に停止していたファーストサーバーのZenlogic(レンタルサーバー)ですが、7月に入り3日間以上完全にサービスが止まりました。この影響で取引先のメールが止まり、知人のサーバーを他社へ引っ越すのを手伝ったりと間接的に私も影響を受けました。

ファーストサーバー社によると本日(2018年7月11日)まにで根本的な原因はわかっていないということです。ただプレスリリースを見ると

ストレージシステム(データ記憶システム)において、 高負荷が発生し、 サービスが断続的にご利用しづらい状態が発生しました。

とあり、さらにその後も記憶媒体に高負荷がかかり・・・とあるので、問題はおそらく記憶媒体(データを収納する機器)かと思います。

ここで私は疑問に思うのです。データセンターは集中です。しかし一度データーセンターにアクセスが集中した後は、各契約者のサーバーは複数に分かれているはずで(複数社で共有することはあっても)、センター内では分散されます。ですから常識的にボトルネック(集中する場所)は回線になることが多いです。

ところが今回は記憶媒体が問題を起こし、さらにその影響がすべての契約者に及んだという点です。契約者数、2万社です。

ここからは想像です。「もしかして、データセンター内で分散された各サーバーは集中型の記憶媒体にアクセスしているのではないか

もしこの想像が正しければ今回のような問題が起きます。仮にそうだとしたら、なぜ、データセンター内で一度分散されたものを再び集中させたのか、という疑問がわきます。

集中型の記憶媒体を利用するメリットは

  1. 管理が簡単(うまく動けば)
  2. 各ユーザーが(今回は2万社が)同じデータにアクセスする場合管理が簡単
    → ただしレンタルサーバーの場合契約者同士が同じデータを共有することはない

です。もちろんデメリットはアクセスが集中した場合データセンター全体を巻き込む事故に繋がる点です。今回上の第2のメリットがないのですから、そもそも第1だけをもって集中型の記憶媒体を採用する意味もあまりないように思います。

集中のデータセンターが内部で一度分散したものを再度集中させる意味がどこにあるのかという話です。

協力殺菌・脇の下

生ごみが臭くなるのも、足が臭くなるのも、理由は同じです。雑菌です。雑菌が繁殖して悪臭を放つのです。それには条件がいくつか必要です。

  1. 適度な水分
  2. 雑菌の存在
  3. ある程度の栄養
  4. そして適度な温度

生ごみも足も上の条件を備えています。どれか一つでもかけると雑菌は増えずに匂いも抑えられます。

以前足の匂いをイソジンで消す話を書きました。実は春頃足の匂いが気になり、毎年その頃一度消毒します。足の匂いの原因となる雑菌は石鹸では落としきれないらしく、ゴシゴシと洗ってもダメです。そこでイソジンなのです。イソジンは粘膜に優しいだけでなく、強力な殺菌作用があります。今はどうかわかりませんが、日本の病院では外科を中心に広く使われていました。

※ ただし着色には注意で、これが欠点でもあります。

そこで今度は脇の下の匂いを消す実験をしました。簡単です。脱脂綿にイソジンを含ませて脇の下に塗るだけです。そしてその結果は・・・足と同様、少なくとも本人が気になるような匂いは消えました。

足と同様長続きがするかどうか、この夏、楽しみです。

なぜ一般家庭に複数のサーバーを設置できないのか

※ 以下は技術的な話で一般向けではないです。

「なぜ一般家庭に複数のサーバーを設置できないのか」というのは「回線(グローバルIP)が1本で、普通のルーターを使っていて、外から自由にアクセスできるサーバーを設置できない」という意味です。

ということで、行きます。事前にこの記事を読んでおくとより深く理解できると思います。

外、例えば喫茶店の無料WIFIから自宅内に設置したサーバーのブログにアクセスしたいとします。このときブラウザでは例えば

https://ultra.wafflecell.com/blog/

というURLをアドレスバーに入れます。ブラウザ(またはOS)はこのとき[ultra.wafflecell.com]のグローバルIPをDNSに問合せます。これを電話に例えるならば、「鈴木さんの電話番号を電話帳で調べる」に相当します。

ところがここで得られるグローバルIP(外線電話番号に相当)はルーターに割り当てられているものです。ということはブログが実際に動いているサーバー(呼び出しの内線番号に転送する必要がある)まではこの段階で届きません。では皆さんがなぜ今この瞬間にこのブログを見ることができるのか、というとルーターが「今喫茶店から届いたこの接続はWaffle Cell行きだな」と知っているからです。(Waffle Cellがルーターにブログのデータは俺のものだ、と事前通告しているという意味=ブログと「内線番号」の対応を知っている)

ということは、もし二台のWaffle Cellを自宅に設置したとしましょう。そのWaffle Cellで動いているブログのURLが

https://ultra2.wafflecell.com/blog/

だとすると、どうでしょうか。ブラウザはultra2.wafflecell.comのグローバルIPを調べます。しかし、そのグローバルIPはルーターに割り当てられているので、ultra.wafflecell.comのものと同じです。

そこでルーターがこの接続を誰に渡すかが問題となります。もう想像がつくでしょうが、ルーターが ultra と ultra2 を識別すれば交通整理ができ、それぞれの接続をそれぞれに対応するWaffle Cellに送ることができるはずです・・・・ができないのです。そういう機能がルーターには備わっていません!

残念。

そういうわけで、Waffle Cellだけではなく一般的なサーバーはこのような条件では複数共存できません。なんだか納得できるようなできないような、私の知り合いのKさんの好きな表現を使うと「残尿感」ありありの結末です。

※ 厳密にいうと、同じサービス(ポート)は複数持てない、ということです

以上、一般家庭にサーバーを置くときの制限でした。ちなみにWaffle Cellの場合、一部のサービスで例外はありますが、VPN 経由であれば複数のサーバーが特別な設定をせずに共存できます。

簡単そうで簡単ではないこと

Waffle Cellに搭載されているNextCloudが少し前、バージョン13になりました。早速これをインストールして実験をしていて気がついたのです。なんと、Talkという電話機能が使えるようになっているじゃありませんか!これはスマホやブラウザで通話、ビデオ会議ができるもので、気分は自宅に電話局(またはLineサーバー)を持つようなものです。(Waffle Cellではすでにビデオ会議が利用できるようになっていますが、Talkがよりモバイル寄りです)

ユーザー管理もNextCloudが受け持つので、統合された感じがたまりません。夕べ夜中に一人で複数のデバイスどうしてで「会話」をし、床についたのは夜明けでした。

しかし普通はここで問題が発生します。そんなに簡単ではないのです。少し専門的な話になりますが、説明します。

複数の端末が音声や映像をリアルタイムで交換する場合、直接接続ができない場合があります。これを「NAT越え」の恐怖と私は呼んでいます。それらの端末の間にはNATという厚い壁があり、直接の接続が難しいのです。

※ 上の問題と似ているものに、VPNのNAT越えがあります。NAT超えが完全な形でできるVPNは少なく、Waffle Cellはその一つです。

そこでいくつかの工夫が必要です。すなわち複数の端末を外部から手助けして接続させる仕組みです。STUNやTURNサーバーと呼ばれている機能がそれです。ほぼすべての端末間で通話するにはこの仕組みは必須です。

ところがこのTalkではTURNサーバーは提供していません。「自分で用意するか、年額50万円〜を支払ってね」というスタンスです。(仕方のない事ですが)

しかし幸いにもWaffle Cellには標準でこのTURNサーバーが搭載されているのです。そういうことで近々、Waffle Cell v2 の皆様にはこのTALKという機能をご提供いたします。

考えてみて下さい。自宅で家族や知人、同僚が安全、高速に利用できるLine機能を持てるのです。もちろんそれは数多くの機能のうちの1つですが!

Waffle Cell v2 テスタープランはこちらから

電話の外線、内線とルーターの関係

Waffle Cell v2 テスタープランはこちらから

少し技術的な話になりますが、サーバーの管理をはじめた技術者の卵と、Waffle Cellユーザー(非技術者)ならばこれを読み、そうか!と思ってもらえるはずです。

まずはだれでも知っている事実からです。

自宅に固定電話があり、子機が数台接続されているとします。外部からこの固定電話に電話をかけるには外線番号を使います。当然です。一方子機同士で話をする場合は、内線番号を使います。これも当然です。外からと子機同士の通話に使う番号は別物なのです。

もし子機からその親機の外線番号にかけると「話し中」の音が聞こえます。もし試したことがなければ試してみましょう。

ここまでを理解できない人はおそらく皆無だと思います。実はインターネットでも同じことが起こるんですが、なかなか理解をしてもらえません。

でも今日は理解してから帰ってもらいます。

外からの回線が直接つながっているのはルーターです。電話でいうところの親機に当たります。親機ですからここには外線番号に相当する番号が割り当てられています。(IT用語ではこれをグローバルIPといいます)

このルータに接続されているPCやスマホ、サーバー、Waffle Cellは子機に相当します。そしてこれらの子機には内線番号に相当する番号が割り当てられています。(IT用語でこれをローカルIPと呼びます)

一般の皆様はここまで理解できれば自慢できます。そして技術者の卵とWaffle Cellユーザーはこれからが本番となります。よろしいですか?

皆さん、自宅のPCから同じ自宅内に設置されているサーバーの接続方法が違うことをご存知でしょう。またはNASのように外部からは接続ができないとか、できたとしても全く違う方法でないと利用できない、ということもご存知かもしれません。

Waffle Cellユーザーならば自宅からはURLの先頭に l. (エルドット)をつけることを知っていると思います。そう、

自宅のPCから自宅内のサーバーにアクセスするには内線番号を使うのです。外からは外線番号を使います。すなわちグローバルIPとローカルIPを使い分けなくてはいけません。Waffle Cellやサーバーは子機なのです。衝撃!

このブログのURLを見ると、

https://ultra.wafflecell.com

となっているます。これは外線番号に当たります。なぜなら皆さんはこのWaffle Cellが設置されている場所ではなく外にいるからです。だから外線番号で接続しなくてはいけません。(ルーターはこのブログがWaffle Cellで動いていることを知っていて、内線呼び出しを自動で行っています)

もし私がこのURLでこのブログに接続しようとすると、接続できなのです。電話でいうところの話し中状態となります。(この場合、内線呼び出しをしてくれません・・・涙)

技術者の卵の皆さんもせっかくホスト名を取得して自宅サーバーを設置したのに自宅内からはそのホスト名が使えずがっかりしたことがあるでしょう。

通常は自宅サーバーに自宅から接続するには 192.168.10.212 というようなわけのわからない「内線番号」を使います。一方これではあまりにもわかりにくいので、Waffle Cellでは l.ultra.wafflecell.com というような内線専用のホスト名を使うようにしています。

ここまで読んでいただければ、Waffle Cellユーザーも少しだけ不満が和らいだかと思います。どうでしょうか?実はわけのわからない192.168.10.121というような数字ではなく、l.(エルはローカルのエルです)をつければ接続できるようにしたのは一つヒットだと思っています。

本当であればルーターが内部から自分に割り当てられている外線番号で接続したいという場面に遭遇したら、自動で内線番号に解釈しなおしてくれるといいのですが、安い家庭用のルーターにはそういう機能が付いていません。

以上です。なお、最後にもう一つ。上の書いたように、ultra.wafflecell.comというのは外線番号にあたり、Waffle Cellに割り当てられたものではありません。Waffle Cellが接続されているルーターに割り当てられたホスト名なのです!