[レポート] 効率性を解き放つ: インシデントの修復をローコードで自動化 #COP403 #AWSreInvent

2023.12.20

アノテーション テクニカルサポートの川崎です。

本記事は AWS re:Invent 2023 のセッションレポートとなります。

今回は、コードトークのセッションに参加しましたので、セッションレポートをお届けします。

概要

Performing operations as code, a design principle recommended by the AWS Well-Architected Framework, can help organizations perform operations more efficiently, limit human error, and achieve predictable results. In this code talk, learn how to implement operations as code. Also, find out how to automate remediations for non-compliant resources in AWS Config and Amazon CloudWatch alarms and incidents using Automation, a capability of AWS Systems Manager.

[機械翻訳] AWS Well-Architected Frameworkが推奨する設計原則である、Operations as Code (運用のコード化) を実行することは、組織がより効率的にオペレーションを実行し、ヒューマンエラーを制限し、予測可能な結果を達成するのに役立ちます。このコードトークでは、Operations as Code を実装する方法を学びます。また、AWS Systems Managerの機能であるAutomationを使用して、AWS ConfigとAmazon CloudWatchのアラームとインシデントの非準拠リソースの修復を自動化する方法についても説明します。

アジェンダ

  • アジェンダ
    • 問題
    • 実装
      • 準備: インシデントに備える方法
      • ビルド: JSON/ローコード runbook オーサリングを使用して修復をビルドする方法
      • 修復: runbook を使用してインシデントを修復する方法
    • お持ち帰りいただく内容

問題

MTTR (平均復旧時間)を削減しながら、安全性を維持する、 この微妙なバランスをどのように達成すればよいでしょうか。 答えは「Operations as Code(運用のコード化)」です。

AWSのお客様は 4つのシンプルな理由で、 AWS Systems Manager Automation を利用した自動化を非常に気に入っています。

まず 1つ目に、MTTR の削減に役立ちます。 調査の 1 つは、自動化を実装することで応答時間の MTTR を最大 85% 削減できることを示唆しています。 (SOAR: Security Orchestration, Automation and Response)

2つ目に、 セキュリティとアジリティ(俊敏性)の間で維持しようとしているバランスを検討しました。 自動化は、そのバランスを達成するのに役立ちます。 自動化には、レート制御、脆弱性スキャンなどが含まれており、そのプロセスでセキュリティが侵害されていないことを確認します。

3つ目は、運用のスケールとプロセスのスケールに合わせて、使用しているプロセスもスケールし、自動化がその拡張性を支援することを確認する必要があります。

そして最後4つ目に、 専門の DevOps エンジニアが繰り返し発生する問題や共通の部分に時間を費やしたくない場合は、専門の DevOps エンジニアが実際に革新と高品質の作業に時間を費やせるようにしたいと考えています。 したがって、適切な runbook を構築してジュニアエンジニアに提供するタスクを委任することが重要であり、コスト削減にも役立ちます。実際、AWS ではサポートの自動化を実装することで私たち自身も多額の費用を節約できました。

  • AWS Systems Manager Automation
    • runbook とは
    • すぐに利用できる runbook にはどのようなものがあるか
    • ビジュアル デザイナーを使用した runbook の構築 (新規リリース)
    • 自動化 runbook を実行する

実装

インシデント修復のための3つのステップ

  • 準備
  • ビルド
  • 修復

準備: インシデントに備える方法

インシデント修復を自動化するための準備が重要です。問題が発生する可能性を予測し、役割や責任に合わせた適切な監視方法を理解し実装する必要があります。例えば、サービスの可用性を管理する場合はCloudWatchアラームで、コンプライアンス責任がある場合は設定逸脱を確実に処理する必要があります。セキュリティ上の問題を認識し自動修復に役立てるために、インシデントへの迅速な対応が推奨されます。監視すべき重要なメトリクスの把握と適切なアラーム設定が、より大きなインシデントを未然に防ぐために不可欠です。

ビルド: JSON/ローコード runbook オーサリングを使用して修復をビルドする方法

runbookは、特定のインシデントやタスクに対処するための手順書です。実際のインシデントに基づいたサンプルとして、インスタンスのCPU使用率が高くなった場合の対処方法が示されています。runbookの作成はシステムマネージャーのページから始め、自動化をクリックして実行します。runbookはパラメータを受け取り、それに基づいてインスタンスのサイズを変更する方法を示します。さらに、分岐とループを使ったより高度なフローの作成や、AWSのさまざまなサービスとの統合が可能であること、特定の API が利用できます。runbookには説明とパラメータが含まれ、視覚的なビルダーを使用してエラーを修正しながら構築します。また、いくつかのアサート操作やAPI呼び出し、マネージャーや財務チームなどの外部の承認が必要な場合も含まれています。

修復: runbook を使用してインシデントを修復する方法

runbookを利用し、インシデントを自動修復する方法を説明します。作成したrunbookはAWSのARNリソースとして、IAMユーザーのアクセス権制御下で実行できます。クラウド監視イベントやアラーム状態になった際には、自動化してrunbookをトリガーすることで対応し、必要に応じて複数のrunbookに分割して処理を行うことが可能です。VPC内リソースへもアクセス可能です。システムマネージャーオートメーションを使って目的のドキュメントを選択し、イベントからのデータをrunbookのパラメータにマッピングすることで、真に自動化された修復プロセスを実現することができます。さらに、カスタムスクリプトを利用して問題が発生した際に自動的にジラチケットを作成するなど、様々なシナリオに対応するrunbookの作成が可能です。すべてのrunbookはGitHubで公開されており、組織内の運用やインシデント対応に役立てられます。また、システムマネージャーやインシデントマネージャーとの統合が可能で、操作に関してはPythonやbashスクリプトも実行できます。

お持ち帰りいただく内容

  • お持ち帰りいただく内容
    • MTTR を削減し、セキュリティを維持することはチャレンジです。 AWS Systems Manager Automation は、この 2 つのバランスをとるのに役立ちます
    • 準備: 何を監視するかを理解する
    • ビルド: 既存の runbook を活用するか、カスタム runbook をビルドします
    • 修復: チームが問題を迅速に解決できるようにします

所感

MTTR (平均修復時間)の削減はシステム運用における重要な指標の一つであり、システムの可用性と信頼性を高めるために不可欠です。 AWS Systems Manager Automation を使うことで、それを支援する「Operations as Code」のアプローチがかなり効果的だと感じました。

自動化によって 最大 85% のMTTR削減が見込めるというデータは非常に印象的です。 セキュリティとアジリティ(俊敏性)のバランスも同時に維持できるということは、 クラウドインフラストラクチャ運用の理想を体現していると思います。

AWS Systems Manager Automationを活用することで、よりスムーズかつセキュリティに配慮したインフラ運用が実現可能であり、これらの自動化するプラクティスは今後更に重要になるだろうと感じました。