AWS Support Automation Workflows(SAW)Runbook が 70個に増えていた! とっておきの SAW と出会えるかもしれない!

2023.06.14

以前、下記のブログ記事でも取り上げた AWS Support Automation Workflows (以下、SAW) について、ひょんなことから久しぶりに AWS Systems Manager(以下、SSM) から確認してみると見知らぬドキュメントも存在していたので、まとめることにしました。

SAW とは?

SAW とは何かについては、AWS公式ページ&ドキュメントで紹介されているため、抜粋して紹介します。

AWS サポート自動化ワークフローは、厳選された AWS Systems Manager セルフサービス自動化ランブックのコレクションです。 これらのランブックは、お客様の問題を解決して得たベストプラクティスを基に、AWS サポートエンジニアリングによって作成されています。 これにより、AWS リソースに関する一般的な問題のトラブルシューティング、診断、修正が可能になります。

引用元: https://aws.amazon.com/jp/premiumsupport/technology/saw/

サポートオートメーションワークフロー (SAW) は、AWS Support チームによって作成および保守されるオートメーションランブックです。このランブックは、AWS リソースに関する一般的な問題のトラブルシューティング、ネットワーク問題のプロアクティブなモニタリングと特定、ログの収集と分析などを支援します。

SAW ランブックは、AWSSupport プレフィックスを使用します。例えば、AWSSupport-ActivateWindowsWithAmazonLicense です。 さらに、AWS エンタープライズおよびビジネスサポートのお客様は、AWSPremiumSupport プレフィックスを使用するランブックにもアクセスできます。例えば、AWSPremiumSupport-TroubleshootEC2DiskUsage です。

引用元: https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/automation-tutorial-support-runbooks.html

AWS を利用する中で、発生し得る(実際に発生して解決された実績をもとに)トラブルシューティングや運用を想定した内容を AWS サポートチームが SSM ドキュメント としてユーザー自身が利用できる形で提供しているものになります。

利用条件

先の引用にも記載がある通り、利用に際して幾つかの条件があります。

  • 仕組み上 SSM の利用が前提

Runbook によっては対象リソースが SSM マネージドインスタンスに登録されていることが前提となっているものもあります。


引用元:https://aws.amazon.com/jp/premiumsupport/technology/saw/

  • AWS サポートプランによって、利用可能なドキュメントが異なる

AWSSupport から始まるドキュメント: プランに左右されない
AWSPremiumSupport から始まるドキュメント: ビジネスサポート以上の契約が必要となります


引用元:https://aws.amazon.com/jp/premiumsupport/plans/?nc=sn&loc=1

検索方法

良いドキュメントはないかな?と確認する際には、3つの確認方法があります。(他にもあるかもしれない)

  • マネジメントコンソールから探す

AWS Systems Manager >>> ドキュメント >>> 下記条件で検索すると、該当一覧が取得できます。選択すると詳細が確認可能です。

ドキュメント名のプレフィックス: Equals: AWSSupportドキュメント名のプレフィックス: Equals: AWSPremiumSupport

  • AWS Document から探す

Systems Manager Automation runbook referenceで、利用したい AWS サービスカテゴリ内を確認していくことで、SAW ドキュメントを見つけることが出来ます。

  • AWS CLI から探す

ssm list-documents でドキュメント一覧が取得可能です。個別ドキュメント内容を確認するには、 ssm describe-document を実行します。

SAW Runbook 一覧

現時点(2023/06/13)で、実に70個の Runbook が用意されています。
ドキュメントを引用したり、私見も交えながら、一覧にしてみました。

