Espar
2018.06.19 (Tue)

(所要時間:約4〜5分)

6/18の地震発生時、僕は大阪市北区のオフィスに、奥さんは同じ区内の自宅に、従業員もまだ自宅にいました。幸いオフィス内では本棚に置いてるiPadの空箱が落ちたぐらいでした。

20180619_eq_ft

停電もなく社内サーバ含むインフラはびくともせず被害は皆無。揺れが落ち着いて真っ先に、LINEで家族の安否を確認、更にslackで従業員の安否確認を行いました。

 

有事の際のオフィシャル情報

無事が確認できて安堵。次は、next action を行う為に必要な情報収集です。幸い、オフィスのiMacの前だったのでググって検索しました。

早々に直面した問題が、一部のサイトはトラブっててほぼ使いものにならなかったってこと。サイトが激重状態ならまだしも 503 エラーでサイトが落ちてるサイトもあり、情報を得られないもどかしさに当事者として大変困惑しました。緊急時にこそオフィシャルの情報が必要なのに…と。

行政、鉄道、バス、ガス、電気、水道、消防、

有事の際は、様々な種類のオフィシャル情報が欲しくなります。しかし、肝心のWebサイトが不調な所がちょいちょいありました。僕は仕方なく、Twitterの断片的情報を元に判断。(大阪メトロがもう復旧したという嘘の情報もありました)

結局、このあと臨時休業に切り替え、更に今週はリモートワークのみとすることを決めました。3月から働き方をリモート主体に切り替えていたのも奏功し、業務の停止は基本的にありません。

それはともかく、やはり有事にオフィシャル情報をサイトから得られない・得にくい状況はなんとかして欲しいと思います。以下に紹介するのは、当日10時〜11時頃の行政・インフラ系サイトの状態。地震発生から約2,3時間後の記録です。開発者向けツール等で詳細を見ましたが、改善できそうなポイントは各社それぞれですが幾つか見えました。

大阪市

直後から 軽量版 なるページに切り替わっていて、対応が素晴らしかった大阪市のサイト。

20180619_eq_osakacity1
(地震直後の大阪市サイトの軽量版。TOPにアクセスしようとするとこちらに誘導される)

しかし「軽量」とはいえ、体感で普通に遅かったです。5秒とか。10秒とか。

何が原因かと Chrome の Developer Tools を使って見たところ、htmlの生成に3,4秒を要してしまっていました。「このページくれ!」とサーバに伝わってから「あいよ!」とページを返してくれるまでの時間(専門用語でTTFBと言います。参考)に、3,4秒は待たせてるってことですね。

正直、Webの世界ではだいぶ遅いです。サクサク感とはほど遠い。

軽量版と言うぐらいだから、静的ページ(htmlファイル直置き)なのかな?とも思いましたが、TTFBに3,4秒を要するのは明らかにおかしい。静的ページなら普通は100〜500ミリ秒とかで余裕で返ってきますから。

大阪市は平成28年に新たなCMSを使ってサイトリニューアルをしていて、恐らく当該のCMSで転送容量が小さくなるページを用意、CMSサーバが頑張っていたのだとは思います。それか、静的な配信だけどサーバの設定がおかしいか…ですね。

軽量版という発想は素晴らしいと思いますが、転送容量が小さいだけでは負荷対策として不十分です。有事の時こそ最低でもTTFBは100ミリ秒以下であって欲しい。ページ全体でも1,2秒で返して欲しいところです。市のサイトは消防や水道のページも内包してますから尚更ですね。ですから、サイトの静的化を検討するか、既にしているなら明らかに遅いのでサーバの設定等を見直すべきだと思いました。

大阪メトロ

時間も時間だっただけに多くの人が殺到したであろうサイト。

20180619_eq_osakametro1
(画像の取得に失敗してメニュー部分がロゴしか出ていない)

ページのhtml取得に20秒近くかかってました。こちらは大阪市のTTFBが長いのとは違い、接続すらままならない状況。Initial Connetion(画面下部のバーのオレンジ色部分)の値が大きく、接続確立にまず時間がかかっていました。

