ちょっと話題の記事

[新機能] Systems Manager OpsCenter がリリースされました!

2019.06.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは 園部です。

とある先輩が 「OpsCenter?」 つぶやいたのが気になり調べたところ
Sysmtes Manager に新しい機能が追加されていることがわかったので、やってみます!


Document History

同じタイミングで、コンソール画面ナビゲーションの配置が少し変更になったようです。

Systems Manager OpsCenter とは?

公式ドキュメントより一部抜粋した内容は以下の通りです。

OpsCenter provides a central location where operations engineers and IT professionals can view, investigate, and resolve operational work items (OpsItems) related to AWS resources.
(省略)
This Systems Manager capability aggregates and standardizes OpsItems across services while providing contextual investigation data about each OpsItem, related OpsItems, and related resources. OpsCenter also provides Systems Manager Automation documents (runbooks) that you can use to quickly resolve issues.You can specify searchable, custom data for each OpsItem.You can also view automatically-generated summary reports about OpsItems by status and source.

OpsCenterは 「OpsItems(運用対象)」 を集中的に管理して、リソースの状況変化を表示・調査・解決する場所である、そして OpsItemsの関連付けやSSM Automation documents の実行、データ検索、要約レポート を提供するサービスのようです。

OpsCenter is integrated with Amazon CloudWatch Events. This means you can create CloudWatch Events rules that automatically create OpsItems for any AWS service that publishes events to CloudWatch Events.

CloudWatch Events(以降、CWE) と連携して OpsItems を作成することが可能なようです。
CWEで自動・手動作成以外にも、任意のものをOpsItemsとして追加することも可能です。

OpsItems として対象としたAWS リソースをSSM OpsCenter で表示し、SSM Automation を利用して復旧することやリソースを関連づけで原因調査、ステータスによるインシデント管理やナレッジを蓄積・検索したり、簡易レポートを表示することが出来る。

つまり、運用の味方のようです。(公式見解ではなく個人の主観です。)

やってみる

1. IAM 作成

CWEからOpsItemsを登録するために公式ドキュメント に沿って、IAMポリシーとロールを作成します。

1-1. IAM ポリシー

名称: OpsCenter-CWE-Policy
ポリシー:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ssm:CreateOpsItem",
            "Resource": "*"
        }
    ]
}

1-2. IAM ロール

名称: OpsItem-CWE-Role
信頼関係: CWE
権限: 1-1. で作成したポリシーをアタッチ

2. OpsItems 登録

OpsItems の登録方法は大きく三つあります。それぞれをやってみます。

  • AWSが用意したOpsCenter用CWEルールを利用して登録(CWE 自動登録)
  • 利用者がCWEルールを設定して登録(CWE 手動登録)
  • コンソールやCLIをからOpsCenterに直接登録(OpsCenter 直接登録)

AWS Systems Manager >>> OpsCenter >>> Get started を選択

2-1. CWE 自動登録

AWSが用意したOpsCenter用CWEルールを利用して登録していきます。

AWS Service Event
Amazon EC2 Instance State Change (Stopped, Terminated)
Amazon EC2 SSM Maintenance Window Execution (Failed, Timed Out)
Amazon EBS Snapshot Notification (Copy, Create, Share, Failed)
Amazon EC2 Auto Scaling EC2 Instance (Launch Unsuccessful, Termination Unsuccessful)
AWS Health Amazon Relational Database Service (RDS) Maintenance Scheduled
AWS Health RDS Issue Notification (example: RDS Connectivity Issue)
AWS Health EC2 Maintenance Scheduled
AWS Health EC2 Issue Notification (example: Instance Auto Recovery Failure)
AWS Health EBS Issue Notification (example: Degraded EBS Volume Performance)

先ほど 1-2. で作成した IAM ロールの ARN を入力して、 Create basic Opsitem rules を選択

CloudWatch >>> イベント >>> ルール を選択
こちらに新しく SSMOpsItems-* で始まるルールが作成されます。

