AWS SAW(AWS Support Automation Workflows)というソリューションを知ったのでまとめてみた

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

みなさん、こんにちは。AWS CLI が好きなテクニカルサポート課の市野です。

先日 AWS Expert Online に参加し、AWS SAW(AWS Support Automation Workflows)というソリューション(プログラム)をはじめて知りました。

普段サポート業務をしているのに知らなかったのは、まったくもってうかつだったのですが、AWS を利用していてよくあるシチュエーションのトラブルシュートに活用いただけると思いますので、以下まとめてみました。

公式ドキュメント

ソリューション紹介ページ

ページ中にも記載のある通り、AWS SAW は特定のサービス名称ではなく、AWS Systems Manager のランブックのコレクションとなります。
Systems Manager のランブックのうち、これまでお客様の課題を解決して得たベストプラクティスをもとに AWS サポートエンジニアリングによって作成されたものが AWS SAW の位置付けとなります。

また、ページ中ほど以降の「ユースケース」セクションで、あらかじめ用意されている SAW のランブックを検索することができます。
なお、先述の AWS Expert Online での説明や、下記の AWS Black Belt 資料 で「ランディングページ」と呼称されている箇所がこのユースケースセクションに相当します。

AWS ドキュメント

Systems Manager Automation の runbook reference 中で、名称のプレフィックスに「AWSSupport-」を持つものが、AWS SAW に相当します。

AWS Black Belt 資料

執筆時点で公開されている資料は以下となっていました。

執筆時点で公開されている SAW ランブック

本エントリ執筆時点(2024-03-14)で公開されていたランブックは以下の通りでした。
なお、概要欄は各ランブックでの説明文より抜粋しています。

