시작 템플릿을 사용해 EC2 인스턴스 실행하기

시작 템플릿을 사용해 EC2 인스턴스 실행하기

Amazon EC2 시작 템플릿(launch template)은 인스턴스 시작 파라미터를 저장해 두므로, 인스턴스를 실행할 때마다 매번 지정하지 않아도 돼요.

출처: 문서

본문

여러 인스턴스 시작 서비스가 인스턴스를 실행할 때 선택적으로 시작 템플릿을 사용할 수 있고, EC2 Fleet 같은 다른 서비스는 시작 템플릿을 사용하지 않으면 인스턴스를 실행할 수 없어요. 이 주제는 EC2 시작 인스턴스 마법사, Amazon EC2 Auto Scaling, EC2 Fleet, Spot Fleet으로 인스턴스를 실행할 때 시작 템플릿을 사용하는 방법을 설명해요.

시작 템플릿에 대한 자세한 내용(만드는 방법 포함)은 Amazon EC2 시작 템플릿에 인스턴스 시작 파라미터 저장하기 문서를 참고하세요.

주제

  • 시작 템플릿을 사용해 Amazon EC2 인스턴스 실행하기
  • 시작 템플릿을 사용해 Amazon EC2 Auto Scaling 그룹에서 인스턴스 실행하기
  • 시작 템플릿을 사용해 EC2 Fleet 실행하기
  • 시작 템플릿을 사용해 Spot Fleet 실행하기

시작 템플릿을 사용해 Amazon EC2 인스턴스 실행하기

시작 템플릿에 포함된 파라미터를 사용해 Amazon EC2 인스턴스를 실행할 수 있어요. 시작 템플릿을 선택한 뒤, 인스턴스를 실행하기 전에 시작 파라미터를 수정할 수 있어요.

시작 템플릿을 사용해 실행한 인스턴스에는 키가 aws:ec2launchtemplate:id와 aws:ec2launchtemplate:version인 두 개의 태그가 자동으로 지정돼요. 이 태그는 제거하거나 편집할 수 없어요.

Console

시작 템플릿을 사용해 인스턴스 실행하기

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 다음 옵션 중 하나로 시작 템플릿을 선택합니다.
    • Amazon EC2 콘솔 대시보드에서 Launch instance 옆의 아래 화살표를 선택하고 Launch instance from template을 선택한 다음, Source template에서 시작 템플릿을 선택합니다.
    • 탐색 창에서 Launch Templates를 선택하고 시작 템플릿을 선택한 다음 Actions, Launch instance from template을 선택합니다.
  3. Source template version에서 사용할 시작 템플릿 버전을 선택합니다.
  4. (선택) 시작 파라미터의 값을 수정할 수 있습니다. 값을 수정하지 않으면 시작 템플릿에 정의된 값이 사용돼요. 시작 템플릿에 값이 지정되지 않았다면 파라미터의 기본값이 사용돼요.
  5. Summary 패널의 Number of instances에서 실행할 인스턴스 수를 지정합니다.
  6. Launch instance를 선택합니다.

인스턴스가 실행에 실패하거나 상태가 running이 아니라 즉시 terminated로 가면 Troubleshoot Amazon EC2 instance launch issues 문서를 참고하세요.

AWS CLI

시작 템플릿에서 인스턴스 실행하기

  1. run-instances 명령을 사용하고 --launch-template 파라미터를 지정합니다. 선택적으로 사용할 시작 템플릿 버전을 지정합니다. 버전을 지정하지 않으면 기본 버전이 사용돼요.
aws ec2 run-instances \
    --launch-template LaunchTemplateId=lt-0abcd290751193123,Version=1
  1. 시작 템플릿 파라미터를 덮어쓰려면 run-instances 명령에 그 파라미터를 지정합니다. 다음 예시는 시작 템플릿에 지정된(있다면) 인스턴스 유형을 덮어써요.
aws ec2 run-instances \
    --launch-template LaunchTemplateId=lt-0abcd290751193123 \
    --instance-type t2.small
  1. 복잡한 구조의 일부인 중첩 파라미터를 지정하면, 인스턴스는 시작 템플릿에 지정된 복잡한 구조와 여러분이 지정한 추가 중첩 파라미터를 사용해 실행돼요.

다음 예시에서 인스턴스는 시작 템플릿에 지정된 다른 모든 태그와 함께 Owner = TeamA 태그로 실행돼요. 시작 템플릿에 키가 Owner인 기존 태그가 있다면 그 값은 TeamA로 바뀌어요.