2-2. CWE 手動登録編

CloudWatch >>> イベント >>> ルール >>> ルールの作成を選択
イベントソースには任意のものを指定します。(今回は、RDS DB instance Event)
ターゲットに、今回追加となった SSM OpsItem を選択し、1-2. で作成した IAM ロールを選択

あとは名称と説明を入力します。(特に制限はありませんが、名称は自動の場合と揃えると管理しやすいかと)

2-3. OpsCenter 手動登録編

AWS Systems Manager >>> OpsCenter >>> OpsItems >>> Create OpsItem を選択

OpsItem details の各項目を入力

Related resources >>> Add を選択

ここで、OpsCenterがサポートする リソース から入力(今回は、 CloudWatch アラーム)

Create OpsItem を選択

3. リソース状況変更

それでは、準備が整いましたので、実際リソースに変化を起こして、OpsCenterを確認していきます。

今回、 OpsItemsを登録したパターンごとに以下のリソースで変化を起こします。 (作業手順は割愛します)

OpsItmes 登録方法 対象リソース 操作
CWE自動登録 EC2 インスタンスを停止
CWE手動登録 RDS インスタンスを停止
OpsCenter直接登録 EC2 StatusCheckFailed Alerm 作成とアラーム状態への遷移

リソースの状況が変化すると表示されます。

対象リソースを選択すると詳細を見ることが出来ます。
まずはステータスを Open >>> In progress へ変更
Related resources に対象リソースが表示されます。詳細を確認することや Run Commands を実行することも出来ます。

続いて、Runbooks ではSSM Automation documents が表示されています。
Associated とマークがあるものは状況に関連がある document を示しています。

Operational data では Mange を選択

Key と Value の形式で情報を残すこととのちに検索対象とするかを設定することが出来ます。

このリソース以外に同じ原因や関連しているOpsItemを紐づけることが出来ます。

対象リソース情報が詳細に表示されています。
こちらを見れば EC2コンソールに移動しなくても大まかな内容は把握出来そうです。

4. 復旧対応(SSM Automaiton実行)

先ほど見ていたEC2を対象に SSM Automation を利用して 停止 >>> 起動 させ復旧します。

Related resources >>> Run automation >>> AWS-RestartEC2Instance を選択
OpsItem 作成時の設定で紐づいている automation が表示されます。

この方法では、インスタンスIDが引き渡されているため Execute を選択

もし、マッチするものがなければ Runbooks から任意のものを選択し、Execute を選択
この場合は、インスタンスIDなどの情報は引き継がれないため必要な情報を入力 >>> Execute を選択

しばらくすると Automation が成功して、起動します。

5. クローズ対応

OpsCenterの方では、ステータスを自動的に変更はされません。そのため、対応が完了したものについては
先ほどの「 Operational data 」 に原因や対応を入力したのちに、ステータスを変更します。

入力した内容は検索することが可能です。
(類似する事象を検索するなどのケースで有用そうです。先ほど、Cause: AWS Host Failure を入力)

料金

料金については、AWS公式サイト内の 料金ページ に記載がされています。(現時点では英語のみ)
サイト内で試算例も記載されています。

課金対象としては以下の2つとなります。(使っただけの従量課金)

  • Number of OpsItems
  • Get, Describe, Update, and GetOpsSummary API requests

ガイドラインの推奨

公式ドキュメント 内でも推奨されておりますが、OpsCenterを組織・チームで利用される際は、一定のお約束を作成する方が良いと感じました。

OpsCenterでも関連するリソースや重複排除など工夫が施されていますが、素のまま大量リソースで利用を開始すると難しい部分があるかもしれません。
そのため、対応表や新規追加時の規則等のお約束を設けるなどをすると良い効果的に利用が出来そうだと思います。

さいごに

今回も利用できるシーンが多そうな機能が登場してきました!!
Systems Manager いいですよね〜