障害発生時の対応をあらかじめ準備しておくことが大切だ。それにはイベントストーミングが活用できる。TISと楽天の事例を見てみよう。止まらないシステムを作るには、障害発生ポイントの洗い出しが欠かせない。障害が発生しそうな箇所が分かれば、訓練によってあらかじめ対策が打てるようになる。マイクロサービスアーキテクチャーでは障害は必ず発生するものと考えなければならない。このような考え方はセキュリティー対策やBCP(事業継続計画)と同様である。最近のセキュリティー対策は攻撃を水際で防ぐことよりも、いかに被害を最小限にとどめて事業を継続できるかに重点が置かれる。そのためにはサイバー攻撃訓練が欠かせない。同じことが分散システムの障害対策にも当てはまる。障害イベントを洗い出すTISが社内で取り組もうとしているのが、「イベントストーミング」による障害発生箇所の洗い出しだ。イベントストーミングとは、壁一面に広げたロール紙にシステムで起きるイベント(商品を検索など)を付箋紙で貼り付けながら時系列で表現していく(図1)。図1●イベントストーミングの様子(出所:TIS)[画像のクリックで拡大表示]そしてイベントの前後に発生するイベントを貼り付けていく。商品の検索の前にはアカウント作成といったイベントが想定できる。検索後には商品をカゴに入れたというイベントが考えられるだろう。イベントを洗い出せたらイベントで起こり得る障害を貼り付けていく。商品の検索ならば、商品マスターにアクセスできないといった障害がある。このようにして、システムで発生しそうな障害を洗い出していく。同社の前出祐吾テクノロジー&イノベーション本部テクノロジー&エンジニアリングセンター主査はイベントストーミングの活用で大切なのは「エンジニアだけでなくビジネス関係者も一緒に行うこと」と説明する。障害の中には、発生するとビジネスに影響するものがある。エンジニアだけではこのようなイベントの重要性に気づくのが難しいからだ。前出主査は「今後、イベントストーミングの活用を検討していきたい」と話す。障害発生時の対応に有効なのが、自動復旧の仕組みが正しく動くかどうかを本番環境で試す運用手法である。本番環境のシステムをわざとダウンさせたり、通信遅延を発生させたりして、システムの信頼性を確かめる。楽天市場では年数回の定期メンテナンス時に本番環境で負荷テストを行い、正しく復旧できるか、サービス停止時の対応に間違いがないかなどを確認している。楽天の橋詰尚毅クラウドプラットフォーム部スタックワイドリライアビリティ課SREグループマネージャーは「重要なコンポーネントを中心に通信レスポンスを低下させたり、データベースをダウンさせたりして、訓練している」という。限られた時間内で訓練しなければならないため、「シナリオの作成には3カ月以上の期間を要し、綿密に作る」(橋詰グループマネージャー)という。この記事は有料会員限定です「日経SYSTEMS」定期購読者もログインしてお読みいただけます。26社DX戦略レポート。DXで成果を上げるために不可欠な情報がこの1冊に。現場の負担軽減を!医療界でのAWS活用法500万社が導入。情報銀行の成り立ち、事例、現状課題やその行方を網羅。経営戦略である以上、「会計」の知識やスキルが欠かせません。