# AWS サービス ランブック名 概要
1 AWS Batch AWSSupport-TroubleshootAWSBatchJob AWS バッチジョブが RUNNABLE からSTARTING ステータスに進行するのを妨げる問題のトラブルシューティングに役立ちます。
2 AWS CloudFormation AWSSupport-TroubleshootCFNCustomResource AWS CloudFormation スタックがカスタム リソースの作成、更新、または削除に失敗した理由を診断するのに役立ちます。
3 AWS CodeDeploy AWSSupport-TroubleshootCodeDeploy Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで AWS CodeDeploy デプロイが失敗した理由を診断するのに役立ちます。
4 AWS Config AWSSupport-SetupConfig AWS Identity and Access Management (IAM) サービスにリンクされたロール、AWS Config を利用した設定レコーダー、および AWS Config が設定スナップショットと設定履歴ファイルを送信する Amazon Simple Storage Service (Amazon S3) バケットを使用した配信チャネルを作成します。
5 AWS Directory Service AWSSupport-TroubleshootADConnectorConnectivity AD コネクタの次の前提条件を検証します。
・必要なトラフィックが、AD コネクタに関連付けられたセキュリティ グループおよびネットワーク アクセス コントロール リスト (ACL) ルールによって許可されているかどうかを確認します。
・AWS Systems Manager、AWS Security Token Service、および Amazon CloudWatch インターフェイスの VPC エンドポイントが AD コネクタと同じ Virtual Private Cloud (VPC) 内に存在するかどうかを確認します。
6 AWS Directory Service AWSSupport-TroubleshootDirectoryTrust AWS Managed Microsoft AD と Microsoft Active Directory の間の信頼作成の問題を診断します。
7 Amazon EBS AWSSupport-AnalyzeEBSResourceUsage Amazon Elastic Block Store (Amazon EBS) のリソース使用状況を分析するために使用されます。ボリュームの使用状況を分析し、特定の AWS リージョンで放棄されたボリューム、イメージ、スナップショットを特定します。
8 Amazon EBS AWSSupport-CalculateEBSPerformanceMetrics パフォーマンスメトリクスを計算して CloudWatch ダッシュボードに公開することで、Amazon EBS のパフォーマンスの問題を診断するのに役立ちます。
9 Amazon EBS AWSSupport-ModifyEBSSnapshotPermission 複数の Amazon Elastic Block Store (Amazon EBS) スナップショットのアクセス許可を変更するのに役立ちます。
10 Amazon EC2 AWSSupport-ActivateWindowsWithAmazonLicense Amazon が提供するライセンスを使用して Windows Server の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスをアクティブ化します。
11 Amazon EC2 AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2 Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたは Elastic Network Interface から AWS サービス エンドポイントへの接続を分析します。
12 Amazon EC2 AWSSupport-CheckXenToNitroMigrationRequirements Amazon Elastic Compute Cloud (Amazon EC2) インスタンスが、インスタンス タイプを Xen タイプのインスタンスから Nitro ベースのインスタンス タイプに正常に変更するための前提条件を満たしていることを検証します。
13 Amazon EC2 AWSSupport-ConfigureEC2Metadata Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのインスタンス メタデータ サービス (IMDS) オプションを設定するのに役立ちます。
14 Amazon EC2 AWSSupport-CopyEC2Instance Knowledge Center の記事「EC2 インスタンスを別のサブネット、アベイラビリティーゾーン、または VPC に移動するにはどうすればよいですか?」で概説されている手順の自動化されたソリューションを提供します。
15 Amazon EC2 AWSSupport-EnableWindowsEC2SerialConsole Amazon EC2 Windows インスタンスで Amazon EC2 シリアル コンソール、特別管理コンソール (SAC)、およびブート メニューを有効にするのに役立ちます。
16 Amazon EC2 AWSSupport-ExecuteEC2Rescue EC2Rescue ツールを使用して、Linux または Windows Server 用の指定された Amazon Elastic Compute Cloud (Amazon EC2) インスタンスとの一般的な接続の問題をトラブルシューティングし、可能であれば修復します。
17 Amazon EC2 AWSSupport-ListEC2Resources Amazon EC2 インスタンスと、指定した AWS リージョンの Amazon Elastic Block Store (Amazon EBS) ボリューム、Elastic IP アドレス、Amazon EC2 Auto Scaling グループなどの関連リソースに関する情報を返します。
18 Amazon EC2 AWSSupport-ManageRDPSettings RDP ポートやネットワーク層認証 (NLA) などの一般的なリモート デスクトップ プロトコル (RDP) 設定を管理できます。
19 Amazon EC2 AWSSupport-ManageWindowsService ターゲット インスタンス上の Windows サービスを停止、開始、再起動、一時停止、または無効にすることができます。
20 Amazon EC2 AWSSupport-MigrateEC2ClassicToVPC Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを EC2-Classic から Virtual Private Cloud (VPC) に移行します。Amazon Elastic Block Store (Amazon EBS) ルート ボリュームを使用したハードウェア仮想マシン (HVM) 仮想化タイプの Amazon EC2 インスタンスの移行をサポートします。
21 Amazon EC2 AWSSupport-MigrateXenToNitroLinux Amazon Elastic Compute Cloud (Amazon EC2) Linux Xen インスタンスを複製、準備し、Nitro インスタンス タイプに移行します。
22 Amazon EC2 AWSSupport-ResetAccess 指定された EC2 インスタンスで EC2Rescue ツールを使用し、EC2 コンソール (Windows) を使用してパスワード復号化を再度有効にするか、新しい SSH キー ペア (Linux) を生成して追加します。キー ペアを紛失した場合、この自動化により、所有するキー ペア (Windows) で新しい EC2 インスタンスを起動するために使用できる、パスワードが有効な AMI が作成されます。
23 Amazon EC2 AWSSupport-ResetLinuxUserPassword ローカル オペレーティング システム (OS) ユーザーのパスワードをリセットするのに役立ちます。この Runbook は、シリアル コンソールを使用して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにアクセスする必要があるユーザーに特に役立ちます。Runbook は、AWS アカウントに一時的な Amazon EC2 インスタンスを作成し、パスワードを含む AWS Secrets Manager シークレット値を取得するアクセス許可を持つ AWS Identity and Access Management (IAM) ロールを作成します。
24 Amazon EC2 AWSSupport-RestoreEC2InstanceFromSnapshot ルート ボリュームの動作中の Amazon Elastic Block Store (Amazon EBS) スナップショットから Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを特定して復元するのに役立ちます。
25 Amazon EC2 AWSSupport-SendLogBundleToS3Bucket EC2Rescue ツールによって生成されたログ バンドルをターゲット インスタンスから指定された S3 バケットにアップロードします。Runbook は、ターゲット インスタンスのプラットフォームに基づいて、プラットフォーム固有のバージョンの EC2Rescue をインストールします。次に、EC2Rescue を使用して、利用可能なすべてのオペレーティング システム (OS) ログを収集します。
26 Amazon EC2 AWSSupport-StartEC2RescueWorkflow インスタンスをレスキューするために作成されたヘルパー インスタンス上で、提供された Base64 でエンコードされたスクリプト (Bash または Powershell) を実行します。
27 Amazon EC2 AWSSupport-TroubleshootEC2InstanceConnect Amazon EC2 Instance Connect を使用した Amazon Elastic Compute Cloud (Amazon EC2) インスタンスへの接続を妨げるエラーの分析と検出に役立ちます。サポートされていない Amazon Machine Image (AMI)、OS レベルのパッケージのインストールまたは構成の欠落、AWS Identity and Access Management (IAM) のアクセス許可の欠落、またはネットワーク構成の問題によって引き起こされる問題を特定します。
28 Amazon EC2 AWSSupport-TroubleshootRDP ユーザーは、RDP ポート、ネットワーク層認証 (NLA)、Windows ファイアウォール プロファイルなど、リモート デスクトップ プロトコル (RDP) 接続に影響を与える可能性があるターゲット インスタンスの共通設定を確認または変更できます。
29 Amazon EC2 AWSSupport-TroubleshootSSH Linux 用の Amazon EC2Rescue ツールをインストールし、EC2Rescue ツールを使用して、SSH 経由の Linux マシンへのリモート接続を妨げる一般的な問題を確認または修正しようとします。
30 Amazon EC2 AWSSupport-TroubleshootSUSERegistration Amazon Elastic Compute Cloud (Amazon EC2) SUSE Linux Enterprise Server インスタンスを SUSE Update Infrastructure に登録できなかった理由を特定するのに役立ちます。
31 Amazon EC2 AWSSupport-UpgradeWindowsAWSDrivers 指定された EC2 インスタンス上のストレージおよびネットワーク AWS ドライバーをアップグレードまたは修復します。
32 Amazon ECS AWSSupport-CollectECSInstanceLogs Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからオペレーティング システムと Amazon Elastic Container Service (Amazon ECS) 関連のログ ファイルを収集し、Amazon ECS の一般的な問題のトラブルシューティングに役立ちます。
33 Amazon ECS AWSSupport-TroubleshootECSContainerInstance Amazon ECS クラスターへの登録に失敗した Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのトラブルシューティングに役立ちます。
34 Amazon ECS AWSSupport-TroubleshootECSTaskFailedToStart Amazon ECS クラスター内の Amazon Elastic Container Service (Amazon ECS) タスクの開始に失敗した理由のトラブルシューティングに役立ちます。
35 Amazon EFS AWSSupport-CheckAndMountEFS Amazon Elastic File System (Amazon EFS) ファイル システムをマウントするための前提条件を検証し、指定した Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにファイル システムをマウントします。
36 Amazon EKS AWSSupport-CollectEKSInstanceLogs Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからオペレーティング システムと Amazon Elastic Kubernetes Service (Amazon EKS) 関連のログ ファイルを収集し、一般的な問題のトラブルシューティングに役立ちます。
37 Amazon EKS AWSSupport-TroubleshootEKSWorkerNode Amazon Elastic Compute Cloud (Amazon EC2) ワーカーノードと Amazon Elastic Kubernetes Service (Amazon EKS) クラスターを分析し、ワーカーノードがクラスターに参加できない一般的な原因を特定してトラブルシューティングするのに役立ちます。
38 Elastic Beanstalk AWSSupport-CollectElasticBeanstalkLogs Elastic Beanstalk によって起動された Amazon Elastic Compute Cloud (Amazon EC2) Windows Server インスタンスから AWS Elastic Beanstalk 関連のログ ファイルを収集し、一般的な問題のトラブルシューティングに役立ちます。
39 Elastic Beanstalk AWSSupport-TroubleshootElasticBeanstalk AWS Elastic Beanstalk 環境が Degraded または Severe 状態にある潜在的な理由のトラブルシューティングに役立ちます 。
40 Elastic Load Balancing AWSSupport-TroubleshootCLBConnectivity Classic Load Balancer (CLB) と Amazon Elastic Compute Cloud (Amazon EC2) インスタンス間の接続の問題のトラブルシューティングに役立ちます。
41 Amazon EMR AWSSupport-AnalyzeEMRLogs Amazon EMR クラスターでジョブを実行する際のエラーを特定するのに役立ちます。Runbook は、ファイル システム上の定義されたログのリストを分析し、事前定義されたキーワードのリストを検索します。
42 Amazon OpenSearch Service AWSSupport-TroubleshootOpenSearchRedYellowCluster クラスターの健全性ステータスが赤または黄色の原因を特定し、クラスターを緑に戻す手順を案内するために使用されます。
43 Amazon OpenSearch Service AWSSupport-TroubleshootOpenSearchHighCPU Amazon OpenSearch Service ドメインから診断データを収集してCPU 使用率の高さをトラブルシューティングするための自動ソリューションを提供します。
44 IAM AWSSupport-GrantPermissionsToIAMUser 指定されたアクセス許可を IAM グループ (新規または既存) に付与し、既存の IAM ユーザーをそれに追加します。
45 Lambda AWSSupport-RemediateLambdaS3Event Amazon Simple Storage Service (Amazon S3)のイベント通知が、指定した AWS Lambda 関数のトリガーに失敗した原因を特定し、改善するのに役立ちます。
46 Lambda AWSSupport-TroubleshootLambdaInternetAccess Amazon Virtual Private Cloud (Amazon VPC) に起動された AWS Lambda 関数のインターネット アクセスの問題のトラブルシューティングに役立ちます。
47 Lambda AWSSupport-TroubleshootLambdaS3Event Amazon Simple Storage Service (Amazon S3) イベント通知が指定した AWS Lambda 関数をトリガーできなかった理由を特定するのに役立ちます。
48 Amazon Managed Workflows for Apache Airflow AWSSupport-TroubleshootMWAAEnvironmentCreation Amazon Managed Workflows for Apache Airflow (Amazon MWAA) 環境作成の問題をデバッグするための情報を提供し、文書化された理由とともにベスト エフォート ベースでチェックを実行して、障害の特定に役立てます。
49 Amazon RDS AWSSupport-ModifyRDSSnapshotPermission 複数の Amazon Relational Database Service (Amazon RDS) スナップショットのアクセス許可を変更するのに役立ちます。
50 Amazon RDS AWSSupport-ShareRDSSnapshot Knowledge Center の記事 How can I share an encrypted Amazon RDS DB snapshot with another account で説明されている手順の自動化ソリューションを提供します。
51 Amazon RDS AWSSupport-TroubleshootConnectivityToRDS EC2 インスタンスと Amazon Relational Database Service インスタンス間の接続の問題を診断します。
52 Amazon RDS AWSSupport-TroubleshootRDSIAMAuthentication Amazon RDS for PostgreSQL、Amazon RDS for MySQL、Amazon RDS for MariaDB、Amazon Aurora PostgreSQL、および Amazon Aurora MySQL インスタンスの AWS Identity and Access Management (IAM) 認証のトラブルシューティングに役立ちます。
53 Amazon RDS AWSSupport-ValidateRdsNetworkConfiguration ModifyDBInstance または StartDBInstance オペレーションを実行する前に、既存の Amazon Relational Database Service (Amazon RDS) / Amazon Aurora / Amazon DocumentDB インスタンスの互換性のないネットワーク状態を回避するのに役立ちます。
54 Amazon S3 AWSSupport-TroubleshootS3PublicRead S3BucketName パラメータで指定したパブリック Amazon Simple Storage Service (Amazon S3) バケットからオブジェクトを読み込む問題を診断します。
55 Systems Manager AWSSupport-TroubleshootManagedInstance Amazon Elastic Compute Cloud (Amazon EC2) インスタンスが AWS Systems Manager によって管理されていると報告されない理由を特定するのに役立ちます。
56 Systems Manager AWSSupport-TroubleshootPatchManagerLinux AWS Systems Manager の機能「パッチマネージャー」を使用して、Linux ベースの管理対象ノードでパッチの失敗を引き起こす可能性のある一般的な問題のトラブルシューティングを行います。
57 Systems Manager AWSSupport-TroubleshootSessionManager Session Manager を使用して管理対象の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに接続できない一般的な問題のトラブルシューティングに役立ちます。
58 Amazon VPC AWSSupport-ConfigureDNSQueryLogging Virtual Private Cloud (VPC) または Amazon Route 53 ホストゾーンで発生する DNS クエリのログを構成します。
59 Amazon VPC AWSSupport-ConfigureTrafficMirroring ロードバランサーと Amazon Elastic Compute Cloud (Amazon EC2) インスタンス間の接続の問題のトラブルシューティングに役立つトラフィック ミラーリングを構成します。
60 Amazon VPC AWSSupport-ConnectivityTroubleshooter 次の間の接続の問題を診断します。
・Amazon Virtual Private Cloud (Amazon VPC) 内の AWS リソース
・VPC ピアリングを使用して接続されている、同じ AWS リージョン内の異なる Amazon VPC 内の AWS リソース
・Amazon VPC 内の AWS リソースとインターネット ゲートウェイを使用するインターネット リソース
・Amazon VPC 内の AWS リソースと、ネットワーク アドレス変換 (NAT) ゲートウェイを使用するインターネット リソース
61 Amazon VPC AWSSupport-TroubleshootVPN AWS Site-to-Site VPN 接続のエラーを追跡して解決するのに役立ちます。自動化には、AWS Site-to-Site VPN 接続トンネルに関連するトレースIKEv1またはエラーを追跡するように設計されたいくつかの自動チェックが含まれます。IKEv2自動化は、一般的な問題のリストから特定のエラーとそれに対応する解決策を照合しようとします。
62 Amazon VPC AWSSupport-EnableVPCFlowLogs AWS アカウント内のサブネット、ネットワーク インターフェイス、および VPC の Amazon Virtual Private Cloud (Amazon VPC) フロー ログを作成します。
63 Amazon VPC AWSSupport-SetupIPMonitoringFromVPC Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを作成し、ping、MTR、traceroute、tracetcp テストを継続的に実行することで、選択したターゲット IP (IPv4 または IPv6) を監視します。
64 Amazon VPC AWSSupport-TerminateIPMonitoringFromVPC 以前に AWSSupport-SetupIPMonitoringFromVPC によって開始された IP モニタリング テストを終了します。指定したテストIDに関連するデータが削除されます。
65 Amazon WorkSpaces AWSSupport-RecoverWorkSpace Amazon WorkSpaces 仮想デスクトップ上で回復手順を実行します。ランブックは WorkSpace を再起動し、状態がまだ UNHEALTHY の場合、入力パラメータに指定した値に基づいてWorkSpaceを復元または再構築します。

