기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사전 및 사후 스크립트를 사용하여 애플리케이션에 일관되게 적용되는 스냅샷을 자동화하는 것 외에도 사전 및 사후 스크립트를 함께 사용하거나 개별적으로 사용하여 스냅샷 생성 전후에 다른 관리 작업을 자동화할 수 있습니다. 예시:
-
스냅샷을 생성하기 전에 사전 스크립트를 사용하여 패치를 적용합니다. 이렇게 하면 정기 주간 또는 월간 소프트웨어 업데이트를 적용한 후 스냅샷을 생성할 수 있습니다.
참고
사전 스크립트만 실행하도록 선택하면 중단 일관성 스냅샷으로 기본 설정이 활성화됩니다.
-
스냅샷을 생성한 후 사후 스크립트를 사용하여 패치를 적용합니다. 이렇게 하면 정기 주간 또는 월간 소프트웨어 업데이트를 적용하기 전 스냅샷을 생성할 수 있습니다.
다른 사용 사례를 위한 시작하기
이 섹션에서는 애플리케이션에 일관되게 적용되는 스냅샷 이외의 사용 사례에 사전 및/또는 사후 스크립트를 사용할 때 수행해야 하는 단계를 설명합니다.
사전 및/또는 사후 스크립트를 위한 대상 인스턴스 준비
-
아직 설치되지 않은 경우 대상 인스턴스에 SSM 에이전트를 설치합니다. SSM 에이전트가 대상 인스턴스에 이미 설치되어 있는 경우이 단계를 건너뜁니다.
-
(Linux 인스턴스) Linux용 Amazon EC2 인스턴스에 SSM 에이전트 수동 설치
-
(Windows 인스턴스) Windows용 Amazon EC2 인스턴스에 SSM 에이전트 수동 설치
-
-
SSM 에이전트가 실행 중인지 확인합니다. 자세한 내용은 SSM 에이전트 상태 확인 및 에이전트 시작을 참조하세요.
-
Amazon EC2 인스턴스용 Systems Manager를 설정합니다. 자세한 내용은 AWS Systems Manager 사용 설명서의 Amazon EC2 인스턴스용 Systems Manager 설정을 참조하세요.
실행하려는 SSM 명령과 함께 사전 및/또는 사후 스크립트가 포함된 명령 문서를 생성해야 합니다.
아래 빈 SSM 문서 템플릿을 사용하여 SSM 문서를 생성하고 적절한 문서 섹션에 사전 및 사후 스크립트 명령을 추가할 수 있습니다.
다음 사항에 유의하세요.
-
SSM 문서가 워크로드에 대해 정확하고 필요한 작업을 수행하도록 하는 것은 사용자의 책임입니다.
-
SSM 문서에는
allowedValues
, 및pre-script
를 포함한의 필수 필드가 포함되어야 합니다post-script
dry-run
. Amazon Data Lifecycle Manager는 이러한 섹션의 내용을 기반으로 인스턴스에서 명령을 실행합니다. SSM 문서에 해당 섹션이 없는 경우 Amazon Data Lifecycle Manager는 이를 실패한 실행으로 처리합니다.
###===============================================================================###
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
###===============================================================================###
schemaVersion: '2.2'
description: SSM Document Template for Amazon Data Lifecycle Manager Pre/Post script feature
parameters:
executionId:
type: String
default: None
description: (Required) Specifies the unique identifier associated with a pre and/or post execution
allowedPattern: ^(None|[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$
command:
# Data Lifecycle Manager will trigger the pre-script and post-script actions during policy execution.
# 'dry-run' option is intended for validating the document execution without triggering any commands
# on the instance. The following allowedValues will allow Data Lifecycle Manager to successfully
# trigger pre and post script actions.
type: String
default: 'dry-run'
description: (Required) Specifies whether pre-script and/or post-script should be executed.
allowedValues:
- pre-script
- post-script
- dry-run
mainSteps:
- action: aws:runShellScript
description: Run Database freeze/thaw commands
name: run_pre_post_scripts
precondition:
StringEquals:
- platformType
- Linux
inputs:
runCommand:
- |
#!/bin/bash
###===============================================================================###
### Error Codes
###===============================================================================###
# The following Error codes will inform Data Lifecycle Manager of the type of error
# and help guide handling of the error.
# The Error code will also be emitted via AWS Eventbridge events in the 'cause' field.
# 1 Pre-script failed during execution - 201
# 2 Post-script failed during execution - 202
# 3 Auto thaw occurred before post-script was initiated - 203
# 4 Pre-script initiated while post-script was expected - 204
# 5 Post-script initiated while pre-script was expected - 205
# 6 Application not ready for pre or post-script initiation - 206
###===============================================================================###
### Global variables
###===============================================================================###
START=$(date +%s)
# For testing this script locally, replace the below with OPERATION=$1.
OPERATION={{ command }}
# Add all pre-script actions to be performed within the function below
execute_pre_script() {
echo "INFO: Start execution of pre-script"
}
# Add all post-script actions to be performed within the function below
execute_post_script() {
echo "INFO: Start execution of post-script"
}
# Debug logging for parameters passed to the SSM document
echo "INFO: ${OPERATION} starting at $(date) with executionId: ${EXECUTION_ID}"
# Based on the command parameter value execute the function that supports
# pre-script/post-script operation
case ${OPERATION} in
pre-script)
execute_pre_script
;;
post-script)
execute_post_script
;;
dry-run)
echo "INFO: dry-run option invoked - taking no action"
;;
*)
echo "ERROR: Invalid command parameter passed. Please use either pre-script, post-script, dry-run."
exit 1 # return failure
;;
esac
END=$(date +%s)
# Debug Log for profiling the script time
echo "INFO: ${OPERATION} completed at $(date). Total runtime: $((${END} - ${START})) seconds."
참고
이 단계는 다음과 같은 경우 필요합니다.
-
사용자 지정 IAM 역할을 사용하는 사전/사후 스크립트 지원 스냅샷 정책을 생성하거나 업데이트합니다.
-
명령줄을 사용하여 기본값을 사용하는 사전/사후 스크립트 지원 스냅샷 정책을 생성하거나 업데이트합니다.
콘솔을 사용하여 스냅샷 관리에 기본 역할을 사용하는 사전/사후 스크립트 지원 스냅샷 정책을 생성하거나 업데이트하는 경우(AWSDataLifecycleManagerDefaultRole)이 단계를 건너뜁니다. 이 경우 AWSDataLifecycleManagerSSMFullAccess 정책을 해당 역할에 자동으로 연결합니다.
정책에 사용하는 IAM 역할이 정책이 대상으로 하는 인스턴스에서 사전 및 사후 스크립트를 실행하는 데 필요한 SSM 작업을 수행할 수 있는 권한을 Amazon Data Lifecycle Manager에 부여해야 합니다.
Amazon Data Lifecycle Manager는 필요한 권한을 포함하는 관리형 정책(AWSDataLifecycleManagerSSMFullAccess)을 제공합니다. 스냅샷을 관리하기 위해 IAM 역할에이 정책을 연결하여 해당 정책에 권한이 포함되어 있는지 확인할 수 있습니다.
중요
AWSDataLifecycleManagerSSMFullAccess 관리형 정책은 aws:ResourceTag
조건 키를 사용하여 사전 및 사후 스크립트를 사용할 때 특정 SSM 문서에 대한 액세스를 제한합니다. Amazon Data Lifecycle Manager가 SSM 문서에 액세스하도록 허용하려면 SSM 문서에 로 태그가 지정되어 있어야 합니다DLMScriptsAccess:true
.
또는 사용자 지정 정책을 수동으로 생성하거나 사용하는 IAM 역할에 필요한 권한을 직접 할당할 수 있습니다. AWSDataLifecycleManagerSSMFullAccess 관리형 정책에 정의된 것과 동일한 권한을 사용할 수 있지만 aws:ResourceTag
조건 키는 선택 사항입니다. 해당 조건 키를 사용하지 않기로 결정한 경우 SSM 문서에 로 태그를 지정할 필요가 없습니다DLMScriptsAccess:true
.
다음 방법 중 하나를 사용하여 AWSDataLifecycleManagerSSMFullAccess 정책을 IAM 역할에 추가합니다.