はじめに
AWSの管理サービスであるSystems Managerを使用して手軽に自動化できる「Systems Manager Automation runbook reference」について調べてみました。
どんな自動化ができるのか、サービス別にさらーっと流し見できるページです。
使用できるサービスがこんなにもある
かなり多くのサービスで手軽な自動化が可能なようですね。
かなり多くのリファレンスがある為、Part1では以下のサービスについて簡潔にまとめていきます。
API Gateway
AWS Batch
AWS CloudFormation
CloudFront
CloudTrail
CloudWatch
Amazon DocumentDB
CodeBuild
AWS CodeDeploy
AWS Config
AWS Directory Service
AWS AppSync
Amazon Athena
DynamoDB
Amazon EBS
Amazon EC2
Part2はこちらです。
サービス別に調査
それぞれのタイトル部分がドキュメントのリンクになっていますので、気になったサービスがありましたら調べてみてください。
※補足※
マネコンには「WithApproval」を含むRunbook名が存在しており、それは承認アクションが含まれていることを意味していますが、このリファレンスには、承認が必要なRunbookは含まれていないようです。
例えばこちらの「【SSM Automation ハンズオン】承認者に確認後、EC2を起動する」などが承認アクションが含まれているものです。
API Gateway
1.AWSConfigRemediation-DeleteAPIGatewayStage
Amazon API ゲートウェイステージを削除します。
2.AWSConfigRemediation-EnableAPIGatewayTracing
Amazon API ゲートウェイステージでのトレースが可能になります。
3.AWSConfigRemediation-UpdateAPIGatewayMethodCaching
Amazon API Gateway ステージリソースのキャッシュメソッド設定を更新します。
AWS CloudFormation
4.AWS-DeleteCloudFormationStack
AWS CloudFormation スタックを削除します。
5.AWS-RunCfnLint
AWS CloudFormationリンター ( cfn-python-lint ) を使用して、AWS CloudFormationリソース仕様に対してYAMLおよびJSONテンプレートを検証します。
6.AWSSupport-TroubleshootCFNCustomResource
AWS CloudFormationスタックがカスタムリソースの作成、更新、削除に失敗した理由を診断するのに役立ちます。
カスタムリソースに使用されているサービストークンと、返されたエラーメッセージを確認し、カスタムリソースの詳細を確認すると、カスタムリソースのスタックの動作とトラブルシューティング手順の説明が表示されます。
7.AWS-UpdateCloudFormationStack
Amazon S3バケットに保存されているAWS CloudFormationテンプレートを使用してスタックを更新します。
CloudFront
8.AWSConfigRemediation-EnableCloudFrontDefaultRootObject
指定した Amazon CloudFrontディストリビューションのデフォルトルートオブジェクトを設定します。
9.AWSConfigRemediation-EnableCloudFrontAccessLogs
指定した Amazon CloudFrontディストリビューションのアクセスログを有効にします。
10.AWSConfigRemediation-EnableCloudFrontOriginAccessIdentity
指定した Amazon CloudFrontディストリビューションのオリジンアクセスアイデンティティ(OAI)を有効にします。
この自動化により、CloudFront指定したディストリビューションのOAIなしで、Amazon S3オリジンタイプのすべてのオリジンに同じOAIが割り当てられます。
11.AWSConfigRemediation-EnableCloudFrontOriginFailover
指定したAmazon CloudFrontディストリビューションのオリジンフェイルオーバーを有効にします。
12.AWSConfigRemediation-EnableCloudFrontViewerPolicyHTTPS
指定した Amazon CloudFrontディストリビューションのビューアープロトコルポリシーを有効にします。
CloudTrail
13.AWSConfigRemediation-CreateCloudTrailMultiRegionTrail
AWS CloudTrailを作成し、AWSリージョン複数のログファイルを選択した Amazon S3バケットに配信します。
14.AWS-EnableCloudTrail
AWS CloudTrail証跡を作成し、S3バケットへのログ記録を設定します。
15.AWSConfigRemediation-EnableCloudTrailEncryptionWithKMS
指定したAWS KMSカスタマー管理キーを使用して AWS CloudTrail証跡を暗号化します。
16.AWSConfigRemediation-EnableCloudTrailLogFileValidation
AWS CloudTrailのログファイルの検証を有効にします。
17.AWS-QueryCloudTrailLogs
AWS CloudTrailログを含む、選択した Amazon S3バケットから Amazon Athena テーブルを作成します。 テーブルの作成後、オートメーションは指定したSQLクエリを実行し、テーブルを削除します。
CloudWatch
18.AWS-ConfigureCloudWatchOnEC2Instance
マネージドインスタンスのAmazon CloudWatch詳細モニタリングを有効または無効にします。
CodeBuild
19.AWSConfigRemediation-ConfigureCodeBuildProjectWithKMSCMK
指定した AWS CodeBuildカスタマー管理キーを使用してAWS KMSプロジェクトのビルドアーティファクトを暗号化します。
20.AWSConfigRemediation-DeleteAccessKeysFromCodeBuildProject
指定した AWS CodeBuildプロジェクトから AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY 環境変数を削除します。
AWS CodeDeploy
21.AWSSupport-TroubleshootCodeDeploy
Amazon EC2インスタンスでAWS CodeDeploy デプロイが失敗した理由を診断するのに役立ちます。 問題の解決やさらなるトラブルシューティングに役立つ手順が出力され、今後同様の問題を回避するために役立つ CodeDeploy のベスト プラクティスも提供されます。
AWS Config
22.AWSSupport-SetupConfig
IAMサービスにリンクされたロール、AWS Configによって提供される構成レコーダー、および AWS Configが構成スナップショットと構成履歴ファイルを送信するAmazon S3バケットを持つ配信チャネルを作成します。
AggregatorAccountId パラメータと AggregatorAccountRegion パラメータの値を指定すると、複数のAWS アカウントおよび複数のAWSリージョンからAWS Config設定およびコンプライアンスデータを収集するためのデータ集約の承認も作成します。
AWS Directory Service
23.AWS-CreateDSManagementInstance
ディレクトリの管理に使用できるAmazon EC2 Windows インスタンスを作成します。
24.AWSSupport-TroubleshootADConnectorConnectivity
ADコネクタの次の前提条件を確認します。
①必要なトラフィックがAD Connectorに関連付けられているセキュリティグループとACLルールによって許可されているかどうかを確認します。
②AWS Systems Manager、AWS Security Token Service、および Amazon CloudWatch インターフェイスVPCエンドポイントがAD Connectorと同じVPCに存在するかどうかを確認します。
前提条件のチェックが正常に完了すると、ランブックはADコネクタと同じサブネットで 2つのAmazon EC2 Linux t2.micro インスタンスを起動します。
次に、netcatnslookupおよびユーティリティを使用してネットワーク接続テストを実行します。
25.AWSSupport-TroubleshootDirectoryTrust
AWS Managed Microsoft ADと Microsoft Active Directory 間の信頼作成に関する問題を診断します。ディレクトリタイプが信頼関係をサポートしていることが確認され、関連付けられているセキュリティグループのルール、ネットワーク ACL、ルートテーブルの潜在的な接続の問題がチェックされます。
DynamoDB
26.AWS-CreateDynamoDBBackup
Amazon DynamoDB テーブルのバックアップを作成します。
27.AWS-DeleteDynamoDbBackup
Amazon DynamoDB テーブルのバックアップを削除します。
28.AWSConfigRemediation-DeleteDynamoDbTable
指定した Amazon DynamoDBテーブルを削除します。
29.AWS-DeleteDynamoDbTableBackups
保持日数またはカウントに基づいて DynamoDB テーブルのバックアップを削除します。
30.AWSConfigRemediation-EnableEncryptionOnDynamoDBTable
KMSKeyIdパラメーターに指定したAWS KMSカスタマー管理キーを使用して、DynamoDBテーブルを暗号化します。
31.AWSConfigRemediation-EnablePITRForDynamoDbTable
指定した Amazon DynamoDB テーブルでポイントインタイムリカバリ(PITR)を有効にします。
32.AWS-RestoreDynamoDBTable
ポイントインタイムリカバリ (PITR) を使用して、指定したAmazon DynamoDBテーブルを復元します。
Amazon EBS
33.AWSSupport-AnalyzeEBSResourceUsage
Amazon EBSのリソース使用状況を分析するために使用されます。ボリュームの使用状況を分析し、特定の AWS リージョンで放棄されたボリューム、イメージ、スナップショットを特定します。
34.AWS-ArchiveEBSSnapshots
スナップショットに適用したタグを指定することで、Amazon EBSボリュームのスナップショットをアーカイブするのに役立ちます。 または、スナップショットにタグが付けられていない場合は、ボリュームのIDを指定することもできます。
35.AWS-AttachEBSVolume
Amazon EBSボリュームをAmazon EC2インスタンスにアタッチします。
36.AWSSupport-CalculateEBSPerformanceMetrics
Amazon CloudWatchに発行されるメトリクスを計算し、個々のAmazon EBSボリュームの平均I/Oサイズ、合計スループットと IOPS を表示するCloudWatchダッシュボードを作成することで、Amazon EBSのパフォーマンスの問題を診断するのに役立ちます。
37.AWS-CopySnapshot
Amazon EBSボリュームのポイントインタイムスナップショットをコピーします。
38.AWS-CreateSnapshot
Amazon EBS ボリュームのスナップショットを作成します。
39.AWS-DeleteSnapshot
Amazon EBS ボリュームのスナップショットを削除します。
40.AWSConfigRemediation-DeleteUnusedEBSVolume
未使用のAmazon EBSボリュームを削除します。
41.AWS-DeregisterAMIs
AMI に適用したタグを指定することで、AMIの登録を解除するのに役立ちます。
42.AWS-DetachEBSVolume
Amazon EBSボリュームをAmazon EC2インスタンスから接続解除します。
43.AWSConfigRemediation-EnableEbsEncryptionByDefault
自動化を実行するAWSアカウントおよびAWSリージョン内のすべての新しいAmazon EBSボリュームの暗号化を有効にします。
44.AWS-ExtendEBSVolume
Amazon EBSボリュームのサイズを増やし、ファイル システムを拡張します。
この自動化は、xfs および ext4 ファイル システムをサポートします。
45.AWSSupport-ModifyEBSSnapshotPermission
複数のAmazon EBSスナップショットのアクセス許可を変更するのに役立ちます。
スナップショットをパブリックまたはプライベートに作成し、他のAWSアカウントと共有できます。
46.AWSConfigRemediation-ModifyEBSVolumeType
Amazon EBSボリュームのボリューム タイプを変更します。
ボリュームタイプが変更されると、ボリュームは最適化状態になります。
Amazon EC2
47.AWS-ASGEnterStandby
Auto Scaling グループのAmazon EC2インスタンスのスタンバイ状態を変更します。
48.AWS-ASGExitStandby
Auto ScalingグループのAmazon EC2インスタンスのスタンバイ状態を変更します。
49.AWS-CreateImage
Amazon EC2インスタンスから新しい AMIを作成します。
50.AWS-DeleteImage
AMIと関連するすべてのスナップショットを削除します。
51.AWS-PatchAsgInstance
Amazon EC2インスタンスにパッチを適用します。
52.AWS-PatchInstanceWithRollback
EC2 インスタンスを該当するパッチ ベースラインに準拠させます。 障害時にルート ボリュームをロールバックします。
53.AWS-QuarantineEC2Instance
インバウンドまたはアウトバウンドのトラフィックを許可しないAmazon EC2インスタンスにセキュリティグループを割り当てることができます。
54.AWS-ResizeInstance
Amazon EC2インスタンスのインスタンスタイプを変更します。
55.AWS-RestartEC2Instance
Amazon EC2インスタンスを再起動します。
56.AWS-SetupJupyter
Amazon EC2インスタンスでJupyter Notebookをセットアップするのに役立ちます。既存のインスタンスを指定することも、自動化にAMI ID を指定して新しいインスタンスを起動してセットアップすることもできます。
57.AWS-StartEC2Instance
1つ以上のAmazon EC2インスタンスを開始します。
58.AWS-StopEC2Instance
1つ以上のAmazon EC2インスタンスを停止します。
59.AWS-TerminateEC2Instance
1つ以上のAmazon EC2インスタンスを終了します。
60.AWS-UpdateLinuxAmi
LinuxディストリビューションパッケージとAmazonソフトウェアを使用して AMIを更新します。
61.AWS-UpdateWindowsAmi
Microsoft Windows AMIを更新します。デフォルトでは、すべての Windowsアップデート、Amazonソフトウェア、およびAmazonドライバーをインストールします。次に、Sysprepを実行して新しいAMIを作成します。
62.AWSConfigRemediation-EnableAutoScalingGroupELBHealthCheck
指定した Amazon EC2 Auto Scaling グループのヘルスチェックを有効にします。
63.AWSConfigRemediation-EnforceEC2InstanceIMDSv2
インスタンス メタデータ サービス バージョン2(IMDSv2) を使用するために指定したAmazon EC2インスタンスが必要です。
64.AWSEC2-CloneInstanceAndUpgradeSQLServer
SQL Server 2008以降を実行している Windows ServerのEC2インスタンスからAMIを作成し、そのAMIを新しいバージョンのSQL Serverにアップグレードします。
65.AWSEC2-CloneInstanceAndUpgradeWindows
Windows Server 2008 R2、2012 R2、2016、または 2019 インスタンスから AMIを作成し、AMIをWindows Server 2012 R2、2016、2019、または2022にアップグレードします。サポートされているアップグレードパスは次のとおりです。
66.AWSEC2-ConfigureSTIG
インスタンスにセキュリティ技術実装ガイド (STIG) 設定を適用できます。STIG標準に準拠したイメージを迅速に構築するのに役立ちます。
※セキュリティ技術実装ガイド (STIG) は、情報システムとソフトウェアを保護するために国防情報システム局 (DISA) が作成した構成強化基準です。システムをSTIG標準に準拠させるには、さまざまなセキュリティ設定をインストール、設定、およびテストする必要があります。
67.AWSEC2-PatchLoadBalancerInstance
任意のロードバランサー (クラシック、ALB、NLB) に接続されている Amazon EC2インスタンス(Windows または Linux) のマイナーバージョンをアップグレードしてパッチを適用します。
68.AWSEC2-SQLServerDBRestore
Amazon S3に保存されている Microsoft SQL Server データベースのバックアップを、EC2 Linux インスタンスで実行されているSQL Server 2017に復元します。
69.AWSSupport-ActivateWindowsWithAmazonLicense
Amazonから提供されたライセンスを使用してAmazon EC2インスタンスをアクティベートします。必要なキー管理サービスのオペレーティングシステム設定を検証して設定し、アクティベーションを試行します。
70.AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2
Amazon EC2インスタンスまたはエラスティックネットワークインターフェイスからエンドポイントへの接続を分析します。Runbook は、ServiceEndpointパラメーターに指定した値を使用してエンドポイントへの接続を分析します。
71.AWSPremiumSupport-ChangeInstanceTypeIntelToAMD
Amazon EC2インスタンスから同等の AMD 搭載インスタンスタイプへの移行を自動化します。
72.AWSSupport-CheckXenToNitroMigrationRequirements
Amazon EC2インスタンスが、インスタンスタイプをXenタイプのインスタンスからNitroベースのインスタンスタイプに正常に変更するための前提条件を満たしていることを確認します。
73.AWSSupport-ConfigureEC2Metadata
Amazon EC2インスタンスのインスタンスメタデータサービス (IMDS) オプションを設定するのに役立ちます。
74.AWSSupport-CopyEC2Instance
Knowledge Centerの記事「EC2インスタンスを別のサブネット、アベイラビリティーゾーン、またはVPCに移動する方法を教えてください」に記載されている手順を自動化する方法が記載されています。
75.AWSSupport-ExecuteEC2Rescue
EC2Rescueこのツールを使用して Linux 用または特定の Amazon EC2インスタンスに関する一般的な接続問題をトラブルシューティングし、可能な場合は修復します。
76.AWSSupport-ListEC2Resources
指定した Amazon EC2インスタンスと Amazon EBSボリューム、Elastic IP アドレス、Amazon EC2 Auto Scaling グループなどの関連リソースに関する情報を返します。
77.AWSSupport-ManageRDPSettings
ユーザーはRDPポートやネットワーク層認証 (NLA) などの一般的なリモートデスクトッププロトコル (RDP) 設定を管理できます。
78.AWSSupport-ManageWindowsService
ターゲットインスタンスの Windows サービスを停止、開始、再起動、一時停止、または無効にすることができます。
79.AWSSupport-MigrateEC2ClassicToVPC
Amazon EC2インスタンスを EC2-Classic からVPCに移行します。
80.AWSSupport-MigrateXenToNitroLinux
Amazon EC2 Linux Xenインスタンスをクローニング、準備、およびインスタンスタイプに移行します。
81.AWSSupport-ResetAccess
指定されたEC2インスタンスの EC2Rescueツールを使用しながら、EC2 コンソール (Windows) を通じたパスワードの復号を再度有効にするか、新しいSSHキーペア (Linux) を生成して追加します。
キーペアを紛失した場合、この自動化により、ユーザーが所有するキーペア (Windows) で新しいEC2インスタンスを起動するために使用できるパスワード対応のAMIが作成されます。
82.AWSSupport-ResetLinuxUserPassword
ローカルオペレーティングシステム (OS) ユーザーのパスワードをリセットするのに役立ちます。
83.AWSPremiumSupport-ResizeNitroInstance
Nitroシステム上に構築されたAmazon EC2インスタンスのサイズ変更を自動化するソリューションが用意されています。
84.AWSSupport-RestoreEC2InstanceFromSnapshot
ルートボリュームの動作中のAmazon EBSスナップショットからAmazon EC2インスタンスを識別して復元するのに役立ちます。
85.AWSSupport-SendLogBundleToS3Bucket
EC2Rescueツールによって生成されたログバンドルをターゲットインスタンスから指定されたS3バケットにアップロードします。このランブックは、EC2Rescueのプラットフォーム固有のバージョンを、ターゲットインスタンスのプラットフォームに対応してインストールします。EC2Rescueを使用して、使用可能なすべてのオペレーティングシステム (OS) ログを収集します。
86.AWSSupport-StartEC2RescueWorkflow
提供されているbase64でエンコードされたスクリプト(Bash または Powershell) を、インスタンスをレスキューするために作成されたヘルパーインスタンス上で実行します。
インスタンスのルートボリュームは、EC2Rescueインスタンスとも呼ばれるヘルパーインスタンスにアタッチおよびマウントされます。
87.AWSPremiumSupport-TroubleshootEC2DiskUsage
Amazon EC2インスタンスのルートディスクと非ルートディスクの使用に関する問題を調査し、場合によっては修正するのに役立ちます。可能であれば、ランブックはボリュームとそのファイルシステムを拡張して問題の修復を試みます。
88.AWSSupport-TroubleshootRDP
RDP ポート、ネットワーク層認証 (NLA)、Windowsファイアウォールプロファイルなど、リモートデスクトッププロトコル (RDP) 接続に影響を与える可能性のあるターゲットインスタンスの共通設定を確認または変更できます。
89.AWSSupport-TroubleshootSSH
Linux用のAmazon EC2Rescueツールをインストールし、そのEC2Rescueツールを使用して、Linuxマシンへの SSH経由でのリモートからの接続を妨げる、一般的な問題を確認しその修正を試みます。
90.AWSSupport-TroubleshootSUSERegistration
Amazon EC2 SUSE Linux Enterprise ServerインスタンスをSUSEアップデートインフラストラクチャに登録できない理由を特定するのに役立ちます。
自動化出力には、問題を解決する手順が記載されているか、トラブルシューティングに役立ちます。自動化中にインスタンスがすべてのチェックに合格した場合、そのインスタンスはSUSE Update Infrastructureに登録されます。
91.AWSSupport-UpgradeWindowsAWSDrivers
指定したEC2 AWSインスタンスのストレージドライバーとネットワークドライバーをアップグレードまたは修復します。RunbookはSSM Agentを呼び出して、AWS最新バージョンのドライバーをオンラインでインストールしようとします。
Runbook は、SSMエージェントを呼び出して、AWSドライバーの最新バージョンをオンラインでインストールしようとします。SSMエージェントに接続できない場合、明示的に要求された場合、RunbookはAWSドライバーのオフラインインストールを実行できます。
Part1はここで終了
まだ半分くらいだと思いますが、91個もランブックがありました。(まとめるの大変…)
簡単に使用できそうなものから、若干複雑なものまで様々ですね。
そしてやはりEC2関連が多い。
自動化に使えそうなものは有効活用していくと、運用が楽になりそうです!
Part2はこちらですので、よかったらさら~っと見てみてくださいね。