Amazon EC2 Windows Server AMI용 EC2 Fast Launch 설정 구성

Amazon EC2 Windows Server AMI용 EC2 Fast Launch 설정 구성

EC2 Fast Launch는 AWS Management Console, API, SDK, CloudFormation, 또는 AWS CLI에서 소유한 Windows AMI나 공유받은 AMI에 대해 구성할 수 있어요. EC2 Fast Launch를 구성하기 전에 AMI가 사전 프로비저닝된 스냅샷(pre-provisioned snapshots)을 만드는 데 필요한 모든 사전 조건을 충족하는지 확인하세요. 자세한 내용은 EC2 Fast Launch prerequisites for Windows 문서를 참고하세요.

출처: 문서

본문

Windows 인스턴스의 빠른 실행을 활성화하면 Amazon EC2가 지정된 AMI와 실행 템플릿(제공된 경우)에서 인스턴스를 실행하는 데 필요한 권한(암호화된 AMI 권한 포함)이 있는지 확인합니다. 인스턴스 실행 과정에서 오류를 방지하기 위해 서비스는 EC2 Fast Launch가 활성화되기 전에 사용자의 권한을 검증합니다. 필요한 권한이 없으면 서비스는 오류를 반환하고 EC2 Fast Launch를 활성화하지 않아요.

EC2 Fast Launch는 EC2 Image Builder와 통합되어 EC2 Fast Launch가 활성화된 커스텀 이미지를 만드는 데 도움을 줍니다. 자세한 내용은 EC2 Image Builder 사용 설명서의 Create distribution settings for a Windows AMI with EC2 Fast Launch enabled (AWS CLI) 문서를 참고하세요.

EC2 Fast Launch 활성화하기

이 설정을 변경하기 전에 AMI와 실행 중인 리전이 Windows용 모든 EC2 Fast Launch 사전 조건을 충족하는지 확인하세요.

콘솔 (Console)

EC2 Fast Launch를 활성화하려면

  1. Amazon EC2 콘솔을 엽니다. https://console.aws.amazon.com/ec2/
  2. 탐색 창의 Images 아래에서 AMIs를 선택합니다.
  3. Name 옆의 확인란을 선택해 업데이트할 AMI를 선택합니다.
  4. AMI 목록 위의 Actions 메뉴에서 Configure fast launch를 선택합니다. 그러면 EC2 Fast Launch 설정을 구성하는 Configure fast launch 페이지가 열립니다.
  5. 사전 프로비저닝된 스냅샷을 사용해 Windows AMI에서 인스턴스를 더 빠르게 실행하려면 Enable fast launch for Windows 확인란을 선택합니다.
  6. Set anticipated launch frequency 드롭다운 목록에서 예상 인스턴스 실행 볼륨을 커버하기 위해 생성·유지되는 스냅샷 수를 지정하는 값을 선택합니다.
  7. 변경을 마쳤으면 Save changes를 선택합니다.

참고: VPC를 지정하거나 IMDSv2용 메타데이터 설정을 구성하기 위해 실행 템플릿이 필요하다면 Use a launch template when you set up EC2 Fast Launch 문서를 참고하세요.

AWS CLI

EC2 Fast Launch를 활성화하려면

다음 enable-fast-launch 명령을 사용해 지정된 AMI의 EC2 Fast Launch를 활성화하고, 사전 프로비저닝을 위해 6개의 병렬 인스턴스를 실행합니다.

aws ec2 enable-fast-launch \
    --image-id ami-0abcdef1234567890  \
    --max-parallel-launches 6 \
    --resource-type snapshot

다음은 출력 예시입니다.

{
	"ImageId": "ami-0abcdef1234567890",
	"ResourceType": "snapshot",
	"SnapshotConfiguration": {
	    "TargetResourceCount": 10
	},
	"LaunchTemplate": {},
	"MaxParallelLaunches": 6,
	"OwnerId": "0123456789123",
	"State": "enabling",
	"StateTransitionReason": "Client.UserInitiated",
	"StateTransitionTime": "2022-01-27T22:16:03.199000+00:00"
}

