開閉ボタン
ユーザーメニュー
ユーザーメニューコンテンツ
ログイン

  • 会員限定
  • 2021/01/21

Netflixも実践、DXでなぜ「カオスエンジニアリング」が必要になるのか?

2020年を振り返ると、システム障害がビジネスに影響を及ぼした事案が多かったことに気づく。テレワークの増加でVPNがパンクするといった新型コロナウイルス感染症の影響によるものに加え、9月から10月にかけて起きた、NTTドコモのキャッシュレス決済関連の不正出金事件、10月1日には東京証券取引所(東証)が全銘柄の売買を終日停止するという前代未聞の事故が起きた。注目すべきことは、原因は必ずしも最新テクノロジーを用いたサイバー攻撃などではなかった点である。2021年を迎えた今、あらゆるシステムについて、構築への考え方をゼロから考え直すべき時が来ているのかもしれない。そこで参考にしたいのが、米Netflixなども実践する「カオスエンジニアリング」や「カオスモンキー(Chaos Monkey)」という考え方・手法である。

執筆:友永 慎哉

執筆:友永 慎哉

製造業向け基幹系システムの開発を経験後、企業ITの編集、ライター業に従事。ファイナンス、サプライチェーンなど、企業経営の知識を軸にした執筆に強みを持つ。インダストリー4.0など新たな技術による製造業の世界的な変革や、Systems of Records(SoR)からSystems of Engagement(SoE)への移行、情報システムのクラウドシフトなどに注目する。GAFAなど巨大IT企業が金融、流通小売り、サービスといった既存の枠組みを塗り替えるなど、テクノロジーが主導する産業の変化について情報を収集・発信している。

画像
東証のシステム障害では宮原社長が引責する事態となった
(AP/アフロ)

東証のシステム障害の原因は「見落とし」

 東証で2020年10月1日に発生したシステム障害では、すべての銘柄の売買が終日停止した。株式の売買高は1日平均で3.0兆円(2019年度)に及ぶ規模であり、経済全体への世界的な影響は非常に大きいものだった。11月30日には、この責任を取る形で東証の宮原幸一郎社長が辞任を表明するに至った。

 すでに多くのメディアで紹介済みだが、東証のシステム障害の原因は、株式売買システム「arrowhead」に設置したNAS(ストレージ)のメモリが故障した際に、自動で切り替わるはずのアクティブ・アクティブ構成のバックアップシステムが機能しなかったというものである。

 原因は、提供されたNASに添付されたマニュアルに不備があったことにある。2010年の初代arrowhead 稼働後、2015年にarrowheadの全面刷新によってNASの自動切り替えに関する仕様が変わった。これに対応して、参照するマニュアルを変更し、設定値を変える必要があったが、実に5年間にわたって見落としていたのである。

画像
東京証券取引所の再発防止策検討協議会(第1回)が10月23日に公開した資料。共有ディスク装置1の障害時に2に自動で切り替わらなかった
(出典:東京証券取引所 発表資料)

 もう1つ、2020年を代表するシステム障害が同じ時期に起きている。不正出金の被害額が5000万円に上ったといわれる、NTTドコモのキャッシュレス決済関連の不正出金事件である。ドコモ口座やゆうちょ銀行口座などの仕組みを悪用したものである。

 事件の発覚を受け、ゆうちょ銀行と連携する10に及ぶサービスが連携を停止した。被害にあったサービスの共通点は、二要素認証が未導入だったこと。このため、名前、生年月日、口座番号、キャッシュカードの暗証番号をなんらかの方法で手に入れれば、第3者が本人になりすまし、ゆうちょ銀行の口座と決済サービスを連携できる状態にあった。現金を扱うシステムに実装するには個人認証の発想があまりに甘かった。

意図的に障害を盛り込む「カオスモンキー」とは?

 東証の親会社である日本取引所グループ(JPX)が設置した独立社外取締役で構成する調査委員会は11月30日、(arrowheadのスローガンとしての)ネバーストップというスローガンにこだわり過ぎて取引注文を止めるのが遅れたとの見解を表明。

 一方で、5年間も設定変更を見落としたというのだから、なかなか納得しにくい。取引を決して止めないという思いが被害につながったとの説明に、多少の恩着せがましさを感じた人もいるのではないか。

 IT領域において間違いなく日本の先を走る米国では、ある意味でもっと「懐の深い」発想でシステム開発が進められている。

 その1つが「カオスモンキー(Chaos Monkey)」という考え方である。「カオスエンジニアリング」とも呼ぶこの手法は、本番稼働するシステムに対して故意に障害を起こし、すぐに自動復旧させるという取り組み、もしくはそれを実現するソフトウエアを指す。

 サーバ停止やレスポンスの遅延などを本番環境に起こすことで、実際の障害の発生に備えるというものである。試験環境でなく、あえて本番でこれを実施することで、本番環境の可用性を高めようという発想である。もちろん、本番環境に障害が発生してもビジネスが停止しないように、冗長化を図っておく。

 カオスモンキーを導入した企業としてよく知られているのが、動画配信サービスを提供する米Netflixである。Netflixは2012年の時点ですでに「予期できない重大なシステム障害を防ぐための最善の防御策は頻繁に失敗し、練習と適切な計画を重ねること。これがより回復力のある方法でサービスを構築できる」と説明している。

 Netflixは、週に1000回以上にわたり自社のネットワークを攻撃するソフトウエアを開発し、Netflixユーザーが気づかないような小さな障害から回復させることを自社のエンジニアに課した。このソフトウエアをカオスモンキーと呼び、ソースコードをGitHubにリリースしたことが始まりとなった。

 ちなみに、カオスモンキーの名前は、データセンター(またはクラウドリージョン)で武器を使って野生の猿を放ち、インスタンスをランダムに撃ち落とし、ケーブルをかみ砕くというアイデアに由来しているとNetflixは説明している。

 カオスモンキーは具体的に、NetflixがAmazon Web Services(AWS)のオートスケールサービスで動作する仮想マシンに対して、ランダムに障害を起こす。Netflixのエンジニアはカオスモンキーが引き起こす驚きによって鍛えられているため、原因を切り分け、障害が2度と起きないように解決できるという。

【次ページ】日本企業が取り組むべき障害回避策

開発総論 ジャンルのトピックス

開発総論 ジャンルのIT導入支援情報

ビジネス+IT 会員登録で、会員限定コンテンツやメルマガを購読可能、スペシャルセミナーにもご招待!