AWSPremiumSupport-ResizeNitroInstance - AWS Systems Manager 자동화 런북 참조

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWSPremiumSupport-ResizeNitroInstance

설명

AWSPremiumSupport-ResizeNitroInstance 실행서는 Nitro 시스템에 구축된 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 크기를 조정하기 위한 자동화된 솔루션을 제공합니다.

데이터 손실 및 가동 중지 시간의 잠재적 위험을 줄이기 위해, 실행서는 다음을 확인합니다.

  • 인스턴스 중지 동작

  • 인스턴스가 Amazon EC2 Auto Scaling 그룹의 일부이고 standby 모드에 있는 경우

  • 인스턴스 상태 및 테넌시

  • 변경하려는 인스턴스 유형은 현재 인스턴스에 연결된 네트워크 인터페이스 수를 지원합니다.

  • 현재 인스턴스 유형과 대상 인스턴스 유형의 프로세서 아키텍처 및 가상화 유형은 동일한 내용입니다.

  • 인스턴스가 실행 중이면 모든 상태 검사를 통과한 것입니다.

  • 변경하려는 인스턴스 유형을 동일한 가용 영역에서 사용할 수 있습니다.

Amazon EC2가 인스턴스 유형을 변경한 후 상태 검사를 통과하지 못하면, 실행서는 자동으로 이전 인스턴스 유형으로 롤백됩니다.

기본적으로, 이 실행서는 실행 중이고 인스턴스 스토어 볼륨이 연결되어 있는 경우, 인스턴스 유형을 변경하지 않습니다. 또한 인스턴스가 AWS CloudFormation 스택의 일부인 경우, 실행서는 인스턴스 유형을 변경하지 않습니다. 이러한 동작 중 하나를 변경하려면 AllowInstanceStoreInstancesAllowCloudFormationInstances 파라미터의 yes을 지정하세요.

실행서는 변경하려는 인스턴스 유형을 지정하는 두 가지 방법을 제공합니다.

  • 단일 인스턴스를 대상으로 하는 단순 자동화의 경우, TargetInstanceTypeFromParameter 파라미터를 사용하여 변경하려는 인스턴스 유형을 지정합니다.

  • 대규모로 자동화를 실행하여 여러 인스턴스의 인스턴스 유형을 변경하려면, TargetInstanceTypeFromTagValue 파라미터를 사용하여 인스턴스 유형을 지정합니다. 대규모 자동화 실행에 대한 자세한 내용은 대규모 자동화 실행을 참조하세요.

두 파라미터 중 하나에 값을 지정하지 않으면, 자동화가 실패합니다.

중요

AWSPremiumSupport-* 실행서에 액세스하려면 Enterprise 또는 Business Support Subscription이 필요합니다. 자세한 내용은 AWS Support 플랜 비교를 참조하세요.

고려 사항

  • 이 실행서를 사용하기 전에 인스턴스를 백업해 두는 것이 좋습니다.

  • 인스턴스 유형 변경의 호환성에 대한 자세한 내용은 인스턴스 유형 변경 호환성을 참조하세요.

  • 자동화가 실패하고 원래 인스턴스 유형으로 롤백되는 경우, 인스턴스 유형 변경 문제 해결을 참조하세요.

  • 인스턴스 유형을 변경하려면 실행서에서 인스턴스를 중지해야 합니다. 인스턴스가 중지되면, 메모리 또는 인스턴스 스토어 볼륨에 저장된 데이터가 손실됩니다. 또한, 자동으로 할당된 임의의 퍼블릭 IPv4 주소가 해제됩니다. 인스턴스를 중지할 경우 발생하는 상황에 대한 자세한 내용은 인스턴스 중지 및 시작을 참조하세요.

  • SkipInstancesWithTagKey 파라미터를 사용하면, 특정 Amazon EC2 태그 키가 적용된 인스턴스를 건너뛸 수 있습니다.

이 자동화 실행(콘솔)

문서 유형

자동화

소유자

Amazon

플랫폼

Linux, Windows