大阪メトロのサイトは、サーバからネットに抜ける上流回線に余りお金をかけてなさそうに見えます。今回の事態を教訓に是非とも回線/帯域をしっかり検討して貰いたいと思いました。だいぶ改善される筈ですから。

同じことを思ってたようで、さくらインターネットの田中社長が地震直後にこんなtweetをしてました。

だそうなので、さくらのクラウドにサーバを設置してネットワークは回線太めの契約をされると良いかと。国内で有事のトラフィックに加えお金も気になる場合、さくらさんは良いチョイスだと思います。弊社も使わせて貰ってますが、従量課金のAWSとは安心感の次元が違います。

ちなみに他の大阪府内主要私鉄、阪急阪神近鉄南海京阪の各サイトはいずれもビクともしてませんでした。至って平常運転、さすがです。

大阪メトロはこの4月に民営化されたばかりってのもあり、webサイトへの投資はまだまだこれからなのかも知れません。Web関連に投資する時は、まず上流回線の見直しをお願いします。

大阪ガス

ほぼほぼガスが停止されていたこともあり、メトロ以上のアクセスが長時間続いた可能性もあります。想像以上のアクセスにCMSサーバが耐えられなくなったのか、

20180619_eq_osakagas1

このようにダウンしちゃってました。ただ、リロードしたら表示されて、また上図のエラー画面に戻って…と特徴的な表示切り替えも発生してました。表示された瞬間はこんな感じで。

20180619_eq_osakagas2
(表示されることもあったが、CSSが読めずに崩れてしまっていた。この表示でさえ数十秒かかっていた)

見えたり見えなかったり。恐らく複数台でロードバランスして運用しているうちの1台が死んでいるような状況だったのでしょう。

ロードバランスして複数台CMS運用するぐらいなら、アクセス集中しやすいページだけを静的化してロードバランスしたフロントに配備、それ以外をバックに控えたCMSにプロキシするってのが良いでしょうね。きちんと構成すれば、ある程度の攻撃対策にもなるので一石二鳥です。

関西電力

恐らく問題ないだろうと思いながら確認したのが、関西電力のページ。

20180619_eq_kanden

ちょっとしたご縁で、関電のサイトが少し前から(?) 静的化 に特徴を持つ専用CMSを導入しているのは知っていました(かなり高いですが…)。導入事例として公開もされてます。

弊社もWebサイトは静的化推進派で、実際、静的化による爆速化と負荷対策をさせて貰ってますので静的化の効果を日々実感してる立場です。だから、同じ静的化という意味で、関西電力のサイトは相当アクセスがあっても(一時17万戸が停電していた)、絶対に落ちてないし遅くもなってないと確信してました。

案の定、ビクともしておらずTTFBは常に数十ミリ秒の高水準。今回、電気関係のオフィシャル情報を求めてサイト閲覧で困った人は皆無だった筈です。当事者であった僕もその一人。

 

20180619_eq_public

止まってはいけないWebサイト

今回、当事者となって改めて感じましたが、公的インフラを支える企業のサイトは、有事の時こそ止まってはいけないWebサイトなのだと思います。

この業界で仕事をさせて貰ってるので、止めないことが如何に難しいかは重々承知の上です。それを承知の上で…ですが、やっぱり止めてはいけないです。遅くなってもいけません。そして万が一、そのような状態になってもすぐに復旧できるようにしておくべきです。

なぜなら、有事にオフィシャルな情報を最短で得られれば、地域住民の安心感は少なからず高まるし、人々の行動は最短で最適化されるからです。それが、本当に困った人向けに公的リソースが配分されることにも繋がる筈です。

弊社は最近、Webサイトの高速化・負荷分散・可用性確保という課題に、静的化という切り口でお応えする事業をしているだけに、今回の体験は非常に考えさせられました。

国内の地震は活動期に入っている、誰もがそう思ってます。全国例外なく今回の大阪と全く同じ状況になりえます。例外はありません。

