「AWS GameDay」から学んだ障害対応訓練の大切さとAWS主催の意義

OGP

こんにちは。SRE部BtoBチームの岩切です。普段はBtoB事業における自社ECサイトの運用保守・監視をしています。

今回2020年11月27日にオンラインで開催されたAWS GameDayに参加しました。

本記事では、GameDayイベントで得た学びから実際の業務へどのような効果があったかを共有します。

AWS GameDayについて

今回のAWS GameDayでは、開催前の別日に事前勉強会が2時間、GameDay本番が5時間ほど開催されました。

合わせて17社31チームの123名が参加しており、参加人数の多さからGameDayへの注目度が伺えます。

GameDay概要

GameDayはAWS環境に触れた経験のある人向けです。障害時のトラブルシュートを学び、本番での対応方法を実践的に体験学習できます。以下が概要です。

  • 障害対応の訓練。
  • 本番同様の環境がAWSから提供される。
  • アプリケーションを稼働し続けスコアを獲得し、チーム対抗でスコアを競う。
  • 内部及び外部の変更や脅威に対し得て柔軟に対応する。

参加レポート

それでは、実際の開催2か月前から当日までの動きを紹介します。

参加申し込み

開催の約2か月前に社内向けのAWS GameDay参加者募集が開始されました。

社内でチームが調整され、私のチームは社内メンバー4名での参加となりました。AWS GameDay専用のSlackチャンネルで事前コミュニケーションを図ることもできました。

事前勉強会

AWSの担当者より事前勉強会として、GameDayの紹介及びサービスの紹介が実施されました。内容としては下記サービスの基本的機能の紹介がありました。

  • リージョンとアベイラビリティゾーン
  • Amazon VPC
  • セキュリティグループ vs. ネットワークACL
  • AWS ELBの種類及び使い方
  • Amazon EC2インスタンス
  • オートスケーリング
  • Amazon ECS、Amazon EKS、Amazon ECR、AWS Fargate
  • Amazon Lambda & Amazon API Gateway
  • Amazon DynamoDB & Amazon RDS
  • Amazon CloudWatch & AWS X-Ray
  • Amazon CloudTrail

上記以外にもGameDayについての説明があり、適切なサービス運用の大切さと作業分担の大切さをGameDayでは重要視しており、日々の業務にも通じるとの説明がありました。

また疑問点や質問があった場合は適宜Slackで受け付けていただき、分かりやすい回答をいただくことができました。

GameDay当日

当日は休憩を含みながら5時間ほどのWorkshop形式で進行されました。

オープニングからフルオンラインで開催され、AWS側で用意されたオンライン会場に各自が参加しました。

オープニング後には各チームに分かれ、それぞれ好きなツールを使いコミュニケーションすることになります。私のチームでは引き続きSlackを利用し、通話機能でやり取りをしました。

異なる会社のメンバーでチームを組むことも考えられるため、あらかじめチャットツールが用意されているのは、参加の敷居を下げてくれていると感じました。

コミュニケーションについても活発に行うことができ、終始穏やかな雰囲気ですすめることができました。

実際のチーム内でのやり取り

また開会式では上位3チームに景品があるということも発表され、参加者全員が熱意に満ちていました。

予測できない脅威、変動、変更

全チーム共通で競技の目的を与えられ、とあるサービスのスコアを競いました。

サービスのデプロイだけではスコア上位を目指すことはできず、競技中はAWS側から与えられる予測できない脅威や変更に対応し続けなければいけません。

また予測できない脅威に対して、その場しのぎの対応をしても再度同じ脅威が襲ってくる場合もありました。こういった状況であったこともあり、「実際のサービスにおいても自動復旧を担保しないといけない」といった意識を持つことができました。

サービス運用と作業分担の大切さ

私のチームでは、あらかじめAWSの実務経験をヒアリングしておき、作業の向き不向きや、AWS知識のレベルを認識合わせしました。しかし、作業分担をあらかじめ明確に分けていなかったため、AWS側からの脅威に太刀打ちができませんでした。みんなでサービスのデプロイをするのではなく、各自がしっかりと役割を持っていた方が良かったです。これは、実際のサービスの運用でも同じことが言えるので、学びのひとつでした。

当日を振り返ると、少なくとも以下の作業分担をしっかりを明文化しておくべきだと感じました。

  • 全体進行
  • デプロイ
  • 障害対応
  • 連携する他サービスの監視

途中からは役割分担ができるようになったのですが、もちろん担当者だけでは対応できない場合もありました。そのため、チームメンバーにどこで助けを求めるかを決めるのもチーム進行の大切な要素であると感じました。

またどうしても作業がうまくいかない場合や、チーム全体の知識で解決できなかった場合は、AWS側から助けをいただくこともできました。

Award & Review Session

競技後、表彰と競技の振り返りを行いました。

スコアボードを見ると上位層は僅差であり、上位3位のどのチームも作業分担を大切にしているとのことでした。

AWS GameDayの最終結果

全体的に終始和やかな雰囲気で進み、競技終了後もSlackでは挨拶が盛んでした。

終了後のチームSlackチャンネル

今回は開催されませんでしたが、本来であればWorkshop後にはGameDay前の各参加者の取り組みを紹介するLT大会もあるとのことでした。

GameDayに参加して得られたこと

業務効果

AWS GameDayでは、事前学習も含めてAWSに関する知識を普段以上に吸収できました。そこで学んだ内容が実際に実務で役に立つこともありました。

業務中に下記事象が発生し、GameDayでの経験から即時で復旧できました。

  • 作業者がS3に設定ファイルをリリース。
  • 設定ファイルのフォーマットエラーが発生。
  • サービスエラーが発生し作業者とは別の運用者が検知。
  • 夜間に検知したため、いつ・誰が・反映したかの確認が難航。
  • 「CloudTrail」で調査し作業者の特定。
  • 作業者に復旧対応の依頼を行い、サービス復旧。

CloudTrailはサービスの存在は知っていたのですが、これまで触れることはありませんでした。AWS GameDayで初めてCloudTrailを経験していたからこそ、これを活用して問題点の即時特定できました。

カオスエンジニアリング

AWS GameDayではトラブルシューティングの練習をしましたが、本番稼働しているサービスではシステムの耐障害性のテストが難しいでしょう。

AWSでは障害を意図的に起こすカオスエンジニアリングサービスのAWS Fault Injection Simulatorが2021年に提供される予定です。

こちらは本番環境を「ダウンしないサービス」ではなく、「自動復旧が容易なサービス」へ切り替える手助けになるかもしれません。

私も興味があるため、機会があれば別記事でご紹介させていただきます。

AWS GameDayに参加して

AWS GameDayは以前から行われているのは知っていてましたが、今回初参加となりました。

GameDayに参加したことで、運用しているサービスの設計や、連携している別サービスが自動復旧性を担保できているか確認する良い機会となりました。

GameDay以外にも障害訓練する機会はいくつかあるかと思います。それらの訓練ももちろん価値があります。しかし、GameDayでは具体的なAWSのサービスが登場した特別な訓練であり、AWSを活用したサービスの運営者にとって、この具体的なサービスを用いた訓練は非常に価値があるものと言えます。

みなさんも本番障害が発生した際の機会損失や社会的信用の低下を防ぐためにも、サービスの自動回復を今一度振り返ってみてはいかがでしょうか?

さいごに

ZOZOテクノロジーズでは、一緒にサービスを作り上げてくれる仲間を募集中です。ご興味のある方は、以下のリンクからぜひご応募ください!

https://tech.zozo.com/recruit/tech.zozo.com

カテゴリー