PowerShell

EC2 Fast Launch를 활성화하려면

Enable-EC2FastLaunch cmdlet을 사용해 지정된 AMI의 EC2 Fast Launch를 활성화하고, 사전 프로비저닝을 위해 6개의 병렬 인스턴스를 실행합니다.

Enable-EC2FastLaunch `
	-ImageId ami-0abcdef1234567890 `
	-MaxParallelLaunch 6 `
	-Region us-west-2 `
	-ResourceType snapshot

다음은 출력 예시입니다.

ImageId               : ami-0abcdef1234567890
	LaunchTemplate        :
	MaxParallelLaunches   : 6
	OwnerId               : 0123456789123
	ResourceType          : snapshot
	SnapshotConfiguration : Amazon.EC2.Model.FastLaunchSnapshotConfigurationResponse
	State                 : enabling
	StateTransitionReason : Client.UserInitiated
	StateTransitionTime   : 2/25/2022 12:24:11 PM

EC2 Fast Launch 비활성화하기

이 설정을 변경하기 전에 AMI와 실행 중인 리전이 Windows용 모든 EC2 Fast Launch 사전 조건을 충족하는지 확인하세요.

콘솔 (Console)

EC2 Fast Launch를 비활성화하려면

  1. Amazon EC2 콘솔을 엽니다. https://console.aws.amazon.com/ec2/
  2. 탐색 창의 Images 아래에서 AMIs를 선택합니다.
  3. Name 옆의 확인란을 선택해 업데이트할 AMI를 선택합니다.
  4. AMI 목록 위의 Actions 메뉴에서 Configure fast launch를 선택합니다. 그러면 EC2 Fast Launch 설정을 구성하는 Configure fast launch 페이지가 열립니다.
  5. Enable fast launch for Windows 확인란을 선택 해제해 EC2 Fast Launch를 비활성화하고 사전 프로비저닝된 스냅샷을 제거합니다. 이로 인해 AMI는 앞으로 각 인스턴스에 표준 실행 프로세스를 사용합니다.
    • 참고: Windows 이미지 최적화를 비활성화하면 기존 사전 프로비저닝된 스냅샷이 자동으로 삭제됩니다. 이 단계는 기능을 다시 사용하기 전에 완료되어야 해요.

  6. 변경을 마쳤으면 Save changes를 선택합니다.

AWS CLI

EC2 Fast Launch를 비활성화하려면

다음 disable-fast-launch 명령을 사용해 지정된 AMI의 EC2 Fast Launch를 비활성화하고 기존 사전 프로비저닝된 스냅샷을 정리합니다.

aws ec2 disable-fast-launch --image-id ami-01234567890abcedf

다음은 출력 예시입니다.

{
    "ImageId": "ami-01234567890abcedf",
    "ResourceType": "snapshot",
    "SnapshotConfiguration": {},
    "LaunchTemplate": {
        "LaunchTemplateId": "lt-01234567890abcedf",
        "LaunchTemplateName": "EC2FastLaunchDefaultResourceCreation-a8c6215d-94e6-441b-9272-dbd1f87b07e2",
        "Version": "1"
    },
    "MaxParallelLaunches": 6,
    "OwnerId": "0123456789123",
    "State": "disabling",
    "StateTransitionReason": "Client.UserInitiated",
    "StateTransitionTime": "2022-01-27T22:47:29.265000+00:00"
}

PowerShell

EC2 Fast Launch를 비활성화하려면

Disable-EC2FastLaunch cmdlet을 사용해 지정된 AMI의 EC2 Fast Launch를 비활성화하고 기존 사전 프로비저닝된 스냅샷을 정리합니다.