したがって、全国の都道府県市区町村や、各地域のインフラを支える企業におかれましては、「地域住民のため」を言うのであれば、Webサイトの静的化と上流回線見直しを検討し、止まらないサイト作りを目指されることを強く推奨します。一人一台スマホ時代。有事にWebサイトへ膨大なアクセスが集中しない訳がないからです。できれば物理的な位置でも冗長化をする Disaster Recovery も検討されると良いのではないかと思います。

 

大阪では、特定の地域に限られるものの依然として地震の影響が残っています。被害にあわれた皆さまにお悔やみ・お見舞いを申し上げます。生活インフラの復旧に身骨を砕かれる関係者の皆さまに感謝すると共に、未復旧地域の一刻も早い回復を願う次第です。また、一個人として一事業主として、何ができるだろうかと考え続け行動に移していきたいと思っています。


2018.05.24 (Thu)

(所要時間 : 約1〜2分)

毎月恒例の上場企業の常時SSL化対応レポート2018年5月版をお送りします。今回で6回目。早いものでもう半年続けていることになります。継続は力なりなのか、レポートを見ましたよ〜と問い合わせを頂く事もあって、今後常時SSL化関連で新しいことを始めれそうな予感です。

例によって調査の内容は以下の通り。

  • 東京証券取引所が公開する2018年3月末時点の上場銘柄一覧から全上場企業3618社を抽出
  • 2018年5月21日時点での全企業Webサイトで常時SSL化してるかどうかを判断

というルールです。上場会社は毎月増えていってます。調査日が少しブレるのは弊社都合ですが、いずれ完全自動化して毎月3営業日目とかにする予定です。

さて、前回はめでたく常時SSL化対応が50%を越えましたが、今回はどれぐらい増えたでしょうか。

20180522_sslreport201805.png

今月は上記の通り。先月から1.4ポイント増えています。先月の1.7ポイント増につぐ増加率で、なかなか良い感じです。あと、対応企業が1900社 を越えました。素晴らしい。是非この勢いが収まることなく、いやむしろ加速する勢いで!、各社様におかれましては進めて頂きたいと思います。

次のマイルストーンは2000社越えですかね。あと95社なので2,3ヶ月後ぐらいには達成でしょう。

 

崖っぷちに追い詰められる前に

ネット界隈をwatchしてますと、常時SSL化のニュースを見ることが増えてきました。時間ないですからね、もうホントに。

かねてより2018年7月から、ブラウザシェア3,4割を占める Chrome では、常時SSL化対応していなければ「Not Secure」と表示されるようになるとしていましあが、更に2018年10月のChrome70では、「Not Secure」が赤色表示になることも明らかになっています。

20180525_httpinput
(Marking HTTP As Non-Secureより引用)

パスワード欄とかに限らず、chromeで http ページの入力欄に何かを入力すると、問答無用に赤色で Not Secure と表示されるようになります。日本語だと赤色で 保護されていない通信 です。

20180525_chromenotsecure

こんな感じ。入力欄であれば全部該当しますので、特にTOPページに検索窓を置いているサイトは早々に常時SSL化したほうが良いですね。もっと見たいなぁと思ってキーワード入力した閲覧者に、ウチは不信なサイトですと言っちゃうようなものですから。

そしていずれ、httpサイトであれば無条件に上図のような表示になるそうです。詳しい計画はこちらのリンク先をご覧頂ければと。

 

という訳で常時SSL化の5月度レポートでした。また来月もレポート致します。


2018.04.19 (Thu)

(所要時間 : 約1〜2分)

恒例となりました上場企業の常時SSL化対応状況調査レポート、5回目の調査となる2018年4月版をお届けします。調査は至ってシンプル。

  • 東京証券取引所が公開する2018年3月末時点の上場銘柄一覧から全上場企業3609社を抽出
  • 2018年4月11時点での全企業Webサイトで常時SSL化してるかどうかを判断

というルールで統計を取ったものです。11日というのは単に弊社都合です。ホントは毎月決まった日が良いのですけどね。

さて、今回はなんと言っても!!!ででんっ。

20180419_sslratio201804.png
(遂に半分を超えた!)

