如何使用 Systems Manager 維護時段排程啟動和停止 EC2 執行個體?
我想使用 AWS Systems Manager 的維護時段功能,排程啟動或停止我的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。
簡短說明
若要排程啟動或停止您的執行個體,請將 AWS-StartEC2Instance 或 AWS-StopEC2Instance 執行手冊註冊至維護時段。您必須具備執行該執行手冊所需的權限。
**注意:**使用 AWS Systems Manager 的功能 Automation 執行執行手冊時,您的執行個體不必是受管執行個體。
若要在停止執行個體後立即重新啟動,請在同一個維護時段設定停止和啟動任務。若要讓執行個體在啟動前維持停止狀態一段預定時間,請將各任務設定在不同的維護時段。
解決方法
使用具備執行手冊所需權限的 IAM 角色
若要排程維護時段來執行啟動或停止動作,您必須使用具備執行該執行手冊所需權限的 AWS Identity and Access Management (IAM) 角色。IAM 角色只需要具備您註冊至維護時段的 Systems Manager 執行手冊的權限。例如,如果您選擇註冊 AWS-StartEC2Instance,而不註冊 AWS-StopEC2Instance,則 IAM 角色只需要 ec2:StartInstances 權限。
如果您的 IAM 角色不具備所需權限,請建立 IAM 角色。建立角色時,在 Service or use case (服務或使用案例),選取 Systems Manager (Systems Manager),或使用現有的 Systems Manager 角色。然後,將以下權限政策新增至角色:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartAutomationExecution", "ec2:DescribeInstanceStatus" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "arn:aws:ec2:example_region:example_account_number:instance/example_instance_ID" } ] }
**注意:**將 example_region 替換為您的 AWS 區域。將 example_account_number 替換為您的 AWS 帳戶號碼。將 example_instance_ID 替換為您的執行個體 ID。您可以新增多個 ARN,並以逗號分隔。以下範例將兩個 ARN 指定為資源:
"Resource": "arn:aws:ec2:example_region:example_account_number:instance/example_instance_ID_1", "arn:aws:ec2:example_region:example_account_number:instance/example_instance_ID_2"
**重要:**針對 ec2:StartInstances 和 ec2:StopInstances,最佳實務是新增您要提供存取權之執行個體的資源 ARN。如需更多資訊,請參閱政策語法。如果您使用 AWS Key Management Service 金鑰加密執行個體中的磁碟區,請為角色新增該金鑰的權限。如需更多資訊,請參閱啟動連接加密磁碟區的 Amazon EC2 執行個體時,為什麼會出現「client error on launch」錯誤?
建立維護時段
如果您沒有維護時段,請建立維護時段。在維護時段中,依 Task Priority (任務優先順序) 欄位排列任務,並將 0 設為最高優先順序。如果您已有維護時段,請繼續進行註冊 Automation 任務。
若要向維護時段註冊目標,請選取 Choose instances manually (手動選擇執行個體) 或 Choose a resource group (選擇資源群組) 選項作為目標選項。若要在未註冊為目標的受管執行個體上執行維護時段,請選取 Allow unregistered targets (允許未註冊的目標)。請勿選取 Specify instance tags (指定執行個體標籤) 作為目標選項。
如需更多資訊,請參閱使用主控台將目標指派給維護時段。
註冊 Automation 任務
完成以下步驟:
- 開啟 Systems Manager console (Systems Manager 主控台)。
- 在導覽窗格中,選擇 Maintenance Windows (維護時段)。
- 在維護時段清單中,選擇目標維護時段。
- 選擇 Actions (動作),然後選擇 Register Automation task (註冊 Automation 任務)。
- (選用) 在 Maintenance window task details (維護時段任務詳細資訊) 中輸入名稱和描述。
- 在 Automation document (Automation 文件),選擇 AWS-StartEC2Instance 或 AWS-StopEC2Instance。
- 在 Document version (文件版本),選擇 Default version at runtime (執行時期的預設版本)。
- 系統預設將 Task priority (任務優先順序) 設定為 1。如果您向同一個維護時段註冊多個任務,請為任務指定不同的優先順序層級,以建立執行順序。
- 在 Targets (目標),如果您已為維護時段註冊目標執行個體,請選擇 Selecting registered target groups (選取已註冊的目標群組)。如果您尚未為維護時段註冊目標執行個體,請選擇 Selecting unregistered targets (選取未註冊的目標)。然後,手動選取您的執行個體,或指定資源群組以識別您要執行 Automation 文件的執行個體。
**注意:**Systems Manager 僅針對其管理的執行個體支援目標標籤。 - 在 Rate control (速率控制),指定 Concurrency (並行) 和 Error threshold (錯誤閾值)。
- 在 IAM service role (IAM 服務角色),從下拉式清單中選取 Systems Manager 的服務角色。如果您尚未建立 Systems Manager 的服務角色,請建立服務角色。
**注意:**請勿使用 AWSServiceRoleForAmazonSSM 角色。 - 在 Input parameters (輸入參數),指定以下參數:
**InstanceId:**輸入 {{RESOURCE_ID}} 虛擬參數,以指定多個資源為目標。
**AutomationAssumeRole:**輸入具備 ec2:StartInstances 或 ec2:StopInstances 權限之 IAM 角色的完整角色 Amazon Resource Name (ARN)。例如,arn:aws:iam::123456789101:role/SSM_StartStopEC2Role。 - 選擇 Register Automation task (註冊 Automation 任務)。
**重要:**若要註冊 Automation 文件以排程停止和啟動動作,請針對第二份文件重複上述步驟。
相關資訊
- 語言
- 中文 (繁體)

相關內容
已提問 3 年前
已提問 3 年前
已提問 2 年前