기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하여 시작 템플릿을 생성하고 관리하는 예제 AWS CLI
AWS Management Console AWS Command Line Interface (AWS CLI) 또는 SDKs를 통해 시작 템플릿을 생성하고 관리할 수 있습니다. 이 섹션에서는에서 Amazon EC2 Auto Scaling용 시작 템플릿을 생성하고 관리하는 예제를 보여줍니다 AWS CLI.
내용
사용 예
{ "LaunchTemplateName": "my-template-for-auto-scaling", "VersionDescription": "test description", "LaunchTemplateData": { "ImageId": "ami-04d5cc9b88example", "InstanceType": "t2.micro", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "Monitoring": { "Enabled": true }, "Placement": { "Tenancy": "dedicated" }, "CreditSpecification": { "CpuCredits": "unlimited" }, "MetadataOptions": { "HttpTokens": "required", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled" } } }
기본 시작 템플릿 생성
기본 시작 템플릿을 생성하려면 다음과 같이 다음과 같이 create-launch-template 명령을 사용합니다.
-
를 인스턴스
ami-04d5cc9b88example
를 시작할 AMI의 ID로 바꿉니다. -
t2.micro
를 지정한 AMI와 호환되는 인스턴스 유형으로 바꿉니다.
이 예제에서는 이름이 인 시작 템플릿을 생성합니다.my-template-for-auto-scaling
. 이 시작 템플릿에서 생성된 인스턴스가 기본 VPC로 시작되면 기본적으로 퍼블릭 IP 주소를 수신합니다. 인스턴스가 기본값이 아닌 VPC로 시작되는 경우 기본적으로 퍼블릭 IP 주소를 수신하지 않습니다.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
JSON 형식 파라미터 인용에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서의 문자열과 함께 인용 부호 사용을 AWS CLI 참조하세요.
또는 구성 파일에서 JSON 형식 파라미터를 지정할 수 있습니다.
다음 예에서는 시작 템플릿 파라미터 값을 위해 구성 파일을 참조하는 기본 시작 템플릿을 생성합니다.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data file://config.json
config.json
의 콘텐츠:
{ "ImageId":"
ami-04d5cc9b88example
", "InstanceType":"t2.micro
" }
시작 시 인스턴스에 태그를 지정하는 태그 지정
다음 예제에서는 시작 시 인스턴스에 태그(예: purpose=webserver
)를 추가합니다.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"purpose
","Value":"webserver
"}]}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
참고
시작 템플릿에 인스턴스 태그를 지정하고 Auto Scaling 그룹의 태그를 해당 인스턴스로 전파하도록 선택한 경우 모든 태그가 병합됩니다. 시작 템플릿의 태그와 Auto Scaling 그룹의 태그에 대해 동일한 태그 키가 지정된 경우 그룹의 태그 값이 우선합니다.
인스턴스에 전달할 IAM 역할 지정
다음 예제에서는 시작 시 인스턴스에 전달할 IAM 역할과 연결된 인스턴스 프로파일의 이름을 지정합니다. 자세한 내용은 Amazon IAM 인스턴스에서 실행되는 애플리케이션의 EC2 역할 단원을 참조하십시오.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"IamInstanceProfile":{"Name":"my-instance-profile
"},"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
퍼블릭 IP 주소 배정
다음 create-launch-template 예제에서는 기본이 아닌 VPC에서 시작된 인스턴스에 퍼블릭 주소를 할당하도록 시작 템플릿을 구성합니다.
참고
네트워크 인터페이스를 지정할 때 Auto Scaling 그룹이 인스턴스를 시작할 VPC의 보안 그룹에 Groups
해당하는 값을 지정합니다. VPC 서브넷을 Auto Scaling 그룹의 속성으로 지정합니다.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":true
,"Groups":["sg-903004f88example
"],"DeleteOnTermination":true
}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
시작 시 인스턴스를 구성하는 사용자 데이터 스크립트 지정
다음 예제에서는 시작 시 인스턴스를 구성하는 base64로 인코딩된 문자열로 사용자 데이터 스크립트를 지정합니다. create-launch-template 명령에는 base64로 인코딩된 사용자 데이터가 필요합니다.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"UserData":"IyEvYmluL2Jhc...
","ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
블록 디바이스 매핑 지정
다음 create-launch-template 예제는 블록 디바이스 매핑을 사용하여 시작 템플릿을 생성합니다.에 매핑된 22기가바이트 EBS 볼륨입니다/dev/xvdcz
. /dev/xvdcz
볼륨은 범용 SSD(gp2) 볼륨 유형을 사용하며 연결된 인스턴스를 종료할 때 삭제됩니다.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"BlockDeviceMappings":[{"DeviceName":"/dev/xvdcz
","Ebs":{"VolumeSize":22
,"VolumeType":"gp2
","DeleteOnTermination":true
}}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
외부 공급 업체의 소프트웨어 라이선스를 가져오기 위한 전용 호스트 지정
host 테넌시를 지정한 경우 호스트 리소스 그룹 및 License Manager 라이센스 구성을 지정하여 외부 공급 업체에서 적합한 소프트웨어 라이선스를 가져올 수 있습니다. 그런 다음 다음 EC2 명령을 사용하여 create-launch-template 인스턴스에서 라이선스를 사용할 수 있습니다.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"Placement":{"Tenancy":"host","HostResourceGroupArn":"arn
"},"LicenseSpecifications":[{"LicenseConfigurationArn":"arn
"}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
기존 네트워크 인터페이스 지정
다음 create-launch-template 예제에서는 기존 네트워크 인터페이스를 사용하도록 기본 네트워크 인터페이스를 구성합니다.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"NetworkInterfaceId":"eni-b9a5ac93
","DeleteOnTermination":false
}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
여러 네트워크 인터페이스 생성
다음 create-launch-template 예제에서는 보조 네트워크 인터페이스를 추가합니다. 주 네트워크 인터페이스의 디바이스 인덱스는 0이고 보조 네트워크 인터페이스의 디바이스 인덱스는 1입니다.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"Groups":["sg-903004f88example
"],"DeleteOnTermination":true
},{"DeviceIndex":1,"Groups":["sg-903004f88example
"],"DeleteOnTermination":true
}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
여러 네트워크 카드 및 Elastic Fabric Adapter(EFAs)를 지원하는 인스턴스 유형을 사용하는 경우 보조 네트워크 카드에 보조 인터페이스를 추가하고 다음 EFA 명령을 사용하여 create-launch-template를 활성화할 수 있습니다. 자세한 내용은 Amazon EFA 사용 설명서의 시작 템플릿에 Word 추가를 참조하세요. EC2
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"NetworkInterfaces":[{"NetworkCardIndex":0,"DeviceIndex":0,"Groups":["sg-7c2270198example
"],"InterfaceType":"efa","DeleteOnTermination":true
},{"NetworkCardIndex":1
,"DeviceIndex":1
,"Groups":["sg-7c2270198example
"],"InterfaceType":"efa","DeleteOnTermination":true
}],"ImageId":"ami-09d95fab7fexample
","InstanceType":"p4d.24xlarge
"}'
주의
p4d.24xlarge 인스턴스 유형은 이 섹션의 다른 예제보다 비용이 많이 발생합니다. P4d 인스턴스 요금에 대한 자세한 내용은 Amazon EC2 P4d 인스턴스 요금을 참조하세요
참고
동일한 서브넷의 여러 네트워크 인터페이스를 인스턴스에 연결하면 특히, Amazon Linux가 아닌 변형을 사용하는 인스턴스에서 비대칭 라우팅이 도입될 수 있습니다. 이러한 유형의 구성이 필요한 경우 OS 내에서 보조 네트워크 인터페이스를 구성해야 합니다. 예를 들어 AWS 지식 센터의 Ubuntu EC2 인스턴스에서 보조 네트워크 인터페이스를 작동하려면 어떻게 해야 합니까?
시작 템플릿 관리
에는 시작 템플릿을 관리하는 데 도움이 되는 몇 가지 다른 명령이 AWS CLI 포함되어 있습니다.
시작 템플릿 나열 및 설명
두 가지 AWS CLI 명령인 describe-launch-templates와 describe-launch-template-versions를 사용하여 시작 템플릿에 대한 정보를 가져올 수 있습니다.
describe-launch-templates 명령을 사용하면 생성한 시작 템플릿 목록을 가져올 수 있습니다. 옵션을 사용하여 시작 템플릿 이름에 대한 결과를 필터링하거나, 시간, 태그 키 또는 태그 키-값 조합을 만들 수 있습니다. 이 명령은 시작 템플릿 식별자, 최신 버전, 기본 버전 등을 비롯하여 시작 템플릿에 대한 요약 정보를 반환합니다.
다음 예제에서는 지정된 시작 템플릿에 대한 요약을 제공합니다.
aws ec2 describe-launch-templates --launch-template-names
my-template-for-auto-scaling
다음은 응답의 예입니다.
{
"LaunchTemplates": [
{
"LaunchTemplateId": "lt-068f72b729example",
"LaunchTemplateName": "my-template-for-auto-scaling",
"CreateTime": "2020-02-28T19:52:27.000Z",
"CreatedBy": "arn:aws:iam::123456789012:user/Bob",
"DefaultVersionNumber": 1,
"LatestVersionNumber": 1
}
]
}
시작 템플릿 하나로 출력을 제한하기 위해 --launch-template-names
옵션을 사용하지 않는 경우 모든 시작 템플릿에 대한 정보가 반환됩니다.
다음 describe-launch-template-versions 명령은 지정된 시작 템플릿의 버전을 설명하는 정보를 제공합니다.
aws ec2 describe-launch-template-versions --launch-template-id
lt-068f72b729example
다음은 응답의 예입니다.
{
"LaunchTemplateVersions": [
{
"VersionDescription": "version1",
"LaunchTemplateId": "lt-068f72b729example",
"LaunchTemplateName": "my-template-for-auto-scaling",
"VersionNumber": 1,
"CreatedBy": "arn:aws:iam::123456789012:user/Bob",
"LaunchTemplateData": {
"TagSpecifications": [
{
"ResourceType": "instance",
"Tags": [
{
"Key": "purpose",
"Value": "webserver"
}
]
}
],
"ImageId": "ami-04d5cc9b88example",
"InstanceType": "t2.micro",
"NetworkInterfaces": [
{
"DeviceIndex": 0,
"DeleteOnTermination": true,
"Groups": [
"sg-903004f88example"
],
"AssociatePublicIpAddress": true
}
]
},
"DefaultVersion": true,
"CreateTime": "2020-02-28T19:52:27.000Z"
}
]
}
시작 템플릿 버전 생성
다음 create-launch-template-version 명령은 시작 템플릿 버전 1을 기반으로 새 시작 템플릿 버전을 생성하고 다른 AMI ID를 지정합니다.
aws ec2 create-launch-template-version --launch-template-id
lt-068f72b729example
--version-descriptionversion2
\ --source-version1
--launch-template-data "ImageId=ami-c998b6b2example
"
시작 템플릿의 기본 버전을 설정하려면 modify-launch-template 명령을 사용합니다.
시작 템플릿 버전 삭제
다음 delete-launch-template-versions 명령은 지정된 시작 템플릿 버전을 삭제합니다.
aws ec2 delete-launch-template-versions --launch-template-id
lt-068f72b729example
--versions 1
시작 템플릿 삭제
시작 템플릿이 더 이상 필요하지 않은 경우 다음 delete-launch-template 명령을 사용하여 삭제할 수 있습니다. 시작 템플릿을 삭제하면 모든 버전이 삭제됩니다.
aws ec2 delete-launch-template --launch-template-id
lt-068f72b729example
시작 템플릿을 사용하도록 Auto Scaling 그룹 업데이트
update-auto-scaling-group 명령을 사용하여 기존 Auto Scaling 그룹에 시작 템플릿을 추가할 수 있습니다.
최신 버전의 시작 템플릿을 사용하도록 Auto Scaling 그룹 업데이트
다음 update-auto-scaling-group 명령은 지정된 시작 템플릿의 최신 버전을 사용하도록 지정된 Auto Scaling 그룹을 업데이트합니다.
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --launch-template LaunchTemplateId=lt-068f72b729example
,Version='$Latest'
특정 버전의 시작 템플릿을 사용하도록 Auto Scaling 그룹 업데이트
다음 update-auto-scaling-group 명령은 지정된 시작 템플릿의 특정 버전을 사용하도록 지정된 Auto Scaling 그룹을 업데이트합니다.
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --launch-template LaunchTemplateName=my-template-for-auto-scaling
,Version='2
'