先日、KDDIグループ向けにAWS GameDay for KDDI Groupが開催されました。初めてAWS GameDayに参加したので、その体験について書きたいと思います。
GameDayとは
公式サイトから概要を引用します。
https://aws.amazon.com/jp/gameday/
AWS GameDay は、チームベースの環境で、AWS ソリューションを利用して現実世界の技術的問題を解決することを参加者に課題として提示する、ゲーム化された学習イベントです。
イベントの流れとスケジュール
13:00 ルール説明
13:45 GameDay開始
17:15 GameDay終了
イベントは3時間半にわたり、終了後は、発生した「カオス」(GameDayイベントにおいて、偶発的に発生するトラブルや課題のこと)についての解説もあり、非常に勉強になりました。
事前の準備
業務で触るサービス(Lambda、S3、CloudWatch Logs、Organizationsなど)については一定の理解がありました。事前にAWSが提供する勉強会とハンズオンにも参加しました。サーバーレスは業務で触れるため、ある程度の知識はありましたが、EC2 AutoScalingやAmazon ECS / AWS Fargateなどは普段の業務であまり触れる機会がなかったため、事前の勉強会に参加できて良かったです。
- AWS 基礎勉強会
- Amazon EC2 AutoScaling ハンズオン
- サーバーレスハンズオン
- Amazon ECS / AWS Fargate ハンズオン
参加者
約150名(1チーム4-3名構成で42チーム)が参加し、弊社(アイレット株式会社)からは24名が参加しました。
シナリオ
ネタバレはNGなので具体的な内容は書けませんが、ユニコーンレンタルという架空の企業の開発/運用チームの一員として、AWSサービスを駆使してさまざまな課題に取り組みました。
ゲームルール
今回のGameDayのテーマは「マイクロサービス」でした。各チームに割り当てられたアカウント内で、マイクロサービスを活用してシステムのパフォーマンスを向上させ、GameDay運営からのリクエストを効率的に処理することがスコア獲得の鍵でした。
- スコア獲得のポイント
- GameDay運営からのリクエストを自チームのシステムで処理し続けることでスコアを獲得します。
- スコアを効率よく獲得するには、他チームのマイクロサービスを自チームのシステムバックエンドとして活用し、パフォーマンスを向上させることが重要です。
- 自チームのマイクロサービスが他チームに利用されることによってもスコアを獲得します。そのため、自チームのマイクロサービスを安定稼働させ、高いパフォーマンスを他チームにアピールして利用してもらうことが重要です。
- スコア減点の要因
- 自チームのマイクロサービスを自チームで使用すると、スコアが減点されます。
振り返り
イベント開始時に配布されるドキュメントをよく読み、できるだけ早くマイクロサービスをデプロイする必要がありました。マイクロサービスは、様々なAWSサービスを組み合わせて構成されており、これらのサービスに関する前提知識があると大きなアドバンテージとなります。
私たちのチームはマイクロサービスを手分けしてデプロイし、最初は3位ぐらいに位置していましたが、イベントの進行と共に続々とカオスが発生し、その原因を特定するのに手こずってしまい、最終的に16位でフィニッシュしました。時間は3時間半と長丁場ですが、発生するイベントが多く、時間が過ぎるのが結構早く感じました。
反省点
GameDayイベントを通じて、システムのトラブルシューティング(例えば、システムが正常に動作しない場合にログを確認し、原因を推測して問題を調査し解決する方法)は、今後の業務で活用できると感じています。反省点としては以下になります。
- ダッシュボードからスコアの履歴やマイクロサービスのパフォーマンスを確認し、異常があればCloudWatchでログをチェックしましたが、「障害は発生しているが、具体的に何がどこで起きているのかが不明」という状況に直面しました。ログを見ても、設定がどのように変更されたかを特定するのが難しく、多くの時間を費やしてしまいました。ログが増加すると重要なイベントが埋もれてしまって見つけるのが難しくなるので、早めにCloudTrailのイベント履歴をチェックすれば、原因の特定が早かったかなと思いました。
- ネットワーク周りの知識が不足していたため、原因の特定に苦労しました。ネットワークの構成を把握できていなかったので、図示して整理することで、問題の特定に早く気づけたかなと思いました。