上場会社の常時SSL化対応サイトが半数を超えたということでしょう。いぁ実にめでたい!

調査開始した2017年12月時点で4割台だった頃から考えると、上場企業様や制作会社様の意識も向上してきてるのだと思います。常時SSL化推進派としては純粋に嬉しい結果です。願わくば数年のうちに対応サイトが100%になりますように。上場企業なのですから、情報発信側として身元ぐらい明らかにして貰いたいものです。

レポートでは例によって、業種ごと(17分類/33分類)や、証明書の種類ごとに統計を細かく取っていますので、詳しいことはレポートページをご覧下さい。過去分も見れます。

 

20180419_browser.jpg
(Thanks! the photo on flickr by Dennis Skley / CC BY-ND 2.0)

さて、あと3ヶ月もすればChrome68の配布が始まって、ChromeでHTTPサイトを表示すると即座に注意喚起がされるようになります。こんな感じ。

20180419_warning.png
(HTTPサイトは表示するだけで、このような表示になる)

そのことを知ってか知らずか、はたまた知ってるが無視しているのか、諸事情で対応できないのか…。7月にどれぐらいの上場企業が重い腰を上げるかが気になりますね。

どうせ対応しなくちゃならないので早いほうが良いです。既存サイトの常時SSL化はホント大変ですし。

 

もし常時SSL化でお悩みのようでしたら、DNSを切り替えるだけで常時SSL化が済んでしまう弊社 espar がおすすめです。手前味噌ですが(笑) どんな選択肢よりも作業負荷が少なく且つスピーディに常時SSL化できることをお約束します。

どさくさ紛れて最後に宣伝でしたね。来月もまたレポート致します。


2018.03.20 (Tue)

(所要時間 : 約1〜2分)

毎月恒例となりつつある(?)上場企業の常時SSL化対応状況レポート。

昨年より始めていて今回は4回目となる2018年3月版を公開致しました。微増ではありますが着実に増えてます。詳細なデータは こちら からどうぞ。

 

ようやく半数に迫る勢い

グラフで見るとよく分かるのですが、ようやく半数に迫るか…というところまできました。

20180316_sslreport201803
(やっと50%越えが見えてきた)

あと0.4ポイントですね。ホントあともう少し。これまでの調査レポートを振り返ると、前月に対する増分はだいたい1.0ポイント弱ですので、来月は確実に50%を越えるでしょう。

祝!常時SSL化対応上場企業半数超え!

ですね。パチパチパチ…

 

対応サイト半数越えの見込みは喜ばしいけど…

半数超えは確かに喜ぶべきことなのですが、手放しに祝える状況とは言えません。

2018年7月にはブラウザシェア5割(国内では4割弱)の Google Chrome で「安全でないサイトです」と表示されるのが分かっているのにも関わらず…まだ半分が未対応ってことですから。

まぁそれを言いだすと、実は中央省庁Webサイトもほぼ全て未だに常時SSL化できてないってこともあって、そもそも国全体が結構恥ずかしい水準ではあるんですけどね。

今もって常時SSL化対応できていないのは、

  • A) そもそも知らない
  • B) 知っているが対応できない
  • C) 知っているが対応しない

の3パターンに分けられるのですが、実は B が多いんじゃないかなぁと思う昨今です。色々理由は考えられますが、もしできないなら無理に自分でやる必要はなくて誰かにやらせるって判断もあり…だと思うんですよね。弊社は最近、そこに役割を見出してます。

 

役割分担で楽しよう

サイトの規模が大きかったり、CMSを使っていたりすると、ひとことで常時SSL化といってもなかなか難しいのが実情です。リダイレクトとか絶対パスとか外部参照とか…考えてたらキリがない。

常時SSL化の作業は、サイトの制作会社様もエンドユーザ様も本業ではない筈なんですよ。そこを気にして時間や精神が蝕まれるのって勿体無い。だから全部外出ししましょうよ…というのが、espar事業を通して最近発信しているメッセージの1つです。

20180320_aossl.png
(サイトに何の変更も加えずにhttps化できる)

