Auto Scale Group
Auto Scaling Group을 생성하고 EC2 자원을 다이나믹하게 확장, 축소를 합니다.
Last updated
Was this helpful?
Auto Scaling Group을 생성하고 EC2 자원을 다이나믹하게 확장, 축소를 합니다.
Last updated
Was this helpful?
AWS Auto Scaling은 애플리케이션을 모니터링하고 용량을 자동으로 조정하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지합니다. AWS Auto Scaling을 사용하면 몇 분 만에 손쉽게 여러 서비스 전체에서 여러 리소스에 대해 애플리케이션 규모 조정을 설정할 수 있습니다. 이 서비스는 간단하면서도 강력한 사용자 인터페이스를 제공하므로 이를 사용하여 Amazon EC2 인스턴스와 스팟 플릿, Amazon ECS 작업, Amazon DynamoDB 테이블 및 인덱스, Amazon Aurora 복제본 등 리소스에 대한 규모 조정 계획을 수립할 수 있습니다. AWS Auto Scaling을 사용하면 성능과 비용을 최적화하거나 둘 사이의 적절한 균형을 유지하기 위한 권장 사항을 활용해 간단하게 규모를 조정할 수 있습니다. 이미 Amazon EC2 Auto Scaling을 사용하여 Amazon EC2 인스턴스의 규모를 동적으로 조정하고 있는 경우, 이제 AWS Auto Scaling과 결합하여 다른 AWS 서비스의 추가 리소스를 조정할 수 있습니다. AWS Auto Scaling을 사용하면 항상 적시에 올바른 리소스가 애플리케이션에 할당됩니다.
본 랩은 아래와 같이 EC2 Instance 에 대한 Auto Scaling Group을 생성하여 동작을 확인 하는데 목적이 있습니다.
좌측 EC2 메뉴의 Instances 에서 "Launch Templates" 페이지로 이동합니다. [Create launch template]를 클릭합니다.
Launch template name - "MyTemplate" 입력
AMI - Amazon Linux 2 AMI (HVM), SSD Volume type 선택
Instance type - t2.micro 선택
Key pair(login) > Key pari name - "IMD-PUB-PPK" 선택
Storage (volumes) > Volume 1 확장
Volume type - gp3로 변경
Resource tags - Key: Name , Value: ASG-PUBLIC-EC2
Network interfaces > Network interface 1 확장
Security groups - "IMD-PUB-SG" 선택
Auto-assign public ip - Enable 로 변경
Network Interface 1이 자동으로 보이 않는 경우 [추가]를 클릭 합니다.
Advanced detail > user data - 아래 data를 copy하여 붙여넣기 함.
Auto Scaling Group에서 사용할 EC2 template을 완성하였습니다.
좌측 EC2 메뉴의 AUTO SCALING 에서 Auto Scaling Groups 를 클릭합니다. [Create Auto Scaling group]을 클릭힙니다.
Step1에서 Auto Scaling Group 이름을 입력하고 생성한 템플릿 선택합니다.
Auto Scaling group name - "ASG-Template" 입력
Launch template - " MyTemplate" 선택
Step2에서는 Auto Scaling Group이 배포될 VPC 환경을 구성합니다.
VPC - "IMD-VPC" 선택
Subnets - "IMD-PUBLIC-A" , "IMD-PUBLIC-C" 선택
Step3 에서는 Auto Scaling Group내 EC2로 트래픽을 분배할 Load balancer를 생성합니다.
Attach a new load balancer 선택
Application Load balancer 선택
Load balancer name - "ASG-PUBLIC-ALB" 입력
Load balancer scheme - Internet-facing 선택
Availability zone and subnet - Public subnet, "IMD-PUBLIC-A" , "IMD-PUBLIC-C" 선택
Default routing (forwarding to) - Create a target group 선택
Step4에서는 Auto Scaling Group 내에서 동작한 Instance의 갯수를 정의하고 동작정책을 설정합니다.
Desired Capacity - 2
Minimum capacity - 2
Maximum capacity - 4
Target tracking scaling policy 선택
Step5에서는 Auto scaling Group 동작에 대한 이벤트 알림을 설정합니다.
Create topic 클릭
Send a notification to : - "my-sns-topic" 입력
With these recipients: - <이메일 주소> 입력
Step6 에서는 새로 생성되는 EC2 인스턴스에 대한 tag 를 입력합니다.
tags - Key: Name , Value: ASG-PUBLIC-EC 입력
Auto Scaling Group을 생성합니다.
이벤트 알림을 설정한 경우 아래와 같이 이벤트 알림에 대한 확인 메일이 전송되며 "confirm subscription"을 클릭합니다.
생성된 리소스인 Auto scaling Groups , Application Load balancer, EC2 Instance를 확인합니다.
Application Load Balancer의 Security group이 현재 Default Security group으로 설정되어 있습니다. Security group을 변경하여 "ASG-PUBLIC-EC2"와 통신이 가능하도록 합니다.
EC2 메뉴에서 Load Balancing > Load Balancers로 이동합니다.
"ASG-PUBLIC-ALB" 선택
Security > [Edit security groups] 를 선택
"IMD-PUB-SG"를 선택
EC2 메뉴에서 Load Balancing > Target Groups 으로 이동하여 EC2 Instance에 대한 Health checks 위치를 변경합니다.
path - "/ec2meta-webpage/index.php" 입력
잠시 후 Targets 탭에서 Instance status가 "unhealthy"에서 "healthy" 로 변경됩니다. 변경까지 약 5분 내외 소요됩니다.
Application Load Balancer의 DNS로 접속하여 EC2 Instance의 정보를 확인합니다.
<DNS name>/ec2meta-webpage/index.php
Load Balancer가 라운드 로빈으로 동작하는 것을 확인하기 위해 브라우저를 새로고침하여 EC2 서버 정보가 변경되는 것을 확인 할 수 있습니다.
Auto Scaling Group 생성 및 설정을 완료하였습니다.
Auto Scaling Group으로 생성된 EC2 instance "ASG-PUBLIC-EC2"에 각각 접속하여 CPU 부하를 발생 시킵니다.
600초 동안 CPU 1개 부하 발생
Auto Scaling Group에 생성된 EC2 instance의 CPU 숫자에 맞추어서 위 명령어를 조정합니다.
Nmon 등 모니터링 툴로 CPU 사용량을 확인할 수 있습니다.
좌측 EC2 메뉴의 Auto scaling 에서 "Auto Scaling Groups" 페이지로 이동합니다. "ASG-Template"를 선택하여 Activity를 확인합니다. 최초 Desired capacity : 2 에서 Maximum capacity : 4 로 새로운 EC2 instance가 생성 된것을 확인할 수 있습니다.
생성된 EC2도 확인합니다.
Load Balancer가 라운드 로빈으로 동작하는 것을 확인하기 위해 브라우저를 새로고침하여 EC2 서버 정보가 변경되는 것을 확인 할 수 있습니다.
<DNS name>/ec2meta-webpage/index.php
Auto Scaling 조정 정책 참고 링크 : https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/as-scale-based-on-demand.html
Instance Distribution : 단일 Auto Scaling 그룹 내에서 다수의 온디맨드 인스턴스 및 스팟 인스턴스를 자동으로 확장할 수 있도록 구성하여 인스턴스 비용 절감을 최적화 할 수 있습니다.
참고 링크 : https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/asg-purchase-options.html
Auto Scaling Lab을 성공적으로 완료하였습니다.