시작 템플릿 및 ASG 구성
올바른 AMI, 인스턴스 유형 및 사용자 데이터를 포함한 시작 템플릿을 생성한 다음 최소, 최대 및 희망 용량을 설정하여 Auto Scaling Group에 연결합니다.
시작 템플릿 및 ASG 구성은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
시작 템플릿이란 무엇인가요?
시작 템플릿은 Auto Scaling 그룹(및 EC2에 직접 인스턴스를 시작하는 경우)에 인스턴스를 시작하는 방법을 알려 주는 버전 관리형 설계도입니다. 이 템플릿에는 AMI ID, 인스턴스 유형, 키 페어, 보안 그룹 및 선택적 사용자 데이터가 재사용 가능한 하나의 문서에 포함됩니다. 이전의 시작 구성과 달리 시작 템플릿은 여러 버전을 지원하며 ASG를 교체하지 않고도 업데이트할 수 있습니다.
CLI를 통한 시작 템플릿 생성
create-launch-template을 사용하여 AWS CLI로 시작 템플릿을 생성할 수 있습니다. --launch-template-data 매개변수는 모든 인스턴스 설정을 정의하는 JSON 객체를 받습니다. 버전 관리를 사용하면 실행 중인 인스턴스에 영향을 주지 않고 템플릿을 수정할 수 있으며, 배포할 준비가 되었을 때 변경 사항을 적용할 수 있습니다.
aws ec2 create-launch-template \
--launch-template-name 'MyAppTemplate' \
--version-description 'v1 initial' \
--launch-template-data '{
"ImageId": "ami-0abcdef1234567890",
"InstanceType": "t3.medium",
"KeyName": "my-key-pair",
"SecurityGroupIds": ["sg-0123456789abcdef0"],
"UserData": "IyEvYmluL2Jhc2gKZWNobyAnSGVsbG8n"
}'시작 템플릿 버전 및 기본값
모든 시작 템플릿은 버전 1에서 시작합니다. 새 버전을 만들 때 변경된 필드만 재정의할 수 있으며, 다른 모든 설정은 원본 버전에서 상속됩니다. ASG에는 $Latest 버전(항상 최신 버전) 또는 $Default 버전(명시적으로 지정된 버전)을 사용하도록 설정할 수 있습니다. $Default를 사용하면 배포를 제어할 수 있고, $Latest는 개발 환경에서 편리합니다.
# Create a new version based on version 1, changing only instance type
aws ec2 create-launch-template-version \
--launch-template-name 'MyAppTemplate' \
--source-version 1 \
--launch-template-data '{"InstanceType": "t3.large"}'Auto Scaling Group 핵심 개념
Auto Scaling Group (ASG)은 정의된 범위 내에서 EC2 인스턴스 집합을 유지합니다. 범위에는 최솟값(하한), 최댓값(상한), 희망 용량(언제든 유지하려는 목표 개수)이 포함됩니다. 인스턴스가 상태 확인에 실패하거나 조정 정책이 실행되면 ASG는 최솟값과 최댓값 사이에서 집합을 희망 개수로 유지하도록 인스턴스를 자동으로 시작하거나 종료합니다.
Launch Template에 연결된 ASG 생성
ASG를 생성할 때는 특정 AMI를 직접 지정하지 않고 Launch Template을 참조합니다. 또한 인스턴스를 시작할 VPC 서브넷도 지정합니다. 여러 서브넷(AZ당 하나)에 분산하면 기본적으로 다중 AZ 중복성이 제공됩니다. 한 AZ에 장애가 발생하면 ASG가 나머지 AZ에 대체 인스턴스를 자동으로 시작합니다.
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name 'MyAppASG' \
--launch-template 'LaunchTemplateName=MyAppTemplate,Version=$Default' \
--min-size 2 \
--max-size 10 \
--desired-capacity 4 \
--vpc-zone-identifier 'subnet-aaa111,subnet-bbb222,subnet-ccc333'ASG 상태 확인: EC2와 ELB 비교
기본적으로 ASG는 EC2 상태 확인을 사용합니다. 이 확인은 인스턴스가 중지되거나 종료되었거나 하이퍼바이저가 장애를 보고한 경우에만 인스턴스를 비정상으로 표시합니다. 로드 밸런서를 연결했다면 ELB 상태 확인으로 전환해야 합니다. 그러면 ASG가 실행 중이지만 HTTP 5xx 오류를 반환하는 인스턴스를 교체합니다. 이는 시험에서 자주 출제되는 문제입니다. 아키텍처에 로드 밸런서가 있으면 항상 ELB 상태 확인을 선택해야 합니다.
# Enable ELB health checks on an existing ASG
aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name 'MyAppASG' \
--health-check-type ELB \
--health-check-grace-period 300용량 설정: 최솟값, 최댓값, 희망값
올바른 용량 범위를 설정하는 것은 매우 중요합니다. 최솟값은 애플리케이션이 항상 트래픽을 처리할 수 있도록 보장합니다(이 값 아래로 내려가지 않음). 최댓값은 과도한 조정으로 서비스 한도나 예산이 소진되는 것을 방지합니다. 희망 용량은 초기 목표이며, 조정 정책이 이를 동적으로 변경합니다. min=max=desired로 설정하면 ASG가 고정 크기 그룹으로 작동하므로 Launch Template 배포나 용량 고정에 유용합니다.
ALB 대상 그룹을 ASG에 연결
웹 계층 애플리케이션의 경우 ASG를 Application Load Balancer 대상 그룹에 연결합니다. ASG가 시작하는 각각의 새 인스턴스는 대상 그룹에 자동으로 등록되고, 종료된 인스턴스는 자동으로 등록 해제됩니다. 이를 통해 정상적으로 실행 중인 인스턴스로만 트래픽이 전달됩니다. 또한 상태 확인 유형을 ELB로 설정해야 ASG가 로드 밸런서 수준의 장애를 인식할 수 있습니다.
aws autoscaling attach-load-balancer-target-groups \
--auto-scaling-group-name 'MyAppASG' \
--target-group-arns 'arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/MyTG/abc123'Launch Template의 사용자 데이터
사용자 데이터는 인스턴스가 처음 부팅될 때 한 번 실행되는 셸 스크립트(Base64로 인코딩됨)입니다. Launch Template에서는 패키지를 설치하고, 에이전트(CloudWatch, SSM)를 구성하며, 애플리케이션 코드를 가져오는 데 적합합니다. 사용자 데이터는 멱등성을 유지해야 합니다. 두 번 이상 실행해도 안전한 스크립트는 인스턴스 새로 고침 중 발생하는 문제를 방지합니다. 복잡한 설정의 경우 큰 스크립트를 직접 포함하기보다 AWS Systems Manager나 구성 관리 도구를 호출하십시오.
#!/bin/bash
yum update -y
yum install -y amazon-cloudwatch-agent
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config -m ec2 -c ssm:/MyApp/CWConfig -s
# Start application
cd /opt/myapp && ./start.sh더 빠른 확장을 위한 웜 풀
웜 풀은 ASG 외부에서 중지되었거나 실행 중인 EC2 인스턴스 집합을 준비된 상태로 미리 초기화합니다. ASG가 확장해야 할 때 콜드 인스턴스를 새로 시작하는 대신 웜 풀에서 가져오므로 용량을 추가하는 데 필요한 시간이 크게 줄어듭니다. 웜 풀의 인스턴스에는 중지 상태 비용이 발생합니다(EBS 비용만 발생하고 CPU 요금은 없음). 따라서 완전히 실행 중인 예비 인스턴스를 유지하는 것보다 훨씬 저렴합니다.
종료 정책과 AZ 균형
ASG가 축소될 때는 어떤 인스턴스를 종료할지 결정해야 합니다. 기본 종료 정책은 먼저 인스턴스가 가장 많은 AZ를 선택하여 균형을 조정하고, 그다음 가장 오래된 Launch Template을 선택하며, 마지막으로 과금 시간이 가장 가까운 인스턴스를 선택합니다. 이 순서는 사용자 지정할 수 있습니다. 예를 들어 OldestLaunchTemplate을 선택하면 오래된 구성을 실행 중인 인스턴스부터 제거할 수 있습니다. 또한 ASG는 서브넷을 사용할 수 있게 된 후나 수동 변경 후에 AZ 재조정도 자동으로 수행합니다.
빠른 확인
이 강의에서 다룬 AWS Solutions Architect (SAA-C03) 개념에 대한 이해도를 확인해 보십시오.
강의 요약
이 강의에서는 다음을 배웠습니다. Launch Template은 여러 버전과 $Latest/$Default 버전 포인터를 지원하는 버전 관리형 재사용 가능 인스턴스 청사진을 제공합니다. ASG 용량 범위(최솟값/최댓값/희망값)는 서브넷 전체의 자동 다중 AZ 분산을 통해 집합의 크기를 관리합니다. 또한 ASG가 로드 밸런서 뒤에 있을 때는 ELB 상태 확인을 활성화해야 애플리케이션 수준의 장애가 교체를 트리거합니다. 다음으로 대상 추적과 단계 조정을 포함한 조정 정책을 살펴보겠습니다.
자주 묻는 질문
“시작 템플릿 및 ASG 구성” 강의는 무료인가요?
네 — “시작 템플릿 및 ASG 구성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“시작 템플릿 및 ASG 구성”에서 뭘 배우나요?
올바른 AMI, 인스턴스 유형 및 사용자 데이터를 포함한 시작 템플릿을 생성한 다음 최소, 최대 및 희망 용량을 설정하여 Auto Scaling Group에 연결합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“시작 템플릿 및 ASG 구성” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 시작 템플릿 및 ASG 구성
- 확장 정책: 대상 추적 및 단계적 확장
- 예약된 확장 및 예측 확장
- 인스턴스 새로 고침 및 수명 주기 후크