aws ec2 run-instances \
    --launch-template LaunchTemplateId=lt-0abcd290751193123 \
    --tag-specifications "ResourceType=instance,Tags=[{Key=Owner,Value=TeamA}]"

다음 예시에서 인스턴스는 시작 템플릿에 지정된 다른 모든 블록 디바이스 매핑과 함께 디바이스 이름이 /dev/xvdb인 볼륨으로 실행돼요. 시작 템플릿에 /dev/xvdb에 대해 정의된 기존 볼륨이 있다면 그 값은 지정된 값으로 바뀌어요.

aws ec2 run-instances \
    --launch-template LaunchTemplateId=lt-0abcd290751193123 \
    --block-device-mappings "DeviceName=/dev/xvdb,Ebs={VolumeSize=20,VolumeType=gp2}"

인스턴스가 실행에 실패하거나 상태가 running이 아니라 즉시 terminated로 가면 Troubleshoot Amazon EC2 instance launch issues 문서를 참고하세요.

PowerShell

AWS Tools for PowerShell로 시작 템플릿에서 인스턴스 실행하기

  1. New-EC2Instance 명령을 사용하고 -LaunchTemplate 파라미터를 지정합니다. 선택적으로 사용할 시작 템플릿 버전을 지정합니다. 버전을 지정하지 않으면 기본 버전이 사용돼요.
Import-Module AWS.Tools.EC2
New-EC2Instance `
    -LaunchTemplate ( 
        New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ 
            LaunchTemplateId = 'lt-0abcd290751193123'; 
            Version          = '4' 
    } 
)
  1. 시작 템플릿 파라미터를 덮어쓰려면 New-EC2Instance 명령에 그 파라미터를 지정합니다. 다음 예시는 시작 템플릿에 지정된(있다면) 인스턴스 유형을 덮어써요.
Import-Module AWS.Tools.EC2
New-EC2Instance `
    -InstanceType t4g.small `
    -LaunchTemplate (
        New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ 
            LaunchTemplateId = 'lt-0abcd290751193123'; 
            Version          = '4' 
    } 
)
  1. 복잡한 구조의 일부인 중첩 파라미터를 지정하면, 인스턴스는 시작 템플릿에 지정된 복잡한 구조와 여러분이 지정한 추가 중첩 파라미터를 사용해 실행돼요.

다음 예시에서 인스턴스는 시작 템플릿에 지정된 다른 모든 태그와 함께 Owner = TeamA 태그로 실행돼요. 시작 템플릿에 키가 Owner인 기존 태그가 있다면 그 값은 TeamA로 바뀌어요.

Import-Module AWS.Tools.EC2
New-EC2Instance `
    -InstanceType t4g.small  `
    -LaunchTemplate ( 
        New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ 
            LaunchTemplateId = 'lt-0abcd290751193123'; 
            Version          = '4' 
        } 
) `
    -TagSpecification ( 
        New-Object -TypeName Amazon.EC2.Model.TagSpecification -Property @{ 
            ResourceType = 'instance'; 
            Tags         = @( 
                @{key = "Owner"; value = "TeamA" }, 
                @{key = "Department"; value = "Operations" } 
            ) 
        } 
)

다음 예시에서 인스턴스는 시작 템플릿에 지정된 다른 모든 블록 디바이스 매핑과 함께 디바이스 이름이 /dev/xvdb인 볼륨으로 실행돼요. 시작 템플릿에 /dev/xvdb에 대해 정의된 기존 볼륨이 있다면 그 값은 지정된 값으로 바뀌어요.

