本記事は、サムザップ Advent Calendar 2019 #1 の12/5の記事です。
はじめに
2019/12/1〜12/6の間、ラスベガスで開催されていたAWS re:Invent2019に参加してきました。
この記事では参加したセッションの中から、クラウド環境でのオペレーションの自動化に関するワークショップ「Intelligently automating cloud operations」の紹介をします。ワークショップというのは一般的な講義形式のセッションとは異なり、自分で手を動かして学習するセッションのことです。
ワークショップについて
-
各テーブル6〜7名、x 20テーブルくらい
-
ワークショップ全体の時間は2〜3時間
-
用意された復数の課題を様々なAWSサービスを使って解決していく
-
各課題に取り組む前に10分程度の講義がある
-
講義後に共有されるドキュメントに従って作業を進めていく
-
ワークショップで使うAWSアカウントは運営側で用意してくれた
-
作業用のノートPCは各自持ち込み
-
作業中の不明点は会場にいる運営メンバーか、同じテーブルの人に相談する
-
お互いの詰まったところを助け合う以外に複数人での作業はなく、ほぼ個人作業
参加するワークショップによっては自分でAWSアカウントを用意する必要があったり、
個人ではなくチームで課題に取り組むなどの違いがあるようです。
ワークショップでやったこと
用意された以下3つの課題を進めました。
AWS HEALTH ABUSE EVENTS
管理しているEC2インスタンスがDoS攻撃を受けているシーンを想定。
AWS Personal Health Dashboardに届いたインシデント報告をCloudWatch Eventsで検出し、Lambdaを使ってSNS経由でSMSを送信しつつ、攻撃を受けているEC2インスタンスの停止アクションの自動実行を実装しました。
Automatic Region Failover
マルチリージョン(us-east-1,2)で動いているシステム。各リージョンにNLBがあり、Webサーバが復数台ぶらさっている構成で片方のリージョン(us-east-1)のトラフィックパターンに異常が発生したシーンを想定。
クロスリージョンフェイルオーバーのオペレーション自動化はこんな感じの流れでした。
- CloudWatchのCanaryResponseTimeメトリックでAnomaly Detectionを有効にする
- CloudWatchアラームを作成し、事前に作成済のSNSをターゲットに指定する
- lambdaにクロスリージョンフェイルオーバーさせる関数を追記する
- 意図的にトラフィック異常を発生させるためのSSMドキュメントを作成する
- tcコマンドでレイテンシ遅延を発生させる処理が書かれていた
- SSMのRunコマンドでus-east-1のインスタンスにレイテンシ遅延を発生させる
- しばらく経過するとCloudWatchがアラーム状態に変化する
- Lambdaが作動して、トラフィックがus-east-1からus-east-2に切り替わる
このシナリオではNLB + Webサーバのシンプルな構成だったけど、データストアを含む構成だと実環境に近くてもっと面白そうです。あとは地味にtcコマンドが便利なので社内の障害試験で今後使っていきたいです。
AUTOMATED EBS USAGE FORECAST AND LIMIT INCREASES
AWSアカウント内にあるすべてのEBSボリューム数を自動集計し、AmazonForecastでデータセットを作って、今後の使用量を予測する。更にEBSの制限緩和も自動化する。みたいなシナリオで面白そうだったんですが、ここまでの2つの課題で結構時間を使ってしまって最後まで進められませんでした...
最後に
DoS攻撃を受けたときやリージョン障害が起きたときに限らず、何か問題が発生したときに行う作業が決まっているのであれば、オペミス防止や復旧時間を短縮するためにも自動化すべきだと思いました。サムザップでも今後更に自動化を進めていきます。
明日は @leosuke さんの記事です。