名称(ドキュメントリンク付き) 概要
AWSPremiumSupport-ChangeInstanceTypeIntelToAMD Intel 対応から AMD 対応のインスタンスタイプへの変更を検証及び実行します。DryRun オプションで、事前に移行候補リスト作成にも使えそうです。
[関連情報]
How can I use a SAW runbook to change Intel-powered EC2 instances to the equivalent AMD-powered instance types?
AWSPremiumSupport-CollectAWSGlueMetadata AWS TAM より提供されている AWS Glue Operational Review に必要なデータを収集します。
AWSPremiumSupport-DiagnoseDiskUsageOnLinux EBS 使用状況と容量拡張が可能かを確認します。
AWSPremiumSupport-DiagnoseDiskUsageOnWindows 同上
AWSPremiumSupport-ExtendVolumesOnLinux EBS スナップショット取得後に、ボリューム拡張実行します。ファイルシステムとして利用可能な状態まで実行されます。
AWSPremiumSupport-ExtendVolumesOnWindows 同上
AWSPremiumSupport-PostgreSQLWorkloadReview AWS TAM より提供されている Databases Operational Review に必要なデータを収集します。
AWSPremiumSupport-ResizeNitroInstance Nitro 基盤で稼働中インスタンスのインスタンスタイプ変更を実行します。インスタンスの状態や変更後の起動チェックや DryRun による事前チェックを実施することも出来ます。また複数台への同時に実行や定期的な自動実行のユースケースも想定されます。
AWSPremiumSupport-TroubleshootEC2DiskUsage ディスク容量に起因する障害等において 『AWSPremiumSupport-DiagnoseDiskUsage』『AWSPremiumSupport-ExtendVolumes』 を実行することで解消を期待し、実行します。
[関連情報]
空きディスク容量が不足しているときに、Amazon EC2 インスタンスで増加するボリュームを自動的に評価して修正する方法を教えてください。
AWSPremiumSupport-TroubleshootEKSCluster EKS クラスターに関する情報を収集し、一般的な問題を診断し、推奨される修復手順を提供します。
[関連情報]
クラスターを作成した後、Amazon EKS 環境でエラーをトラブルシューティングする方法を教えてください。
AWSSupport-ActivateWindowsWithAmazonLicense Amazon が提供するライセンスを利用して Windows Server のアクティベートを実行します。非マネージドインスタンス(オフライン)の場合には AWSSupport-StartEC2RescueWorkflow を実行します。
AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2 Reachability Analyzer を利用したサービスエンドポイントへの通信(経路、疎通性)を確認します。
[関連情報]
Support Automation Workflow (SAW) Runbook: Analyze connectivity to an AWS service endpoint
AWSSupport-AnalyzeEMRLogs EMR 実行時のログに対して、特定のエラーメッセージとパターンで検索を実行し、トラブルシューティングを支援します。
AWSSupport-CalculateEBSPerformanceMetrics CloudWatch をベースとした EBS パフォーマンスに関するデータを収集し、状況を可視化するための CloudWatch Dashboard を作成します。
[関連情報]
CloudWatch メトリクスを使用して EC2 インスタンスの EBS ボリュームがスループットまたは IOPS の制限に達しているかどうかを確認する方法を教えてください。
EBS のスループットパフォーマンスなどに関する調査方法を教えてください
AWSSupport-CheckAndMountEFS EFS へのマウント条件の確認とマウントを実行します。条件の確認(Check)のみも可能なため、マウントがされないの切り分けにも有用です。
[関連情報]
EFS ファイルシステムを EC2 インスタンスにマウントできないのはなぜですか?
AWSSupport-CheckXenToNitroMigrationRequirements Xen から Nitro への移行のための要件が満たされているかを確認します。
AWSSupport-CloneXenEC2InstanceAndMigrateToNitro Xen から Nitro への移行作業(チェック、検証、移行)を実行します。
AWSSupport-CollectAmazonConnectContactFlowLog 特定のコンタクトID及び時間帯におけるログを収集し、S3 へ保存します。
[関連情報]
Support Automation Workflow (SAW) Runbook: Collect Amazon Connect contact flow logs
AWSSupport-CollectECSInstanceLogs ECS で利用している EC2インスタンス内の OS および ECS 関連ログを収集し、S3 へ保管します。
[関連情報]
Amazon ECS コンテナインスタンスから自動的にログを収集するにはどうすればよいですか?
AWSSupport-CollectEKSInstanceLogs EKS で利用している EC2インスタンス内の OS および EKS 関連ログを収集し、S3 へ保管します。
[関連情報]
Amazon EKS インスタンスのログバンドルを生成する方法を教えてください。
AWSSupport-CollectElasticBeanstalkLogs Elastic Beanstalk で利用している Windows Server OS の EC2 インスタンスから Beanstalk 関連ログを収集し、S3 へ保管します。
[関連情報]
Elastic Beanstalk 環境の Windows インスタンスのログを収集する方法を教えてください。
AWSSupport-ConfigureDNSQueryLogging パブリックまたはリゾルバー DNS クエリログ(R53, VPC)を S3 や CloudWatch Logs へ保管を行う設定を実行します。
AWSSupport-ConfigureEC2Metadata IMDSv2 の強制やメタデータ取得の可否など IMDS に関する設定を行います。
[関連情報]
Systems Manager オートメーションを使用して、Amazon EC2 インスタンスからインスタンスメタデータにアクセスするために IMDSv2 のみを使用するように強制するにはどうすればよいですか?
AWSSupport-ConfigureTrafficMirroring ENI に対して Traffic Mirroring 設定を行います。
[関連情報]
Support Automation Workflow (SAW) Runbook: AWSSupport-ConfigureTrafficMirroring
AWSSupport-ConnectivityTroubleshooter VPC 内リソース間またはVPC 内リソースからインターネットリソースへの IPアドレスとポートを指定した疎通性の確認を実行します。
[関連情報]
Amazon VPC の使用中に発生した接続の問題をトラブルシューティングする方法を教えてください。
AWSSupport-CopyEC2Instance 既存 EC2 から異なるリージョンやサブネット(VPCやAZ)へコピーを作成します。
AWSSupport-EnableVPCFlowLogs 指定した ENI に対する VPC フローログを設定します。
AWSSupport-ExecuteEC2Rescue EC2Rescue ツールをインストールしたインスタンスを立ち上げ、接続に問題のあるインスタンスを診断及び修復を実行します。
[関連情報]
EC2Rescue を使用して Amazon EC2 Windows インスタンスの問題をトラブルシューティングするにはどうすればよいですか?
接続できなくなったEC2(Windows)のレジストリを修正してみる EC2Rescue編
AWSSupport-GrantPermissionsToIAMUser 請求とサポートに関する権限を付与した IAM グループを作成し、既存 IAM ユーザーを参加させることで、権限を付与します。
AWSSupport-ListEC2Resources 指定したリージョンに存在する EC2インスタンス、AMI、EBS、EIP、ENI、ELB、AutoScaling リソースを調査し、存在する場合に削除方法を添えて出力します。
[関連情報]
AWS から請求書を受け取り、その課金されているリソースが見つからないときはどうすればいいですか?
AWSSupport-ManageRDPSettings Windows Server への RDP 接続に必要な設定(ポート開放、NLA、機能有効化、ライセンス認証等)をチェック及び設定します。
AWSSupport-ManageWindowsService Windows Server で実行されているサービスに対して、停止、開始、再起動、一時停止、無効等を実行します。
[関連情報]
Support Automation Workflow (SAW) Runbook: AWSSupport-ManageWindowsService
AWSSupport-MigrateEC2ClassicToVPC EC2-Classic から VPC への移行をサポートします。対象インスタンスの AMI から VPC での起動テストと、対象インスタンスの停止までの2段階の指定が可能です。
[関連情報]
EC2-Classic インスタンスを、同じアカウントの同じリージョン内の VPC に移行するにはどうすればよいですか?
AWSSupport-MigrateXenToNitroLinux Xen から Nitro 基盤への移行をサポートします。クローンを作成し、検証を実行するタイプと検証後に既存インスタンスのルートボリュームを付け替えるタイプが提供されています。
[関連情報]
タイプを Nitro ベースのインスタンスタイプに変更した後、Linux インスタンスが起動しないのはなぜですか?
AWSSupport-ModifyEBSSnapshotPermission EBSスナップショットの共有を設定(パブリック、プライベート、アカウント間共有)します。ID やタグなどで複数を同時に実行出来るのがメリットです。
AWSSupport-ModifyRDSSnapshotPermission RDSスナップショットの共有を設定(パブリック、プライベート、アカウント間共有)します。
AWSSupport-RecoverWorkSpace 問題のある WorkSpace ID を指定して、再起動・リストア・再構築の順番でリカバリー処理を実行します。
AWSSupport-RecoverWorkSpaceWithApproval AWSSupport-RecoverWorkSpace の各リカバリー処理を実行する前に承認フローを追加します。
AWSSupport-RemediateLambdaS3Event AWSSupport-TroubleshootLambdaS3Event による調査と調査結果による修正を実行します。
AWSSupport-ResetAccess EC2Rescue ツールをインストールしたインスタンスを立ち上げ、パスワードリセットやキーペアの追加での AMI を作成します。
[関連情報]
最初の起動後に SSH キーペアを紛失した場合、Amazon EC2 インスタンスに接続するにはどうすればよいですか?
AWSSupport-ResetLinuxUserPassword Linux OS ユーザーに対してパスワード設定またはリセットを実行します。
AWSSupport-RestoreEC2InstanceFromSnapshot 対象インスタンスより AMI 取得後に、インスタンスを再作成します。また、InplaceSwap オプション指定することでコピー元インスタンスからルートボリュームを付け替えを実行します。
AWSSupport-RunEC2RescueForWindowsTool EC2Rescue for Windows を利用して、ResetAccess(パスワードリセット)、CollectLogs(OS ログ収集と S3 へ保管)、FixAll(ルートボリュームの修復) のいずれかを実行します。
AWSSupport-SendLogBundleToS3Bucket EC2Rescue ツールをインストールし、OS ログ収集と S3 へ保管を実行します。
[関連情報]
Support Automation Workflow (SAW) Runbook: Upload EC2 Rescue log bundle from the target instance to the specified Amazon S3 bucket
AWSSupport-SetupConfig AWS Config 設定とアグリゲーター設定を実行します。
AWSSupport-SetupIPMonitoringFromVPC モニタリング用インスタンスを起動し、対象IPアドレスに対して ping、MTR、traceroute、tracetcp によるテストを継続的に実行し、ネットワークのトラフィック傾向分析として記録します。
[関連情報]
インターネットゲートウェイまたは NAT ゲートウェイ経由で AWS からオンプレミスネットワークへのパケット損失とレイテンシーをモニタリングする方法を教えてください。
障害調査に備えてオンプレミスと AWS 間のネットワーク監視を行う方法を教えてください
AWSSupport-ShareRDSSnapshot 他 AWS アカウントと RDS スナップショットを共有するための設定を実行します。
[関連情報]
暗号化された Amazon RDS DB スナップショットを別のアカウントと共有する方法を教えてください。
AWSSupport-StartEC2RescueWorkflow ルートボリューム障害が疑われるインスタンスに対して、EC2Rescue ツールをインストールしたインスタンスを立ち上げ、一時的にルートボリュームをアタッチ、修復を実行、再度対象インスタンスへアタッチを行うことで、修復を試みます。
AWSSupport-TerminateIPMonitoringFromVPC 『AWSSupport-SetupIPMonitoringFromVPC』 で開始されたモニタリングを停止し、作成されたリソースを削除します。
AWSSupport-TroubleshootADConnectorConnectivity AD Connector に関する前提条件を確認し、検証用インスタンスを起動し、接続テストを実施します。
AWSSupport-TroubleshootCFNCustomResource CloudFormation でカスタムリソース作成時にエラーとなったケースで、その原因を調査します。
AWSSupport-TroubleshootCLBConnectivity CLB とインスタンス間の通信に関して、Connectivity、Best Practices、Troubleshooting Dashboard の3種類の調査・確認を実行します。
[関連情報]
Support Automation Workflow (SAW) Runbook: Troubleshoot Classic Load Balancer
AWSSupport-TroubleshootCloudWatchAgent インスタンスにインストールされた CloudWatch Agent に関する前提条件やログから正常性を調査します。
AWSSupport-TroubleshootCodeDeploy CodeDeploy からのデプロイに失敗したインスタンスに対して、原因を調査します。
[関連情報]
Amazon EC2 インスタンスでの CodeDeploy デプロイの失敗をトラブルシューティングする方法を教えてください。
AWSSupport-TroubleshootConnectivityToRDS インスタンスと RDS インスタンス間の接続の問題を診断
[関連情報]
Amazon RDS DB インスタンスに接続する際の問題を解決するにはどうすればよいですか?
AWSSupport-TroubleshootDirectoryTrust AWS Managed Microsoft AD と Microsoft Active Directory 間での信頼作成に問題があるケースで、通信上の問題を診断します。
[関連情報]
AWS Managed Microsoft AD と既存のオンプレミス AD ドメインの間に信頼関係を作成する方法を教えてください。
AWSSupport-TroubleshootECSContainerInstance EC2 ワーカーノードが ECS クラスターに参加できない原因(疎通、権限、バージョン等)を調査します。
[関連情報]
Amazon ECS または Amazon EC2 インスタンスがクラスターに参加できないのはなぜですか?
AWSSupport-TroubleshootECSTaskFailedToStart ECS タスクの開始に失敗した原因(疎通、権限、設定等)を調査します。
[関連情報]
How can I resolve the "CannotPullContainerError" error in my Amazon ECS EC2 Launch Type Task?
AWSSupport-TroubleshootEKSWorkerNode EC2 ワーカーノードが EKS クラスターに参加できない原因(疎通、権限、バージョン等)を調査します。
[関連情報]
Amazon EKS マネージドノードグループ作成の失敗をトラブルシューティングするにはどうすればよいですか?
AWSSupport-TroubleshootElasticBeanstalk Elastic Beanstalk のヘルスステータスが Degraded または Severe のケースで、関連リソース(ELB、EC2、VPC 等)の設定や状況を確認します。AWS サポートより情報提供用 S3 アップロード先を取得している場合は指定することで、ログを連携できます。
AWSSupport-TroubleshootLambdaInternetAccess VPC に起動された Lambda 関数のインターネットへの疎通に問題があるケースで、ターゲットIPとポートを指定してネットワークコンポーネントにおける原因を調査します。
[関連情報]
Systems Manager Automation を使用して Simple Storage Service (Amazon S3) イベント通知で Lambda 関数を呼び出す際の問題をトラブルシューティングするにはどうすればよいですか?
AWS Systems Manager を使用して Amazon VPC にある AWS Lambda 関数のインターネットアクセスの問題をトラブルシューティングするにはどうすればよいですか?
AWSSupport-TroubleshootLambdaS3Event S3 イベント通知を経由した Lambda 関数を実行されなかったケースに対して、原因調査(設定確認や検証)を実行します。
[関連情報]
Amazon S3 イベント通知が Lambda 関数を呼び出さないのはなぜですか?
Amazon S3 イベント通知を作成するときに「Unable to validate the following destination configurations」というエラーが表示されるのはなぜですか?
AWSSupport-TroubleshootManagedInstance SSM マネージドインスタンスへ登録されないケースで、前提となる条件と確認します。
[関連情報]
Systems Manager コンソールの [マネージドインスタンス] に EC2 インスタンスが表示されないのはなぜですか?
AWSSupport-TroubleshootRDP Windows Server への RDP 接続に必要な設定の状況確認または修正までを実行します。対象が SSM への接続がオフラインの場合は、EC2Rescue ツールをインストールしたインスタンスを立ち上げて実行します。
[関連情報]
RDP を使用して EC2 Windows インスタンスに接続する際の認証エラーをトラブルシューティングするにはどうすればよいですか?
AWSSupport-TroubleshootS3AccessSameAccount AWS アカウント内において特定の IAM リソースから S3 バケットまたはオブジェクト へのアクションをシュミレートし、意図せぬアクセス不可の原因調査を支援します。
[関連情報]
すべてのリソースが同じ AWS アカウントからのものである場合、Amazon S3 バケットからの 403 アクセス拒否エラーをトラブルシューティングする方法を教えてください。
AWSSupport-TroubleshootS3PublicRead パブリックな S3 オブジェクトへの読み取りアクセスに関する問題を診断します。
[関連情報]
パブリック読み取りアクセス権を持つ Amazon S3 バケットからの 403 アクセス拒否エラーをトラブルシューティングする方法を教えてください。
AWSSupport-TroubleshootSSH EC2Rescue ツールをインストールしたインスタンスを立ち上げ、SSH 接続に問題があるインスタンスへの調査または調査と修復を実行します。
[関連情報]
SSH を使用して EC2 インスタンスに接続しようとすると、エラーが発生します。AWSSupport-TroubleshootSSH オートメーションワークフローを使用して、SSH 接続の問題をトラブルシューティングする方法を教えてください。
AWSSupport-TroubleshootSUSERegistration 対象インスタンスが SUSE Update Infrastructure へ登録出来ないケースで、前提となる条件を満たしているかを確認した上で、再度登録を試みます。
[関連情報]
パッケージをインストールまたは更新できるように、SUSE を実行している EC2 インスタンスを SUSE 更新インフラストラクチャに登録できないのはなぜですか?
AWSSupport-TroubleshootSessionManager SSM Session Manager が利用出来ないケースで、利用要件(接続先インスタンス状態と設定、SSM Agent バージョンとログ、サービスエンドポイントとの疎通性)を確認します。
[関連情報]
AWS Systems Manager Session Manager の問題をトラブルシューティングする方法
AWSSupport-UpgradeWindowsAWSDrivers Windows Server に対して、各種 AWS ドライバー(AWS NVMe ドライバー、AWS PV ドライバー、AWS ENA ドライバー)の最新バージョンをインストールまたはアップグレードします。SSM の利用や直接的にインストール出来ないケース(オフライン)では、別インスタンスを起動し、インストールをサポートします。
[関連情報]
ドライバーのアップグレード後に、到達できない EC2 Windows インスタンス、または DNS に到達できない EC2 Windows インスタンスをトラブルシューティングするにはどうすればよいですか?

まとめ

こうして書き起こしみると SSM を利用した内容のため、EC2 に関連したものが多く、またトラブルシューティングのための情報収集やその設定、少し踏み込んだ切り分け調査を支援することを目的としたものがメインな印象を受けました。また一時的に EC2 インスタンスを起動するドキュメントもあるため、事前に内容を把握した上で、インシデント発生時のプレイブックに組み込むと、一貫性を持った対応が可能になるのではないかと思います。運用作業についても、部分的にでも利用したり、ベースとして自社にあったドキュメントにカスタマイズすることで、手動では負荷が高い作用の効率化を支援するようなドキュメントもありました。今後も増えたりメンテナンスされていくことを期待しつつ、時々眺めてみたいと思います。