[Cloud] Auto Scale Group(ASG)의 이해
EC2 인스턴스 Auto Scaling
- **학습 목표
- Scale In과 Scale Out이 무엇인지 정리합니다.
- 확장성을 위한 Amazon EC2 인스턴스 Auto Scaling에 대해 확인합니다.
- Amazon EC2 인스턴스 Auto Scaling 구성 과정을 확인합니다.**
고가용성 및 확장성
- 고가용성(High Availability):
- 고가용성은 하드웨어, 소프트웨어, 네트워크와 같은 장애가 발생해도 중단 없는 서비스를 제공하여 신뢰할 수 있는 서비스 운영 환경을 제공하는 것을 의미
- 고가용성 서비스 지원을 위해 보통 중복 구성, 장애 복구 계획, 자동 장애 감지 및 복구 기능을 적용
- AWS에서는 리전별로 여러 개의 가용 영역에 인스턴스를 배치하거나 장애 감지 및 복구를 지원하는 서비스를 추가로 구성하여 고가용성을 지원함.
- 확장성(Scalability):
- 확장성은 시스템이 사용자의 요구나 부하의 증가에 따라 자원을 유연하게 증가시키거나 감소시킬 수 있는 능력으로,
- 시스템이 변화하는 수요에 맞추어 성능을 유지하면서 효율적으로 작동할 수 있도록 합니다.
- 두 가지 방식의 확장성
- 수직 스케일링(Vertical Scaling)은 Scale UP/Scale Down으로 표현하며, 기존 서버의 리소스 크기를 확장 또는 축소시키는 것
- 수평 스케일링(Horizontal Scaling)은 Scake Out/Scale In으로 표현하며, 서버의 수를 늘리거나 줄이는 것
- 클라우드 환경에서는 자동화된 자원 할당 및 해제를 통해 확장성을 빠르게 조정할 수 있으며, 비용 효율성과 성능 최적화에 기여함
- AWS에서는 Auto Scale 서비스를 통해 인스턴
고가용성과 확장성은 서로 다른 목표를 가지고 있지만, 함께 사용될 때 시스템의 신뢰성과 효율성을 크게 향상
- Scaling(조정)
AWS EC2 Auto Scaling 이란?
- https://aws.amazon.com/ko/autoscaling/
AWS Auto Scaling은 애플리케이션을 모니터링하고 용량을 자동으로 조정하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지합니다.
- 애플리케이션 가용성을 유지하도록 지원
- 정의한 조건에 따라 EC2 인스턴스를 자동으로 추가하거나 제거할 수 있습니다.
- 손상된 EC2 인스턴스 및 비정상 애플리케이션을 감지하고 사용자의 개입 없이 인스턴스를 교체합니다.
- 수동, 예약, 동적 또는 온디맨드, 예측 등 다양한 조정 옵션 제공
- AWS Auto Scaling을 사용하면 몇 분 만에 손쉽게 여러 서비스 전체에서 여러 리소스에 대해 애플리케이션 규모 조정을 설정할 수 있습니다.
- 이 서비스는 간단하면서도 강력한 사용자 인터페이스를 제공하므로 이를 사용하여 Amazon EC2 인스턴스와 스팟 플릿, Amazon ECS 작업, Amazon DynamoDB 테이블 및 인덱스, Amazon Aurora 복제본 등 리소스에 대한 규모 조정 계획을 수립할 수 있습니다.
- AWS Auto Scaling을 사용하면 성능과 비용을 최적화하거나 둘 사이의 적절한 균형을 유지하기 위한 권장 사항을 활용해 간단하게 규모를 조정할 수 있습니다.
소매업체 Amazon.com의 주간 트래픽
11월 Amazon.com의 트래픽
- Auto Scaling은 동적 온디맨드 scaling에도 유용합니다. Amazon.com에서 11월마다 시기적 요인으로 인해 트래픽 피크가 발생합니다(미국 소매업체의 주요 매출이 발생하는 11월 말의 날짜인 블랙 프라이데이와 사이버 먼데이). Amazon이 가장 높은 사용량을 수용할 수 있도록 고정 용량을 프로비저닝할 경우 리소스의 76%가 연중 대부분 유휴 상태로 남아 있게 됩니다. 용량 조정은 이처럼 유동적인 서비스 수요를 지원하는 데 필요합니다. 조정 기능을 활용하지 않으면 포화 상태가 발생하여 서버가 작동하지 않을 수 있으며, 기업이 고객의 신뢰를 잃게 됩니다.
Amazon EC2 Auto Scaling이란?
- Amazon EC2 오토스케일링(Auto Scaling)은 AWS에서 EC2 인스턴스의 수를 자동으로 쉽게 조절할 수 있도록 구현해 놓은 자동화 서비스
- Amazon EC2 Auto Scaling을 사용하면 애플리케이션의 로드를 처리할 수 있는 정확한 수의 Amazon EC2 인스턴스를 유지할 수 있습니다.
- Auto Scaling Group
- EC2 인스턴스 모음으로
원하는 인스턴스 수, 최소 인스턴스 수, 최대 인스턴스 수를 설정.
https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html
Auto Scaling 구성 요소
구성 템플릿(무엇을?)
- 시작 구성 템플릿(인스턴스)
- AMI
- 시작 구성 템플릿
- EC2 인스턴스에 대한 구성 템플릿으로 사용
- 인스턴스의 AMI ID, 인스턴스 타입, 키 페어, 보안 그룹, 블록 디바이스 매핑 등의 정보를 지정
오토스케일 그룹(어디에서?)
- EC2 인스턴스는 그룹에 정리되어 조정 및 관리 목적의 논리적 단위로 처리
- 그룹을 생성할 때 EC2 인스턴스의 최소 및 최대 인스턴스 수와 원하는 인스턴스 수를 지정
조정 옵션(언제?)
- Auto Scaling 그룹을 조정하는 여러 가지 방법을 제공
- 예: CPU 사용량이 70%이상이면 Scale Out
실습 단계:
Pre Setting
1. VPC 만들기
이름: lab-vpc(10.0.0.0/16)
Subnet
- public 2 : 10.0.0.0/24, 10.0.1.0/24
- private 2 : 10.0.2.0/24, 10.0.3.0/24
2. 보안 그룹 만들기
- TEST-WEB
- Inbound : 80 ← anywhere
- ALB-SG
- VPC : lab-vpc
- 인바운드 규칙 : 80,443 ← anywhere
- WEB-SG
- VPC : lab-vpc
- 인바운드 규칙: 80 ← ALB-SG
3. 웹 서버 만들기
- test-web
- AMI : Amazon Linux 2023 AMI
- 인스턴스 유형: t2.micro
- 키페어 : lab-key
- 네트워크: Lab VPC
- 서브넷: lab-subnet-public1-ap-northeast-2a ← 웹서버 연결 TEST
- 퍼블릭 IP: 활성화
- 보안그룹 : TEST-WEB
- 스토리지: 8G
사용자 데이터
1 2 3 4 5
#!/bin/bash yum install httpd -y systemctl start httpd systemctl enable httpd echo "<h1>WEB</h1>" > /var/www/html/index.html
1. AMI 생성하기
- Web EC2 AMI 생성
2. 시작 템플릿 만들기
- Web EC2 시작 템플릿 생성 : EC2 > [시작 템플릿] - [시작 템플릿 시작]
3. AutoScaling Group 만들기
- Web AutoScaling Group 생성 : EC2 > Auto Scaling 그룹 > [Auto Scaling 그룹 생성]
- 1단계 시작 템플릿 선택
- 인스턴스 시작 옵션 선택
- 고급 옵션 구성
- 그룹 크기 및 크기 조정 구성
- 알림 추가 - 선택 사항
- 태그 추가
[Auto Scaling 그룹 생성]
- ALB 보안그 룹 수정
- WEB-SG —> ALB-SG
4. 리소스 삭제
- Auto Scale Group 삭제
- 로드밸런서 삭제
- Target Group
- 인스턴스 삭제
- VPC 삭제
- NAT GW
- VPC삭제
- 시작 템플릿, AMI 삭제
- EIP
- EBS 스냅샷
This post is licensed under CC BY 4.0 by the author.
Comments powered by Disqus.