Import-Module AWS.Tools.EC2
New-EC2Instance `
    -InstanceType t4g.small  `
    -LaunchTemplate ( 
        New-Object -TypeName Amazon.EC2.Model.LaunchTemplateSpecification -Property @{ 
            LaunchTemplateId = 'lt-0abcd290751193123'; 
            Version          = '4' 
    } 
) `
    -BlockDeviceMapping  ( 
        New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping -Property @{ 
            DeviceName = '/dev/xvdb'; 
            EBS        = ( 
                New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice -Property @{ 
                    VolumeSize = 25; 
                    VolumeType = 'gp3' 
                } 
            ) 
        } 
)

인스턴스가 실행에 실패하거나 상태가 running이 아니라 즉시 terminated로 가면 Troubleshoot Amazon EC2 instance launch issues 문서를 참고하세요.

시작 템플릿을 사용해 Amazon EC2 Auto Scaling 그룹에서 인스턴스 실행하기

Auto Scaling 그룹을 만들고 그룹에 사용할 시작 템플릿을 지정할 수 있어요. Amazon EC2 Auto Scaling이 Auto Scaling 그룹에서 인스턴스를 실행할 때, 연결된 시작 템플릿에 정의된 시작 파라미터를 사용해요.

시작 템플릿을 사용해 Auto Scaling 그룹을 만들기 전에, Auto Scaling 그룹에서 인스턴스를 실행하는 데 필요한 파라미터를 포함한 시작 템플릿을 먼저 만들어야 해요. AMI ID 같은 일부 파라미터는 필수이고, 일부 파라미터는 Auto Scaling 그룹과 함께 사용할 수 없어요. 콘솔은 Amazon EC2 Auto Scaling과 함께 사용할 수 있는 템플릿을 만드는 데 도움이 되는 안내를 제공해요.

콘솔로 시작 템플릿을 사용하는 Auto Scaling 그룹 만들기

  • 지침은 Amazon EC2 Auto Scaling 사용 설명서의 Create an Auto Scaling group using a launch template 항목을 참고하세요.

AWS CLI로 시작 템플릿을 사용하는 Auto Scaling 그룹 만들기 또는 업데이트하기

  • create-auto-scaling-group 또는 update-auto-scaling-group 명령을 사용하고 --launch-template 파라미터를 지정합니다.

자세한 내용은 Amazon EC2 Auto Scaling 사용 설명서의 다음 항목을 참고하세요.

  • Create a launch template for an Auto Scaling group
  • Create a launch template using advanced settings
  • Examples for creating and managing launch templates with the AWS Command Line Interface (AWS CLI) — 다양한 파라미터 조합으로 시작 템플릿을 만드는 방법을 보여주는 예시를 제공해요.
  • Create Auto Scaling groups using launch templates
  • Update an Auto Scaling group

시작 템플릿을 사용해 EC2 Fleet 실행하기

EC2 Fleet 요청을 만들 때 시작 템플릿은 필수예요. Amazon EC2가 EC2 Fleet 요청을 충족할 때 연결된 시작 템플릿에 정의된 시작 파라미터를 사용해요. 시작 템플릿에 지정된 일부 파라미터를 덮어쓸 수 있어요. 자세한 내용은 EC2 Fleet 만들기 문서를 참고하세요.

AWS CLI로 시작 템플릿을 사용하는 EC2 Fleet 만들기

  • create-fleet 명령을 사용합니다. --launch-template-configs 파라미터를 사용해 시작 템플릿과 시작 템플릿에 대한 덮어쓰기를 지정합니다.

시작 템플릿을 사용해 Spot Fleet 실행하기

중요 — Spot Fleet은 투자 계획이 없는 레거시 API예요. 대신 EC2 Fleet 또는 Auto Scaling 그룹 사용을 권장해요. 자세한 내용은 어떤 플릿 방법이 가장 좋을까요? 문서를 참고하세요.

Spot Fleet 요청을 만들 때 시작 템플릿은 선택 사항이에요. 시작 템플릿을 사용하지 않으면 시작 파라미터를 수동으로 지정할 수 있어요. 시작 템플릿을 사용하면 Amazon EC2가 Spot Fleet 요청을 충족할 때 연결된 시작 템플릿에 정의된 시작 파라미터를 사용해요. 시작 템플릿에 지정된 일부 파라미터를 덮어쓸 수 있어요. 자세한 내용은 Spot Fleet 만들기 문서를 참고하세요.

시작 템플릿을 사용해 Spot Fleet 요청 만들기

  1. Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
  2. 탐색 창에서 Spot Requests를 선택합니다.
  3. Request Spot Instances를 선택합니다.
  4. Launch parameters에서 Use a launch template을 선택합니다.
  5. Launch template에서 시작 템플릿을 선택한 다음, 오른쪽 필드에서 시작 템플릿 버전을 선택합니다.
  6. 이 화면에서 다양한 옵션을 선택해 Spot Fleet을 구성합니다. 옵션에 대한 자세한 내용은 정의된 파라미터를 사용해 Spot Fleet 요청 만들기 문서를 참고하세요.
  7. Spot Fleet을 만들 준비가 되면 Launch를 선택합니다.

시작 템플릿을 사용해 Spot Fleet 요청 만들기

  • request-spot-fleet 명령을 사용합니다. LaunchTemplateConfigs 파라미터를 사용해 시작 템플릿과 시작 템플릿에 대한 덮어쓰기를 지정합니다.

더 알아보기

  • 시작 인스턴스 마법사로 실행하기
  • 기존 인스턴스에서 실행하기