見出し画像

障害対応をスムーズに!サービスの障害訓練を通じて効果を感じた三つのポイント

こんにちは、Zaim の高山です。

Zaim では、障害発生時にも慌てず速やかに対応できるように定期的にサービスの障害訓練を実施しています。その中でも「これは効果が高い!」と感じた三つのポイントを紹介します。

障害訓練はシステムが堅牢になるほど必要

Zaim で実施しているサービスの障害訓練は、仮想的なインシデントを想定し、技術的な対応からユーザーサポート、関係各社などへの対応を含めたシミュレーションを実施するというものです。普段から実施しておくことで、実際のインシデント発生時に慌てずに速やかな対応がとれるようにすることが目的の取り組みです。

Zaim では、そもそもシステム障害が起きないよう堅牢なインフラやシステムを目指して開発を続けてきたため、サービスの障害が起きる頻度が昔と比べてずっと減りました。そのため「障害が起きた時にどう行動するべきか?」といったことを学ぶ機会、振り返る機会がほとんどなくなってきています。しかし、どんなに対策をしても、トラブルをゼロにはできません。

サービスの障害訓練を通じて運用フローを体験することで、実際の障害発生時にも「あのときと同じだな」といった具合に落ち着いて行動できるようになる効果が期待できます。


直近で実施した障害訓練の例

そんなサービスの障害訓練ですが、Zaim では IT 戦略室という情報システムと IT 統制を兼ねた部門のメンバーを中心に、3 か月に 1 回の頻度で実施しています。毎回ネタを考えるのは大変ですが、何度やっても新しい気づきが得られるので継続できています。

最近実施した「情報漏えいが疑われるユーザーの問い合わせ」を例に、簡単にですが具体的な障害訓練の取り組みを紹介します。このときはテーマとして「休日に重要度 “緊急” の障害が発生した時の連絡フローを試したい」と考えて、準備しました。

障害の内容、想定する全体の対応フローを考えてから、社内に障害訓練を実施することを周知(もちろん、内容はナイショです)、当日になったらスタートです。今回の場合は「ユーザーさんからの問い合わせ」が起点になって調査を開始するという想定だったので、仮の問い合わせを作ってそれを社内 Slack に投稿する形で始まりました。訓練のテーマによっては、開発環境で実際にデータを改ざんしたり、調査されることを見越したログを仕込んだりといったことをするときもあります。

画像1

※Zaim では、情報漏えいが疑われる問い合わせが来た場合はこのように Slack に通知される仕組みになっています。このときは人間が代わりに投稿しました

訓練だと分かっていても、メンバーはみな真剣に取り組みます。仮のメール連絡や、ユーザーさんへの仮の周知はもちろん、「現実にこの現象が起きているとしたら、どこのシステムを調査するといいのか」といった観点で議論が交わされる場面も見られました。

画像2

最後に障害の振り返りをまとめます。訓練中に現れた課題感や不明点、疑問点などを集めます。特に「自身の役割は意識できていたのか」「フローに問題はなかったか」といった観点は、よりよい障害対応フローを作っていくためには欠かせない情報です。

今回の場合は休日を想定したものだったので「休日の際に銀行側の対応がどうなるかは、銀行それぞれなので非常に難しい問題だと思った。これを機に各行の休日対応を見直すべきかと感じた。」といった具合に、実際に経験したからこその課題が浮かび上がってきたことが印象的でした。

効果を感じた三つのポイント

だいぶこの記事も長くなってきてしまいましたが…、最後に障害訓練をやっていて特に良かったなと感じていることを三つまとめましたので、もう少しお付き合いください。

1. 運用フローの問題を検証できる
2. ベテラン社員以外の経験の機会になる
3. 障害を起こしたくない気持ちが高まる

1. 運用フローの問題を検証できる

これはもう先ほどの例でも挙げさせてもらいましたが、実際の運用を通じて運用フローを見直せることは大きいです。想像で作った運用フローは、実際に動かしてみると抜けや余計なことが含まれてしまうものです。

障害対応で右往左往するのは訓練のときだけで十分です。本番では訓練を活かしてスムーズに対応したいですね。

2. ベテラン社員以外の経験の機会になる

実際の障害発生の現場では、なるべく速やかに問題を解消したいため、ベテラン社員がササッと取り組むというケースが多くなりがちかと思います。たくさんのユーザーさんが困っているときに、勉強になるからとジュニアなメンバーに問題にあたらせることはあまりないのではないでしょうか。

しかし、訓練なら事情が違います。リーダーが不在など、普段とは違うメンバーという想定を作った練習も可能なので、幅広いメンバーが障害の対応を経験できます。一部のベテラン社員だけに障害対策の知見が溜まっていく…といった属人化を回避できる取り組みだと感じています。

3. 障害を起こしたくない気持ちが高まる

誰も障害は起こしたくないと思いますが、平和な時期が続くと慣れて油断した気持ちになってくる…人間ってそんなものだと思ってます。定期的に訓練をすることで「障害が起きたら結構たいへん」ということに改めて気づく良い機会になってるんじゃないかと考えています。

最後に

個人的には「問題の原因を探り対策を考える」という「考える作業」が好きなので、障害訓練のようなそのものずばりの取り組みは楽しいです。訓練なので、誰にも迷惑がかからず、変にプレッシャーがないというのもありがたいです。

最近はエンジニア側から「エンジニアも協力して出題側にまわるのはどうか?」といった提案が出てくることもあり、効果を実感しているメンバーも多いのだろうと感じています。

Zaim ではサービスを良くしていくためにさまざまな取組をしています。少しでも興味を持ってもらえたら、ぜひぜひお気軽な気持ちで話を聞きに来てくださいということで、以下のやつをよろしくお願いします。


この記事が気に入ったらサポートをしてみませんか?