※なお、AWS 公式ドキュメントは随時更新されていますので上記内容が最新でない可能性があります。そのため、常に最新の公式ドキュメントをご確認いただけるようお願いします。

おわりに

SAW ランブックを一覧で見ることができるドキュメントがなかったため、執筆時点での情報をまとめてみましたが AWS を利用していてよくある事象や、サポート対応していてもよく承るような内容が多くあると思いました。

懸念があるとすれば、実際に事象が発生している真っ最中に、トラブルシュートに役立つ SAW ランブックの存在に気づきにくい点かと思います。
現状では、AWS SAW のランディングページAWS Systems Manager のコンソールから検索する、あるいは SAW ランブックの個別の詳細ページなどの AWS ドキュメントから探すより他ないため、サポートケース起票時のサービス選択画面でサジェストされるなど、障害発生時に該当するサービスでの SAW ランブックの存在可能性に気付ける仕組みがあると良いなぁと思いました。

ただ、トラブルシュートに役立つであろうことは十分理解できたので、別の機会でどれかの SAW ランブックを試しに実行して挙動を確認してみたいと思います。

この投稿がどなたかの参考になれば幸いです。

ではまた。

市野 和明 (記事一覧)

マネージドサービス部・テクニカルサポート課

お客様から寄せられたご質問や技術検証を通じて得られた気づきを投稿していきます。

情シスだった前職までの経験で、UI がコロコロ変わる AWS においては GUI で手順を残していると画面構成が変わってしまって後々まごつくことが多かった経験から、極力変わりにくい AWS CLI での記事が多めです。

X(Twitter):@kazzpapa3(AWS Community Builder)