Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWSマネージドサービスのみで 障害対応の自動化
Search
Atsushi Satou
September 03, 2023
Technology
3.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSマネージドサービスのみで 障害対応の自動化
インフラ技術基礎勉強会 #4
https://infra365.connpass.com/event/286297/
Atsushi Satou
September 03, 2023
More Decks by Atsushi Satou
See All by Atsushi Satou
AWS ECSでサービス間通信についておさらい
atsuw0
1
150
図で理解するAWS Network Firewallのアーキテクチャ
atsuw0
0
500
CLIで構築した方が良いもの一覧.pdf
atsuw0
0
190
HCP Terraformを使ったら AWSやGCPの環境構築が捗った話
atsuw0
0
320
HashicorpCloudについて.pdf
atsuw0
0
39
HCP Terraform について
atsuw0
0
1.9k
HashicorpCloudについて.pdf
atsuw0
0
42
AWS サーバレス設計 Tips集
atsuw0
0
130
AWS re:Invent 2023 ストレージ EFSレプリケーションのフェイルバック機能を試してみた
atsuw0
0
440
Other Decks in Technology
See All in Technology
MCPを待つな、パスキーを拡げよう(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
330
指示待ちから変化に応じるClaude Codeへ!~環境からAgentへの帰り道を作る~
gotalab555
7
1.3k
顧客の要望は2次情報である 〜アンテナを張るFDEの構造論〜
noriakioji
4
990
AWS Blocks が楽しい #ゆるWeb札幌
tacck
PRO
0
170
IHV like なユースケースへのOpenID Connect 関連仕様の適用事例
optim
0
330
全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏
mtpooh
3
170
AIレビュー時代に必要なのは、SLOで引く撤退ライン
nobuoooo
0
150
会計事務所と顧問先の契約関係をOIDC・OAuthで表現する
terara
0
470
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
460
dbt in Microsoft Fabric
ryomaru0825
0
290
AWSとGitHub Actionsの責任境界と 組織で安全に使用する取り組み
nealle
0
200
8bit CPU 2026
koba789
7
2.9k
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
500
Are puppies a ranking factor?
jonoalderson
2
3.8k
Writing Fast Ruby
sferik
630
63k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
65
57k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
210
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
560
Believing is Seeing
oripsolob
1
200
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
The Spectacular Lies of Maps
axbom
PRO
1
950
Transcript
AWSマネージドサービスのみで 障害対応の自動化 インフラ技術基礎勉強会 #4 https://infra365.connpass.com/event/286297/ Sato Atsushi
自己紹介 名前: 佐藤 淳 ( Atsushi Sato ) 会社: アイレット株式会社
クラウドインテグレーション 所属 Qiita: https://qiita.com/atw0_0w 好きなAWSサービス: Systems Manager, Lambda, CDK (主に自動化やIaC周り) 2023 Japan AWS All Certifications Engineers 2
アジェンダ 1. 障害対応に必要なもの 2. インシデント管理とは? 3. デモ環境構築 4. 障害デモンストレーション 5.
まとめ 6. 終わりに 付録: 対応プラン作成 3
障害対応の自動化に必要なものとそれを解決する AWSサービス - 障害のあるメトリクスを検知したい → CloudWatch Alarm - 障害があったら通知したい →
AWS Chatbot - 復旧コマンドをテンプレート化 → SSM Document - 復旧コマンドを実行 → SSM Automation - インシデント管理をしたい → SSM Incident Manager 上記AWSマネージドサービスを使用してインシデント管理する方法について解説 1. 障害対応に必要なもの 4
2. インシデント管理とは? Q. インシデント管理とは? A. サービスの中断または停止時に、原因の調査 /対応手順/復旧結果/意思決定などを時 系列に沿って記録/管理するもの。 > 参考
… https://www.atlassian.com/ja/incident-management 5
Q. インシデント管理の目的 A. 障害によるサービス品質の低下を防ぐこと そのためには。。。 →「 誰が,いつ,どのような対応をしたか」や「成功/失敗したか」,「分析結果」,「意思決定」を記録。 → インシデント対応プロセスに則って、対応しているか。 >
https://www.atlassian.com/ja/incident-management/incident-response → ランブックを設定して、一次対応など障害対応の自動化ができているか。 > https://www.atlassian.com/ja/incident-management/incident-response/how-to-create-an-incident-response-playbook#incident-response-lifecycle → オンコール体制は整備されているか。 > https://www.atlassian.com/ja/incident-management/on-call 6
Q. AWSでインシデント管理できるマネージドサービスはある? A. SSM Incident Managerがある!! AWS マネージドサービスだけで全て解決できる !! →
「対応プラン」で解決 → 「対応プラン」内からSSM Automationを実行 → 「エスカレーションプラン」と「オンコールスケ ジューリング」で解決 → インシデント管理 7
Incident Manager用語集 機能名 解説 対応プラン インシデント発行時のテンプレートのようなもの。 ランブック(SSM Automation)やコラボレーション(Chatbotへの通知)、オンコール体制(エスカ レーションプランなどを定義。 CloudWatch
AlarmやEventBridgeのアクションとして呼び出される。 エスカレーション プラン 「連絡先」や「オンコールスケジューリング」で設定した連絡先へ、エスカレーションの順番を設 定。 オンコール スケジューリング 「連絡先」で設定したコンタクト情報のシフト表を作成。 連絡先 電話、SMS、Eメールなどのコンタクト情報を登録。 インシデント発生時オンコールされる。 設定 インシデントを実行するリージョン (レプリケーションセット )を選択。 選択したリージョンで共通のインシデント管理、対応プランの実行が可能。 8
インシデント発行時の流れになります。 9
3. デモ環境構築 今回デモで実施するリソースは以下の通り . - EC2(AmazonLinux2023) - CloudWatch Agent 10
今回デモで実施する監視項目は以下の通りとする。 AWSサービス 監視項目 監視メトリクス アラーム条件 ランブック 内容 EC2 CPU使用率 CPUUtilizations
> 90 % vmstatコマンドで確認 インスタンス障害 StatusCheckFailed_Instance > 0 EC2の再起動 CloudWatch Agent プロセス数監視 (CWAgentのプロセス名) <= 0 プロセス再起動 CloudWatch Alarm 11
Incident Manager 対応プランの作成 本当はAWSサービス(EC2, RDS, etc ...)、影響度(重大, 高, 中, 低,
..)ごとに対応プランを作ったほうがいい。。 ↓ ただし、対応プラン1個につき月額で 7 USD > https://aws.amazon.com/jp/systems-manager/pricing/#Incident_Manager (流石に個人で検証するにはちょっと、、、 ) ↓ 今回は、1個の対応プランでEC2とCloudWatch Agent の復旧用のランブックを実施 12
1個の対応プランでEC2とCloudWatch Agent の復旧用のランブック(↓もしよければGitHub参考にmm) https://github.com/atsw0q0/aws_ssm_documents_templates/blob/0243f6ef3cc1f8d142f40cd67c4af7b0521a3c7a/template s/ssm-im/lt_20230903/im_runbook.yaml 13
4. 障害デモンストレーション 14 AWSサービス 監視項目 監視メトリクス アラート発生コマンド EC2 CPU使用率 CPUUtilizations
$ yes > /dev/null インスタンス障害 StatusCheckFailed_Instance $ networkctl down 「リンク名」 CloudWatch Agent プロセス数監視 (CWAgentのプロセス名) $ systemctl stop 「プロセス名」 以下のコマンドを実行し、 CloudWatch Alarmをアラート状態にする。
インシデント 画面 15
インシデント クローズ画面 16
メトリクス、タイムラインも確認可 17
Slack画面 ← インシデント作成 ← OpsItems追加 ← オンコール ← インシデント クローズ
18
インシデント分析 ← OpsItems追加 ← オンコール ← インシデント クローズ 19
5. まとめ 【便利なところ】 - インシデント起票〜復旧までを自動化。 - 24h365dの運用体制をスケジューリングできる。 - 画面ぽちぽちで簡単にセットアップすることができた。 (付録
参考) 【不便なところ】 - 対応プランでの細かい制御ができない。 - オートリゾルブ機能 - 復旧した場合、オンコールしないなどの条件分岐 20
ご清聴ありがとうございました
付録: 対応プラン作成 GUIでIncident Manager 対応プランを簡単に構築するこ とができる。 インシデントタイトル名の設定。デフォルトでは タイトル名 [ CWAlarm名]
となる 22
チャットチャネルには、 AWS Chatbotのチャンネル名を指定する 23
エンゲージメントには、 事前にアクティベートした連絡先 を指定する 24
ランブックの作成 ・AWS Document「test-im-runbook」を指定。 「test-im-runbook」は以下のリンクを参照。 ・SSM Document上で使用するパラメータ 「IncidentRecordArn」では「インシデントArn」を指定するこ とで、適宜自動生成された Arnがパラメータ値に代入され る。
25 https://github.com/atsw0q0/aws_ssm_documents_templates/blob/0243f6ef3cc1f8d142f40cd67c4af7b0521a3c7a/template s/ssm-im/lt_20230903/im_runbook.yaml
続き ・Automation実行用のロールのパラメータ 「AutomationAssumeRole」のロールは 新規で作成する。 ・ランブックを実行するロールも新規で作成する。 ・ロール「test-role-im-runbook-assume-role」にはAWS Documentを実行する上で必要なロールを右のポリシー意外に も追加。 (EC2ReadOnlyAccessなど) 以上で対応プランの出来上がり
!! 26