DNSを切り替えるだけで気がかりがなくなるならそのほうが良いですよねとご提案していて、事例も増えてきて好評も頂いてます。

面白いと思うのは、常時SSL化できたという事実が嬉しいというよりも、頭の片隅に引っかかってた常時SSL化のことを一切考えなくて良くなったと評価して頂くことがあるって点ですね。

そうなんです。今の web は制作会社様やエンドユーザ様に色々求め過ぎ。まぁ仕方ない側面もあるのですけどね。ただまぁそれだけに、考えなくちゃいけないことを減らせるに越したことないんです。

餅は餅屋で作業分担し、各々が得意分野や本業に全力投球すること。それが関係者皆にとって幸せなんじゃないかなと思う昨今です。楽できるところは楽するのが一番です。

 

という訳で2018年3月の常時SSL化対応状況レポートでした。何か後半は思いをぶつけてた感ありますが…。さて、来月は遂に半分超えが見込まれます。また来月もレポートいたします。


2018.03.16 (Fri)

(所要時間 : 約3〜4分)

3月12日、東京は飯田橋で開催された daab Developers Summit 2018 で登壇させて頂きました。

20180316_daabdevsummit2018

スマホ向けのビジネスチャットサービスである direct の開発者向けイベントです。direct の開発元 LisB さんが daab 発表3周年を記念して主催されました。

daab とは direct agent assist bot の略で direct というビジネスチャットをプラットフォームとした、チャットボットを提供する為の仕組みのようなものです。slack 向けボットでも使われる Hubot がベースになってます。

 

弊社とdirect

directを提供されてるLisBさんと弊社との関係は実は結構長く、それこそdirectがローンチする前からのお付き合いです。社長の横井さんとのご縁がきっかけで、そこからはや10年近く…になるでしょうか。

20180316_businesschat
(Thanks! the photo on flickr by William Hook / CC BY-SA 2.0)

directがまだクローズド版だった時に使わせて貰いました。ビジネスチャットという着眼点は素晴らしいなぁと LisB さんを羨ましく思ったものです。

当時、弊社のファイル共有サービスSYNCNELが思うように拡販できてなかった時期だからかも知れませんが(笑)、自社ビジネスを持つ会社あるあるの隣の芝は青い心境で、スマホ向けビジネスチャットの国内黎明期を羨ましく見てました。これは絶対盛り上がるでしょと。

その後、前述の daab を2014年末に発表されます。チャットツールをサードベンダーがボットを作って拡張できるというんです。LINEの BOT API の発表が2016年4月ですから、如何に早いかが分かりますね。

20180316_daab

リリース前に構想をお聞きして、軌道に乗り始めていた自社のSYNCNELと連携させようという流れで、daab の開発パートナーにならせて貰いました。SYNCNELのロゴも載せて貰ってましたかね。

1年半後の2016年2月、弊社はSYNCNELを富士ソフトさんに事業譲渡しますが、その橋渡しをして下さったのが LisB さんです。何がどう繋がるか分かりませんよねホント。

そんなご縁で今もお付き合いさせて頂いてるという訳です。弊社は今 direct の一販売代理店とならせて貰い、導入支援/運用支援もしています。

20180316_daabdevsummit2018_ft
(参加人数は60人弱ぐらい。ほとんどがSIerさんなどの開発関係者だったかと)

一個人として、国内スマホ向けビジネスチャットの歴史を身近に見てきましたけど、間違いなく direct はその先駆けで(当時chatworkはスマホ最適ではなかった)、今でこそ流行りのビジネスチャットボットのコンセプトを最初に打ち出したのもまた direct なんですよね。

だから応援の意味もあってお付き合いを続けさせて貰ってます。プロダクトとしても良くできてますし。(どこ目線だw)

 

ビジネスチャットの役割

僕は、情報セキュリティレベルが低い国内事情も、生産性が低いと言われて久しい日本企業の実態も、諸悪の根源は「メール」であると考えてます。