Disable-EC2FastLaunch -ImageId ami-0abcdef1234567890

다음은 출력 예시입니다.

ImageId               : ami-0abcdef1234567890
	LaunchTemplate        : Amazon.EC2.Model.FastLaunchLaunchTemplateSpecificationResponse
	MaxParallelLaunches   : 6
	OwnerId               : 0123456789123
	ResourceType          : snapshot
	SnapshotConfiguration :
	State                 : disabling
	StateTransitionReason : Client.UserInitiated
	StateTransitionTime   : 2/25/2022 1:10:08 PM

EC2 Fast Launch 설정 시 실행 템플릿 사용하기

실행 템플릿을 사용하면 Amazon EC2가 해당 템플릿에서 인스턴스를 실행할 때마다 사용하는 실행 파라미터 집합을 구성할 수 있어요. 기본 이미지에 사용할 AMI, 인스턴스 유형, 스토리지, 네트워크 설정 등을 지정할 수 있습니다.

실행 템플릿은 다음 특정 경우를 제외하면 선택 사항이며, 빠른 실행을 구성할 때 Windows AMI에 실행 템플릿을 반드시 사용해야 합니다.

  • Windows AMI에 기존 VPC를 지정하려면 실행 템플릿을 사용해야 해요. AWS 계정의 기본 VPC를 사용하는 경우에는 적용되지 않습니다.
  • 계정에 Amazon EC2 인스턴스에 IMDSv2를 강제하는 정책이 포함되어 있다면, IMDSv2를 강제하는 메타데이터 구성을 지정하는 실행 템플릿을 만들어야 해요.
  • EC2 콘솔에서, 또는 AWS CLI에서 enable-fast-launch 명령을 실행하거나 EnableFastLaunch API 작업을 호출할 때 메타데이터 구성을 포함한 실행 템플릿을 사용합니다.

실행 템플릿을 사용할 때 EC2 Fast Launch는 다음 구성을 지원하지 않아요. EC2 Fast Launch에 실행 템플릿을 사용하면 다음 중 어떤 것도 지정하지 말아야 합니다.

  • 사용자 데이터 스크립트
  • 종료 방지(Termination protection)
  • 비활성화된 메타데이터
  • Spot 옵션
  • 인스턴스를 종료하는 종료 동작(Shutdown behavior)
  • 네트워크 인터페이스, Elastic Graphics, 또는 Spot Instance 요청용 리소스 태그

VPC 지정하기

1단계: 실행 템플릿 만들기

Windows 인스턴스에 대해 다음 세부 정보를 지정하는 실행 템플릿을 만듭니다.

  • VPC 서브넷
  • t3.xlarge 인스턴스 유형

자세한 내용은 Create an Amazon EC2 launch template 문서를 참고하세요.

2단계: EC2 Fast Launch AMI에 실행 템플릿 지정하기

콘솔 (Console)

  1. Amazon EC2 콘솔을 엽니다. https://console.aws.amazon.com/ec2/
  2. 탐색 창의 Images 아래에서 AMIs를 선택합니다.
  3. Name 옆의 확인란을 선택해 업데이트할 AMI를 선택합니다.
  4. AMI 목록 위의 Actions 메뉴에서 Configure fast launch를 선택합니다. 그러면 EC2 Fast Launch 설정을 구성하는 Configure fast launch 페이지가 열립니다.
    • Launch template 상자는 입력한 텍스트와 일치하는 현재 리전의 계정 내 실행 템플릿을 찾는 필터링 검색을 수행합니다. 상자에 실행 템플릿 이름이나 ID의 전체 또는 일부를 지정해 일치하는 실행 템플릿 목록을 표시합니다. 예를 들어 상자에 fast를 입력하면 Amazon EC2가 이름에 "fast"가 있는 현재 리전의 모든 실행 템플릿을 찾습니다.
    • 새 실행 템플릿을 만들려면 Create launch template을 선택할 수 있어요.
    • 실행 템플릿을 선택하면 Amazon EC2가 Source template version 상자에 해당 템플릿의 기본 버전을 표시합니다. 다른 버전을 지정하려면 기본 버전을 강조 표시해 교체하고 상자에 원하는 버전 번호를 입력하세요.
  5. 변경을 마쳤으면 Save changes를 선택합니다.

