AWS Systems Manager Change Manager とは何か

記事タイトルとURLをコピーする

SRE部 佐竹です。
本日は現在開催中の re:Invent2020 から、AWS Systems Manager の新機能 Change Manager について記載します。

はじめに

AWS Systems Manager Change Manager は re:Invent 期間中にこれまで発表されてきた SSM(AWS Systems Manager)の新機能の1つです。

現在、以下の3つが SSM の新機能としてリリースされています。

  1. Application Manager
  2. Change Manager
  3. Fleet Manager

今回は、Change Manager にフォーカスします。

本ブログでは Change Manager とは何か、という大きな枠での説明をします。技術的な検証については本ブログでは取り扱いません点、ご了承ください。

Change Manager が必要になる背景

f:id:swx-satake:20201216233650p:plain

ここ数年、AWS 含め IT の分野は過去例をみない勢いで進化しています。進化するということは、変化するということです。AWS 上に存在する全てのリソースは日々多くの変更が行われます。例えば DevOps における Continuous delivery がそれに当たります。

これらの変更を AWS の管理者は管理・把握しなければなりません。

そして AWS における変更管理と言えば「AWS CloudTrail」と「AWS Config」を組み合わせた証跡管理があります。

  • AWS CloudTrail :監査を目的に、AWS上で実行されたオペレーションの全API実行履歴を提供します
  • AWS Config:特定リソースの変更履歴を継続してモニタリングすることで、その変更をタイムラインで閲覧できます

これらの組み合わせはベストプラクティスとされており、AWSのアカウントを払い出されるとすぐに有効化されるお客様が大半です。

しかしこれらの証跡管理には1つ不足しているものがあります。

それは「過去それらが実行されたという事実」のみを提供している、ということです。そこには「それに至った経緯やストーリー」はありません。

変更の経緯、つまり誰がそれを依頼し、誰がそれを承認したのか。何故その依頼を出すに至ったのか…。これら「変更管理プロセス(change management processes)」にはツールが必要です。

ただ変更があったという事実だけではなく、それに至った経緯を含めた変更履歴を管理する。それが Change Manager の役割です。

Change Manager の構成

f:id:swx-satake:20201217010530p:plain

Change Manager の構成を1枚で表してみました。各コンポーネントを簡単に説明します。

①Change Manager Template

f:id:swx-satake:20201217105645p:plain

Change Manager Template は変更依頼を行う元となるコンポーネントです。この設定における「Runbook」とは、実態はその先でつながっている Documents(Systems Manager Automation document)です。
※1つもしくは複数が予め指定可能です

Document とは、AWSにおける1つの操作を SSM から実行するために用意されている文書です。これはAWSが提供しているものを使うことができますが、自作も可能です。

f:id:swx-satake:20201217000717p:plain

AWSが提供している Document を一例としてご紹介しますと AWS-AttachEBSVolume , AWS-CreateImage , AWS-StartEC2Instance , AWSSupport-TroubleshootRDP 等があります。

話を簡単にするため今回は AWS-AttachEBSVolume を実行することができるテンプレートを作成するとします。このテンプレートを作成するにあたり「SNSの通知設定」や「承認は誰が行うのか」を指定します。そして、Runbook に AWS-AttachEBSVolume を指定します。

補足:テンプレートを作成し、それを利用するためには Change Manager 内でテンプレートのレビューが必要です

②変更リクエスト

f:id:swx-satake:20201217000906p:plain

変更のリクエストは「テンプレートを実行する」ことをその承認者に対して申請者が起票することを示します。

変更リクエストはまずテンプレートを指定し実行します。入力すべき項目欄には、経緯を記載することが可能な「Change request information」という項目も用意されています。

承認された後に実行される処理は「承認された後ASAPで実行」「承認された後スケジュールで実行」が選択可能です。

Runbook parameters として、Instance ID や Volume ID が必要になりますが、これらはリクエスト内に記載します。

依頼されたリクエストは SNS により承認者へと通知され、それを合図に承認者はリクエストを承認します。問題なく承認フローが完了した場合はテンプレート=ドキュメントが実行され AWS-AttachEBSVolume が動作します。

そして、変更リクエストで行われた一連の流れはその全履歴が記録され、タイムラインにて確認が可能です。

利用料金について

利用料金は、実行された「変更リクエスト数」と「それにより呼び出されたAPIリクエスト数」の2つからなります。

「変更リクエスト数」側が主たる課金となり、変更リクエストごと$0.296 が請求されます。後者は 1,000 リクエストあたり $0.039 です。

詳細については、価格ページを合わせてご確認ください。現時点では English 表示にすることで確認が可能です。

補足:Any new account to Change Manager can try the feature for 30 days at no additional cost in each supported region. とある通り、30日間の Free trial も用意されています。

まとめ

f:id:swx-satake:20201217003018p:plain:w150

今回の記事では AWS Systems Manager Change Manager についてそれが生まれた背景と、機能の大枠を説明しました。

「AWS CloudTrail」と「AWS Config」を組み合わせただけではそれが実行された経緯は不明です。その変更の証跡として先の2つのサービスでは十分ではないというケースに有効活用ができそうです。

なお、運用開始に至るには承認フロー含めた運用設計やドキュメントの整備が必要でしょう。検証と準備には多くの工数をかける必要がある点には少し注意しておきたいと感じます。

AWS Systems Manager Change Managerは、東京リージョンを含めた全リージョン(中国を除く)で利用可能です。興味のある方は一度マネジメントコンソールから機能に触れてみてください。

ではまたお会いしましょう。

佐竹 陽一 (Yoichi Satake) 記事一覧はコチラ

SRE3課所属。AWS資格12冠。2010年1月からAWSを利用してきました。
AWSのコスト削減、最適化を得意としています。