メールを廃止すれば、いわゆる働き方改革(?)をやらなくても生産性は劇的に上がりますし、国内セキュリティインシデントも半分以上は無くせるし、際限なく掛かるように思える情報セキュリティ費用も極小化できると思ってます。

20180316_businesschatrole
(発表で使ったスライドの1つ。社内で両者のためにメールを使うべき理由は皆無)

実際、directを始めとするビジネスチャットツールは、社内コミュニケーションとしてのメールを激減させました。人と人との会話はメールよりよほど効率的ですし、スパム誤判定による喪失や大量のメールに埋もれる事もありません。

社内コミュニケーションに使うメールと対比すれば、ビジネスチャットにはメリットしかないのです。

でも、社内のメールを無くすという観点で唯一 direct に欠けていると思っていたのが、社内を飛び交う通知メールをどうにかする手段でした。システムからのアラート、定期的な営業レポート、グループウェアからの通知、IoT機器からのお知らせ…。これらを、簡単に、あらゆるシステムから、あらゆる言語から direct に通知として容易に流せたら良いのにと。

でも、ボットサーバを立てるアーキテクチャではこれが面倒なんですよね。

20180316_makeallbots

LINE WORKS も同じです。ボットは作れますが、特定のチャットルームに通知を送るだけの為に別サーバを立てて環境を作る必要があります(Serverlessという手段もありますが、別に用意しないといけないという意味では一緒)。

この点、REST API を備えて手軽に通知を放り込める slack や chatwork のほうが優位です。

例えば、以下に示すのは chatwork に通知を送る GAS のコード。Google SpreadSheet の編集時にB1セルの値を通知するってなことが、

CHATWORK_WEBHOOK_API_TOKEN = '1234567890abcdef1234567890abcdef';
CHATWORK_WEBHOOK_API_ENTRY = 'https://api.chatwork.com/v2/rooms/12345/messages';
var options = {
  'method' : 'post',
  'headers' : {
    'X-ChatWorkToken' : CHATWORK_WEBHOOK_API_TOKEN,
  },
  'payload' : 'body=' + SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet").getRange("B1").getValue()
};
UrlFetchApp.fetch(CHATWORK_WEBHOOK_API_ENTRY, options);

とたった数行で書けます。これを書くのに5分もかかりません。普段使ってて慣れてますから。サーバも特別な環境も不要です。

slackならもう少し簡単ですね。

SLACK_WEBHOOK_API_ENTRY = 'https://hooks.slack.com/services/T00000000/B99999999/123456788912345678901234';
var options = {
  'method' : 'post',
  'payload' : 'payload={"username":"webhook","text": "' + SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet").getRange("B1").getValue() + '"}'
};
UrlFetchApp.fetch(SLACK_WEBHOOK_API_ENTRY, options);

って書くことができます。このシンプルさは通知用の REST API (webhook) があらかじめ用意されているからです。

シンプルさとセキュリティは相反するのでバランスが重要ですが、シンプルに提供できるならビジネスチャットツールで社内通知を根絶できます。実際、弊社は通知系を基本 slack に集約していて、社内でのメールも、社内システムからのメールも一切ありません。

20180316_slack

そこで、今回冒頭で言及した daab を使って、direct への通知を REST API (webhook) として実現するようなボットを作ってデモしました。

20180316_daabwebhook

やっぱ応援しているプロダクトが他の競合プロダクトに負けてるかもって思う事があると悔しいじゃないですか。で、実際に動くものを作って見せれるというのは開発者・開発会社の良いところなので作ってみた次第です。中のエンジニアの方にも面白がって貰えたようで良かったなと。

directが標準で REST API を搭載するまで、今回作ったボットを使って社内で運用、また espar など静的化製品での活用を考えてます。

 

以上、イベント参加報告でした。他の登壇者の方も、AIやIoTやEDIやRPAなど、ボットを使って色んなことができるってことを紹介されていて、聴講者としても面白く且つ勉強になるイベントでした。

先日の MobileAct といい開発者向けイベントに登壇することが増えてます(増やしてます)。これからも機会あればアウトプットしていきたいと思います。