기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWSSupport-StartEC2RescueWorkflow
설명
AWSSupport-StartEC2RescueWorkflow
실행서는 인스턴스를 복구하기 위해 생성된 헬퍼 인스턴스에서 제공된 base64로 인코딩된 스크립트(Bash 또는 Powershell)를 실행합니다. 인스턴스의 루트 볼륨은 인스턴스라고도 하는 도우미 인스턴스에 연결되고 마운트됩니다. EC2Rescue 인스턴스가 Windows이면 Powershell 스크립트를 제공합니다. 그렇지 않은 경우 Bash를 사용합니다. 이 실행서는 스크립트에서 사용할 수 있는 환경 변수를 설정합니다. 환경 변수에는 제공된 입력에 대한 정보와 오프라인 루트 볼륨에 대한 정보가 포함됩니다. 오프라인 볼륨이 이미 탑재되었고 사용할 수 있습니다. 예를 들면 원하는 상태 구성 파일을 오프라인 Windows 루트 볼륨에 저장하거나 chroot를 오프라인 Linux 루트 볼륨에 저장하고 오프라인 수정을 수행할 수 있습니다.
중요
Marketplace Amazon 머신 이미지 (AMIs) 에서 생성된 Amazon EC2 인스턴스는 이 자동화에 의해 지원되지 않습니다.
추가 정보
스크립트를 base64로 인코딩하려는 경우 Powershell 또는 Bash를 사용할 수 있습니다. Powershell:
[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.IO.File]::ReadAllText('PATH_TO_FILE')))
Bash:
base64 PATH_TO_FILE
다음은 대상 OS에 따라 오프라인 스크립트에서 사용할 수 있는 환경 변수의 목록입니다.
Windows:
변수 | 설명 | 예시 값 |
---|---|---|
$env: _ _ID EC2RESCUE ACCOUNT |
{{글로벌: ACCOUNT _ID}} |
123456789012 |
$env: _ EC2RESCUE DATE |
{{글로벌:DATE}} |
2018-09-07 |
$env: _ _ EC2RESCUE DATE TIME |
{{글로벌: DATE _TIME}} |
2018-09-07_18.09.59 |
$env: _ _ EC2RESCUE EC2RW DIR |
EC2Rescue윈도우용 설치 경로 |
C:\Program 파일\ 아마존\ EC2Rescue |
$env: _ _ EC2RESCUE EC2RW DIR |
EC2Rescue윈도우용 설치 경로 |
C:\Program 파일\ 아마존\ EC2Rescue |
$env: _ _ID EC2RESCUE EXECUTION |
{{자동화: EXECUTION _ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
$env: EC2RESCUE _ _ _ _ OFFLINE CURRENT CONTROL SET |
오프라인 Windows 현재 제어 설정 경로 |
|
$env: _ _ EC2RESCUE OFFLINE DRIVE |
오프라인 Windows 드라이브 문자 |
D:\ |
$env: _ _ _ EC2RESCUE OFFLINE EBS DEVICE |
오프라인 루트 볼륨 디바이스 EBS |
xvdf |
$env: EC2RESCUE _ _ _ OFFLINE KERNEL VER |
오프라인 Windows 커널 버전 |
6.1.7601.24214 |
$env: _ _OS_ EC2RESCUE OFFLINE ARCHITECTURE |
오프라인 Windows 아키텍처 |
AMD64 |
$env: _ _OS_ EC2RESCUE OFFLINE CAPTION |
오프라인 Windows 캡션 |
Windows Server 2008 R2 Datacenter |
$env: _ _OS_ EC2RESCUE OFFLINE TYPE |
오프라인 Windows OS 유형 |
Server |
$env: _ _ _ _ EC2RESCUE OFFLINE PROGRAM FILES DIR |
오프라인 Windows 프로그램 파일 디렉터리 경로 |
D:\Program Files |
$env: EC2RESCUE _ _ _ _X86_ OFFLINE PROGRAM FILES DIR |
오프라인 Windows 프로그램 파일 x86 디렉터리 경로 |
D:\Program Files (x86) |
$env: _ _ _ EC2RESCUE OFFLINE REGISTRY DIR |
오프라인 Windows 레지스트리 디렉터리 경로 |
D:\Windows\System32\config |
$env: _ _ _ EC2RESCUE OFFLINE SYSTEM ROOT |
오프라인 Windows 시스템 루트 디렉터리 경로 |
D:\Windows |
$env: _ EC2RESCUE REGION |
{{글로벌:REGION}} |
us-west-1 |
$env: _S3_ EC2RESCUE BUCKET |
{{S3}} BucketName |
amzn-s3-데모 버킷 |
$env: _S3_ EC2RESCUE PREFIX |
{{ S3Prefix }} |
myprefix/ |
$env: EC2RESCUE _ _ SOURCE INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
$스크립트: _ _ _ EC2RESCUE OFFLINE WINDOWS INSTALL |
오프라인 Windows 설치 메타데이터 |
고객 Powershell 객체 |
Linux:
변수 | 설명 | 예시 값 |
---|---|---|
EC2RESCUE_ _아이디 ACCOUNT |
{{글로벌: ACCOUNT _ID}} |
123456789012 |
EC2RESCUE_DATE |
{{글로벌:DATE}} |
2018-09-07 |
EC2RESCUE_DATE_TIME |
{{글로벌: DATE _TIME}} |
2018-09-07_18.09.59 |
EC2RESCUE_EC2RL_DIR |
EC2Rescue리눅스용 설치 경로 |
/usr/local/ec2rl-1.1.3 |
EC2RESCUE_ EXECUTION _ID |
{{자동화: EXECUTION _ID}} |
7ef8008e-219b-4aca-8bb5-65e2e898e20b |
EC2RESCUE_OFFLINE_DEVICE |
오프라인 디바이스 이름 |
/dev/xvdf1 |
EC2RESCUE_OFFLINE_EBS_DEVICE |
오프라인 루트 볼륨 디바이스 EBS |
/dev/sdf |
EC2RESCUE_OFFLINE_SYSTEM_ROOT |
오프라인 루트 볼륨 탑재 지점 |
/mnt/mount |
EC2RESCUE_PYTHON |
Python 버전 |
python2.7 |
EC2RESCUE_REGION |
{{글로벌:REGION}} |
us-west-1 |
EC2RESCUE_S3_ BUCKET |
{{S3}} BucketName |
amzn-s3-데모 버킷 |
EC2RESCUE_S3_ PREFIX |
{{ S3Prefix }} |
myprefix/ |
EC2RESCUE_SOURCE_INSTANCE |
{{ InstanceId }} |
i-abcdefgh123456789 |
문서 유형
자동화
소유자
Amazon
플랫폼
Linux, macOS, Windows
Parameters
-
AMIPrefix
유형: 문자열
기본값:
AWSSupport-EC2Rescue
설명: (선택 사항) 백업 이름의 접두사. AMI
-
AutomationAssumeRole
유형: 문자열
설명: (선택 사항) Systems Manager Automation이 사용자를 대신하여 작업을 수행할 수 있도록 하는 AWS Identity and Access Management (IAM) 역할의 Amazon 리소스 이름 (). ARN 역할을 지정하지 않은 경우, Systems Manager Automation에서는 이 실행서를 시작하는 사용자의 권한을 사용합니다.
-
CreatePostEC2RescueBackup
유형: 문자열
유효한 값: true | false
기본값: false
설명: (선택 사항) 스크립트를 실행한 AMI InstanceId 후 시작하기 전에 of를
true
생성하도록 설정합니다. 자동화가 완료된 후에도 AMI 지속됩니다. 에 대한 액세스를 보호하거나 삭제하는 것은 사용자의 책임입니다. AMI -
CreatePreEC2RescueBackup
유형: 문자열
유효한 값: true | false
기본값: false
설명: (선택 사항) 스크립트를 InstanceId 실행하기 전에 AMI of를
true
생성하도록 설정합니다. 자동화가 완료된 후에도 AMI 지속됩니다. 에 대한 액세스를 보호하거나 삭제하는 것은 사용자의 책임입니다. AMI -
EC2RescueInstanceType
유형: 문자열
유효한 값: t2.small | t2.medium | t2.large
기본값: t2.small
설명: (선택 사항) EC2 인스턴스의 EC2Rescue 인스턴스 유형.
-
InstanceId
유형: 문자열
설명: (필수) EC2 인스턴스의 ID. IMPORTANT: AWS Systems Manager 자동화로 이 인스턴스가 중지됩니다. 인스턴스 스토어 볼륨에 저장되어 있는 데이터가 손실됩니다. 탄력적 IP를 사용하지 않는 경우 퍼블릭 IP 주소가 변경됩니다.
-
OfflineScript
유형: 문자열
설명: (필수) 헬퍼 인스턴스에 대해 실행할 Base64로 인코딩된 스크립트입니다. 소스 인스턴스가 Linux이고 Windows인 PowerShell 경우 Bash를 사용하십시오.
-
S3 BucketName
유형: 문자열
설명: (선택 사항) 문제 해결 로그를 업로드할 계정의 S3 버킷 이름입니다. 버킷 정책에서 수집된 로그에 액세스할 필요가 없는 당사자에 대해 불필요한 읽기/쓰기 권한을 부여하지 않도록 해야 합니다.
-
S3Prefix
유형: 문자열
기본값:
AWSSupport-EC2Rescue
설명: (선택 사항) S3 로그의 접두사입니다.
-
SubnetId
유형: 문자열
기본값: SelectedInstanceSubnet
설명: (선택 사항) EC2Rescue 인스턴스의 서브넷 ID. 기본적으로 제공된 인스턴스가 상주하는 동일 서브넷이 사용됩니다. IMPORTANT: 사용자 지정 서브넷을 제공하는 경우 해당 서브넷은 동일한 가용 영역에 있어야 InstanceId 하며 엔드포인트에 대한 액세스를 허용해야 합니다. SSM
-
UniqueId
유형: 문자열
기본값: {{자동화: EXECUTION _ID}}
설명: (선택 사항) 자동화의 고유한 식별자입니다.
필수 권한 IAM
실행서를 성공적으로 사용하려면 AutomationAssumeRole
파라미터에 다음 작업이 필요합니다.
자동화를 실행하는 사용자는 A mazonSSMAutomation Role IAM 관리 정책을 연결하는 것이 좋습니다. 해당 정책 외에도, 사용자에게 다음이 필요합니다.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:An-AWS-Account-ID:function:AWSSupport-EC2Rescue-*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::awssupport-ssm.*/*.template", "arn:aws:s3:::awssupport-ssm.*/*.zip" ], "Effect": "Allow" }, { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile" ], "Resource": [ "arn:aws:iam::An-AWS-Account-ID:role/AWSSupport-EC2Rescue-*", "arn:aws:iam::An-AWS-Account-ID:instance-profile/AWSSupport-EC2Rescue-*" ], "Effect": "Allow" }, { "Action": [ "lambda:CreateFunction", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DeleteVpc", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:DetachInternetGateway", "ec2:DeleteInternetGateway", "ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:CreateRoute", "ec2:DeleteRoute", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:DisassociateRouteTable", "ec2:DeleteRouteTable", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }
문서 단계
-
aws:executeAwsApi
- 제공된 인스턴스를 설명합니다. -
aws:executeAwsApi
- 제공된 인스턴스의 루트 볼륨을 설명합니다. -
aws:assertAwsResourceProperty
- 루트 볼륨 디바이스 유형이 다음과 같은지 확인하세요. EBS -
aws:assertAwsResourceProperty
- 루트 볼륨이 암호화되지 않았는지 확인합니다. -
aws:assertAwsResourceProperty
- 제공된 서브넷 ID를 확인합니다.-
(현재 인스턴스 서브넷 사용) - SelectedInstanceSubnet * SubnetId = *인 경우
aws:createStack
실행하여 스택을 배포합니다. EC2Rescue CloudFormation -
(새로 생성VPC) - CreateNew VPC * SubnetId = *인 경우
aws:createStack
실행하여 스택을 배포합니다. EC2Rescue CloudFormation -
(사용자 지정 서브넷 사용) - 그 밖의 모든 경우:
aws:assertAwsResourceProperty
- 제공된 서브넷이 제공된 인스턴스와 동일한 가용 영역에 있는지 확인합니다.aws:createStack
- EC2Rescue CloudFormation 스택 배포
-
-
aws:invokeLambdaFunction
- 추가 입력 검증을 수행합니다. -
aws:executeAwsApi
- EC2Rescue CloudFormation 스택을 업데이트하여 EC2Rescue 헬퍼 인스턴스를 생성합니다. -
aws:waitForAwsResourceProperty
- EC2Rescue CloudFormation 스택 업데이트가 완료될 때까지 기다립니다. -
aws:executeAwsApi
- EC2Rescue CloudFormation 스택 출력을 설명하여 EC2Rescue 헬퍼 인스턴스 ID를 얻습니다. -
aws:waitForAwsResourceProperty
- EC2Rescue 도우미 인스턴스가 관리형 인스턴스가 될 때까지 기다립니다. -
aws:changeInstanceState
- 제공된 인스턴스를 중지합니다. -
aws:changeInstanceState
- 제공된 인스턴스를 중지합니다. -
aws:changeInstanceState
- 제공된 인스턴스를 강제 중지합니다. -
aws:assertAwsResourceProperty
- CreatePre EC2RescueBackup 입력 값 확인-
(사전 EC2Rescue 백업 생성) - *가 true인 CreatePre EC2RescueBackup 경우*
-
aws:executeAwsApi
- 제공된 인스턴스의 AMI 백업 생성 -
aws:createTags
- AMI 백업에 태그 지정
-
-
aws:runCommand
- EC2Rescue 헬퍼 인스턴스에 설치 EC2Rescue -
aws:executeAwsApi
- 제공된 인스턴스의 루트 볼륨을 분리합니다. -
aws:assertAwsResourceProperty
- 제공된 인스턴스 플랫폼을 확인합니다.-
(인스턴스가 Windows인 경우):
aws:executeAwsApi
- 루트 볼륨을 EC2Rescue 헬퍼 인스턴스에 *xvdf*로 연결aws:sleep
- 10초 동안 대기 상태로 유지합니다.aws:runCommand
- Powershell에서 제공된 오프라인 스크립트를 실행합니다. -
(인스턴스가 Linux인 경우):
aws:executeAwsApi
- 루트 볼륨을*/dev/sdf*로 헬퍼 인스턴스에 연결 EC2Rescueaws:sleep
- 10초 동안 대기 상태로 유지합니다.aws:runCommand
- Bash에서 제공된 오프라인 스크립트를 실행합니다.
-
-
aws:changeInstanceState
- 헬퍼 인스턴스 중지 EC2Rescue -
aws:changeInstanceState
- EC2Rescue 헬퍼 인스턴스 강제 중지 -
aws:executeAwsApi
- 헬퍼 인스턴스에서 루트 볼륨 분리 EC2Rescue -
aws:executeAwsApi
- 루트 볼륨을 제공된 인스턴스에 다시 연결합니다. -
aws:assertAwsResourceProperty
- 입력 값 CreatePost EC2RescueBackup 확인-
(사후 EC2Rescue 백업 생성) - *가 true인 CreatePost EC2RescueBackup 경우*
-
aws:executeAwsApi
- 제공된 인스턴스의 AMI 백업 생성 -
aws:createTags
- AMI 백업에 태그 지정
-
-
aws:executeAwsApi
- 제공된 인스턴스의 루트 볼륨에 대해 초기 종료 시 삭제 상태를 복원합니다. -
aws:changeInstanceState
- 제공된 인스턴스의 초기 상태(running/stopped)를 복원합니다. -
aws:deleteStack
- EC2Rescue CloudFormation 스택 삭제
출력
runScriptFor리눅스. 아웃풋
runScriptFor윈도우. 출력
preScriptBackup.ImageId
postScriptBackup.ImageId