AWS CLI

--launch-template 옵션과 함께 enable-fast-launch 명령을 사용하고, 실행 템플릿의 이름 또는 ID를 지정합니다.

--launch-template LaunchTemplateName=my-launch-template

PowerShell

-LaunchTemplate_LaunchTemplateId 또는 -LaunchTemplate_LaunchTemplateName 파라미터와 함께 Enable-EC2FastLaunch cmdlet을 사용합니다.

-LaunchTemplate_LaunchTemplateName my-launch-template

EC2 실행 템플릿에 대한 자세한 내용은 Store instance launch parameters in Amazon EC2 launch templates 문서를 참고하세요.

EC2 Fast Launch의 권한 검사 (Permissions checks for EC2 Fast Launch)

실행 템플릿으로 EC2 Fast Launch를 활성화할 때 번호가 매겨진 버전의 템플릿을 지정할 수 있습니다. $Latest 또는 $Default 버전을 사용할 수도 있어요. 별칭 중 하나를 사용하면 별칭이 사용자가 제한하려고 했던 ec2:RunInstances와 iam:PassRole 권한을 덮어쓸 수 있습니다.

EC2 Fast Launch를 활성화하면 Amazon EC2가 현재 실행 템플릿 버전에 대한 사용자의 권한을 확인합니다. $Latest와 $Default는 각각 그 시점의 특정 버전으로 해석됩니다. 이 검사는 Amazon EC2가 기능을 활성화하기 전에 실행됩니다. 여기서는 인스턴스를 실행하는 데 필요한 권한(예: ec2:RunInstances와 iam:PassRole)을 검증합니다. 이를 위해 EC2 Fast Launch는 인스턴스를 실행하지 않고 권한을 확인하는 RunInstances dry run 호출을 발행합니다. 사용자의 권한이 필요한 작업을 허용하지 않으면 Amazon EC2는 요청을 실패시키고 누락된 권한을 설명하는 오류를 반환합니다. Amazon EC2는 EC2 Fast Launch를 활성화하지 않아요.

이 초기 검사가 완료된 후 EC2 Fast Launch는 백그라운드에서 사전 프로비저닝된 스냅샷을 만듭니다. 그런 다음 서비스 연결 역할의 권한을 사용해 인스턴스를 실행합니다. 인스턴스를 실행할 때마다 그 시점에 $Latest 또는 $Default가 해석되는 버전을 사용합니다. 이는 초기 검사 후 버전이 변경된 경우에도 마찬가지예요. 사용자의 권한을 다시 확인하지 않습니다. 그 결과, 실행 템플릿을 업데이트할 수 있는 사람은 IAM 역할이나 인스턴스 프로필을 인스턴스에 전달할 수 있습니다. 이는 그 역할에 대한 iam:PassRole 권한이 없더라도 발생할 수 있습니다.

Amazon EC2가 기능을 활성화할 때 검증한 버전을 항상 사용하도록 하려면 번호가 매겨진 실행 템플릿 버전을 지정하세요. $Latest나 $Default를 사용하지 마세요.

EC2 Fast Launch를 $Latest 또는 $Default 실행 템플릿 버전을 사용하도록 구성한다면, 실행 템플릿 버전을 만들고 관리할 수 있는 사람을 제한할 것을 권장합니다. ec2:CreateLaunchTemplateVersion과 ec2:ModifyLaunchTemplate 같은 작업에 대한 접근을 제한하려면 IAM 정책을 사용하세요.

더 알아보기 (Learn more)