SSM Automation Runbook “AWSSupport-AnalyzeEBSResourceUsage” をやってみた

SSM Automation Runbook “AWSSupport-AnalyzeEBSResourceUsage” をやってみた

2025.12.04

はじめに

テクニカルサポートの 片方 です。
AWS では特定の AWS リージョンで放棄された EBS ボリューム、AMI、スナップショットのリソース調査方法として、SSM Automation Runbook "AWSSupport-AnalyzeEBSResourceUsage" を提供しています。
この Runbook を使用すると以下の観点で調査を実施します。

  • 未使用の EBS ボリュームを探す(available 状態)
  • 元 EBS ボリュームが消えているスナップショットを探す
  • どの EC2 インスタンスからも使われていない AMI を探す

https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-analyze-ebs-resource-usage.html

やってみた

今回は、Runbook の実行時に レポート保存用の S3 バケットを自動作成する方法を使用します。
そのための事前準備として、S3 バケットの暗号化に利用する カスタマー管理型 KMS キー(CMK) をあらかじめ作成しておいてください。
作成した KMS キーの ARN は後の手順で指定するため、控えておいてください。
なお、オートメーションが開始されたリージョンに、AWS KMS キーで暗号化された <ユーザー指定の名前>-awssupport-YYYY-MM-DD という形式の名前の新しいバケットを作成されます。

1. SSM マネジメントコンソール画面へアクセス
2. 下部の左ペイン [共有リソース] セクションの ドキュメントをクリック
3. Amazon が所有を選択 ⇒ 検索窓に "AWSSupport-AnalyzeEBSResourceUsag" を記載

01

4. ドキュメントを選択
5. 右上 [オートメーションを実行する] を選択

02

6. Simple execution を選択
7. Input parameters (入力パラメータ) の CustomerManagedKmsKeyArn において、作成した KMS キーの ARN を記載します。

03

※ 当該設定をしている IAM ユーザーに ドキュメント 記載の権限許可が存在しない場合は、当該権限を有するロール作成をしてロールください。その後、AutomationAssumeRole に当該ロールを設定してください。

アタッチするポリシー例

        {
            "Version":"2012-10-17",		 	 	 
            "Statement": [{
                "Sid": "ReadOnlyPermissions",
                "Effect": "Allow",
                "Action": [
                    "ec2:DescribeImages",
                    "ec2:DescribeInstances",
                    "ec2:DescribeSnapshots",
                    "ec2:DescribeVolumes",
                    "ssm:DescribeAutomationExecutions"
                ],
                "Resource": "*"
            }, {
                "Sid": "KMSGeneratePermissions",
                "Effect": "Allow",
                "Action": ["kms:GenerateDataKey", "kms:Decrypt"],
                "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
            }, {
                "Sid": "S3ReadOnlyPermissions",
                "Effect": "Allow",
                "Action": [
                    "s3:GetBucketAcl",
                    "s3:GetBucketPolicyStatus",
                    "s3:GetBucketPublicAccessBlock",
                    "s3:ListBucket"
                ],
                "Resource": [
                    "arn:aws:s3:::amzn-s3-demo-bucket1",
                    "arn:aws:s3:::amzn-s3-demo-bucket2/"
                ]
            }, {
                "Sid": "S3CreatePermissions",
                "Effect": "Allow",
                "Action": [
                    "s3:CreateBucket",
                    "s3:PutObject",
                    "s3:PutBucketLogging",
                    "s3:PutBucketPolicy",
                    "s3:PutBucketPublicAccessBlock",
                    "s3:PutBucketTagging",
                    "s3:PutBucketVersioning",
                    "s3:PutEncryptionConfiguration"
                ],
                "Resource": "*"
            }]
        }

※ 適宜修正してください。

8. 右下の [Execute] をクリック

04

これで以上です。調査完了まで待ちましょう。
成功したので、S3 バケットの中身を確認します。

05

実行結果が記載されている CSV ファイルが保存されていました。

06

※ AMI に関する CSV ファイル中身
07

※ EBS スナップショットに関する CSV ファイル中身
08

この場合、snap-07dccb543b012498a がどの AMI にも関連しないこと (IsPartOfAmi = None) を確認できました。

まとめ

使用していない、EBS スナップショットや AMI の棚卸しに便利ですね。
本ブログが誰かの参考になれば幸いです。

参考資料

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。

この記事をシェアする

FacebookHatena blogX

関連記事