파라미터

  • AutomationAssumeRole

    유형: 문자열

    설명: (선택 사항) 사용자를 대신하여 Systems Manager Automation을 통해 작업을 수행할 수 있도록 허용하는 AWS Identity and Access Management(IAM) 역할의 Amazon 리소스 이름(ARN)입니다. 역할을 지정하지 않은 경우, Systems Manager Automation에서는 이 실행서를 시작하는 사용자의 권한을 사용합니다.

  • 확인

    유형: 문자열

    설명: (필수) yes을 입력하여 현재 실행 중인 인스턴스가 중지될 것임을 확인합니다.

  • AllowInstanceStoreInstances

    유형: 문자열

    유효한 값: no | yes

    기본값: 아니요

    설명: (선택 사항) yes을 지정하는 경우, 인스턴스 스토어 볼륨이 연결된 인스턴스에서 실행서가 실행되도록 허용합니다.

  • AllowCloudFormationInstances

    유형: 문자열

    유효한 값: no | yes

    기본값: 아니요

    설명: (선택 사항) yes을 지정하는 경우, 실행서는 AWS CloudFormation 스택의 일부인 인스턴스에서 실행됩니다.

  • DryRun

    유형: 문자열

    유효한 값: no | yes

    기본값: 아니요

    설명: (선택 사항) yes을 지정하는 경우, 실행서는 인스턴스 유형을 변경하지 않고 크기 조정 요구 사항을 검증합니다.

  • InstanceId

    유형: 문자열

    설명: (필수) 변경하려는 유형이 있는 Amazon EC2 인스턴스의 ID입니다.

  • SkipInstancesWithTagKey

    유형: 문자열

    설명: (선택 사항) 지정한 태그 키가 인스턴스에 적용되면, 자동화가 대상 인스턴스를 건너뜁니다.

  • SleepTime

    유형: 문자열

    기본값: 3

    설명: (선택 사항) 이 실행서가 완료 후 대기 상태로 유지되는 시간(초)입니다.

  • TagInstance

    유형: 문자열

    설명: (선택 사항) Key=ChangingType,Value=True 형식을 사용하여 선택한 키와 값으로 인스턴스에 태그를 지정합니다. 이 옵션을 사용하면 이 실행서가 대상으로 지정한 인스턴스를 추적할 수 있습니다. 태그 키와 값은 대/소문자를 구분합니다.

  • TargetInstanceTypeFromParameter

    유형: 문자열

    설명: (선택 사항) 인스턴스를 변경하려는 인스턴스 유형입니다. TargetInstanceTypeFromTagValue 파라미터에 제공된 태그 키 값을 사용하려는 경우, 이 파라미터를 비워 두세요.

  • TargetInstanceTypeFromTagValue

    유형: 문자열

    설명: (선택 사항) 변경하려는 인스턴스 유형이 값에 포함된 대상 인스턴스에 적용되는 태그 키입니다. TargetInstanceTypeFromParameter 파라미터의 값을 지정하면, 이 파라미터에 지정한 파라미터의 모든 값을 무시합니다.

필수 IAM 권한

실행서를 성공적으로 사용하려면 AutomationAssumeRole 파라미터에 다음 작업이 필요합니다.

  • autoscaling:DescribeAutoScalingInstances

  • cloudformation:DescribeStackResources

  • ssm:GetAutomationExecution

  • ssm:DescribeAutomationExecutions

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeInstances

  • ec2:DescribeInstanceStatus

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DescribeTags

  • ec2:ModifyInstanceAttribute

  • ec2:StartInstances

  • ec2:StopInstances

문서 단계

  1. aws:assertAwsResourceProperty: SkipInstancesWithTagKey 파라미터에 지정된 리소스 태그 키로 Amazon EC2 인스턴스에 태그가 지정되지 않았는지 확인합니다. 태그 키가 인스턴스에 적용된 것으로 확인되면, 단계가 실패하고 자동화가 종료됩니다.

  2. aws:assertAwsResourceProperty: 대상 Amazon EC2 인스턴스의 상태가running, pending, stopped 또는 stopping인지 확인합니다. 그렇지 않으면, 자동화가 종료됩니다.

  3. aws:executeAwsApi: Amazon EC2 인스턴스에서 속성을 수집합니다.

  4. aws:executeAwsApi: 현재 Amazon EC2 인스턴스 유형에 대한 세부 정보를 수집합니다.

  5. aws:branch: 현재 인스턴스 유형과 TargetInstanceTypeFromParameter 파라미터에 지정된 인스턴스 유형이 동일한지 확인합니다. 그럴 경우, 자동화가 종료됩니다.

  6. aws:assertAwsResourceProperty: 인스턴스가 Nitro 시스템에서 실행되는지 확인합니다.

  7. aws:branch: Amazon EC2 인스턴스 루트 볼륨 유형이 Amazon Elastic Block Store(Amazon EBS) 볼륨인지 확인합니다.

  8. aws:assertAwsResourceProperty: 인스턴스 종료 동작이 terminate이 아닌 stop인지 확인합니다.

  9. aws:branch: Amazon EC2 인스턴스가 스팟 인스턴스가 아닌지 확인합니다.

  10. aws:branch: Amazon EC2 인스턴스 테넌시가 전용 호스트나 전용 인스턴스가 아닌 기본값인지 확인합니다.

  11. aws:executeScript: 현재 인스턴스 ID를 대상으로 하는 이 실행서의 자동화가 하나만 존재한다는 점을 확인합니다. 동일한 인스턴스를 대상으로 하는 다른 자동화가 이미 진행 중인 경우, 자동화가 오류를 반환하고 종료됩니다.

  12. aws:branch: Amazon EC2 인스턴스의 상태를 기반으로 자동화를 분기합니다.

    1. stopped 또는 stopping인 경우, Amazon EC2 인스턴스가 완전히 중지될 때까지 자동화가 aws:waitForAwsResourceProperty을 실행합니다.

    2. running 또는 pending인 경우, Amazon EC2 인스턴스가 상태 검사를 통과할 때까지 자동화가 aws:waitForAwsResourceProperty을 실행합니다.

  13. aws:assertAwsResourceProperty: DescribeAutoScalingInstances API 작업을 호출하여 Amazon EC2 인스턴스가 Auto Scaling 그룹의 일부가 아닌지 확인합니다. 인스턴스가 Auto Scaling 그룹의 일부인 경우, Amazon EC2 인스턴스가 standby 모드에 있는지 확인하세요.

  14. aws:branch: 자동화를 통해 Amazon EC2 인스턴스가 AWS CloudFormation 스택의 일부인지 확인하려는지 여부에 따라 자동화를 분기합니다.

    1. aws:executeScript DescribeStackResources API 작업을 호출하여 Amazon EC2 인스턴스가 AWS CloudFormation 스택의 일부가 아닌지 확인합니다.

  15. aws:executeAwsApi: 프로세서 아키텍처 유형, 가상화 유형이 동일하고, 대상 인스턴스에 현재 연결된 네트워크 인터페이스 수를 지원하는 인스턴스 유형 목록을 반환합니다.

  16. aws:executeAwsApi: TargetInstanceTypeFromTagValue 파라미터에 지정된 태그 키에서 대상 인스턴스 유형 값을 가져옵니다.

  17. aws:executeScript: 현재 인스턴스 유형과 대상 인스턴스 유형이 호환되는지 확인합니다. 대상 인스턴스 유형을 동일한 서브넷에서 사용할 수 있는지 확인합니다. 실행서를 시작한 보안 주체가 인스턴스 유형을 변경하고 실행 중인 경우, 인스턴스를 중지하고 시작할 수 있는 권한이 있는지 확인합니다.

  18. aws:branch: DryRun 파라미터 값이 yes으로 설정되었는지 여부에 따라 자동화를 분기합니다. yes인 경우, 자동화가 종료됩니다.

  19. aws:branch: 원본 인스턴스 유형과 대상 인스턴스 유형이 동일한 내용인지 확인합니다. 동일하면, 자동화가 종료됩니다.

  20. aws:executeAwsApi: 현재 인스턴스 상태를 가져옵니다.

  21. aws:changeInstanceState: Amazon EC2 인스턴스를 중지합니다.

  22. aws:changeInstanceState: 인스턴스가 stopping 상태에서 멈춘 경우, 인스턴스를 강제로 중지합니다.

  23. aws:executeAwsApi: 인스턴스 유형을 대상 인스턴스 유형으로 변경합니다.

  24. aws:sleep: 최종 일관성을 위해 인스턴스 유형을 변경한 후 3초 동안 기다립니다.

  25. aws:branch: 이전 인스턴스 상태를 기반으로 자동화를 분기합니다. 해당 내용이 running이었을 경우, 인스턴스가 시작됩니다.

    1. aws:changeInstanceState: 인스턴스 유형을 변경하기 전에 Amazon EC2 인스턴스가 실행 중이었다면, 해당 인스턴스를 시작합니다.

    2. aws:waitForAwsResourceProperty: Amazon EC2 인스턴스가 상태 검사를 통과할 때까지 기다립니다. 인스턴스가 상태 확인을 통과하지 못하면, 원래 인스턴스 유형으로 다시 변경됩니다.

      1. aws:changeInstanceState: 원래 인스턴스 유형으로 변경하기 전에 Amazon EC2 인스턴스를 중단합니다.

      2. aws:changeInstanceState: 중지 상태에서 멈출 경우를 대비하여 해당 내용을 원래 인스턴스 유형으로 변경하기 전에 Amazon EC2 인스턴스를 강제로 중지합니다.

      3. aws:executeAwsApi: Amazon EC2 인스턴스를 해당하는 원래 유형으로 변경합니다.

      4. aws:sleep: 최종 일관성을 위해 인스턴스 유형을 변경한 후 3초 동안 기다립니다.

      5. aws:changeInstanceState: 인스턴스 유형을 변경하기 전에 Amazon EC2 인스턴스가 실행 중이었다면, 해당 인스턴스를 시작합니다.

      6. aws:waitForAwsResourceProperty: Amazon EC2 인스턴스가 상태 검사를 통과할 때까지 기다립니다.

  26. aws:sleep: 실행서를 종료하기 전에 기다립니다.