728x90
반응형

Auto Scaling 이란

 

- 사용자가 정의한 정책, 일정 및 상태 확인에 따라 자동으로 EC2 인스턴스를 시작하거나 종료하도록 설계된 웹 서비스

 

- 내결함성 향상

  • 비정상 상태일 때를 감지하여 종료 후 이를 대체할 인스턴스를 시작

  • 복수의 AZ에 배포하도록 Auto Scaling Group을 구성하였을때 하나의 AZ가 사용 불가 상태가 되어도 다른 AZ에 같은 수의 인스턴스가 새로 배포되어 서비스 제공

 

- 가용성 향상

  • 현재 트래픽 요구를 처리할 수 있는 적절한 용량을 갖춤

 

- 비용 관리 개선

  • 필요에 따라 동적으로 인스턴스 수를 확장 / 축소 하면서 사용한 EC2 인스턴스에 대해서만 비용을 지불

 

- Auto Scaling Group 안에 인스터스를 추가 / 제외할 수 있음

 

- 트러블 슈팅을 위해 인스턴스를 Standby 상태로 유지할 수 있음

 

- 소프트웨어를 설치하고 로그를 검색하기 위해 인스턴스를 Pending 상태로 유지할 수 있음

 

- 기동중인 인스턴스의 Launch Configuration을 기반으로 Auto Scaling Group을 생성할 수 있음

 

 

 

Auto Scaling 제한

 

1. 리전 제한

 

- 리전별 시작 구성 : 200

 

- 리전별 Auto Scaling Group : 200

 

 

2. Auto Scaling Group 제한

 

- Auto Scaling Group 조정 정책 : 50

 

- Auto Scaling Group 예약된 작업 : 120

 

- Auto Scaling Group 수명주기 후크 : 50

 

- Auto Scaling Group SNS 주제 : 10

 

- Auto Scaling Group Classic Load Balancer : 50

 

- Auto Scaling Group 대상 그룹 : 50

 

 

3. 조정 정책 제한

 

- 조정 정책당 단계 조정 : 20

 

 

4. Auto Scaling API 제한

 

- 한번에 최대 20개의 인스턴스 ID에 AttachInstances, DetachInstances, EnterStandby 및 ExitStandby를 사용할 수 있음

 

- 한번에 최대 10개의 로드밸런서에 AttachLoadBalancers 및 DetachLoadBalancers를 사용할 수 있음

 

- 한번에 최대 10개의 대상 그룹에 AttachLoadBalancerTargetGroups 및 DetachLoadBalancerTargetGroups를 사용할 수 있음

 

 

 

Auto Scaling LifeCycle

 

- Auto Scaling Group의 EC2 인스턴스는 다른 EC2 인스턴스와 다른 경로 또는 수명주기를 가지고 있음 (일반적으로 생성된 인스턴스와는 다르다는 것을 의미)

 

- Auto Scaling Group 설정에 따라 인스턴스를 시작하고 서비스에 추가되었을 때 수명주기가 시작

 

- 인스턴스를 종료할 때 Lifecycle이 종료되거나 Auto Scaling Group 설정에 따라 서비스에서 인스턴스를 종료할 수 있음

 

 

1. Auto Scaling Type

 

- Vertical Scaling 

  • 인스턴스 사이즈 변경, EBS Capacity 증가

 

-Horizontal Scaling 

  • 인스턴스를 추가하거나 삭제, ELB 활용

 

 

2. Auto Scaling 시나리오

 

- Auto Scaling Group에 최소 / 최대 운영할 인스턴스 개수 정의

 

- 언제 Scaling 할지에 대한 정책 설정 (Scaling Plan)

 

- CloudWatch를 통해 사용량 데이터 수집 및 Scaling 시도

 

- 지정한 Spot에 Scaling Group에 지정된 형태로 인스턴스 확장

 

 

3. Resource 사용량 측정

 

- CloudWatch

  • 다양한 항목에 대해 사용량을 모니터링하고 관리할 수 있는 서비스

  • 알람을 설정하고 측정된 데이터를 기반으로 어떠한 액션을 취할 수 있도록 알람을 설정할 수 있음

 

- CloudWatch Alarm

  • CloudWatch에서 알람은 특정 기간 동안 하나의 메트릭을 모니터링하는 것 (메트릭은 모니터링할 대상을 의미 - CPU Used / Network In Traffic 등등)

 

- 모니터링 항목에 대해 지정한 범위 안의 값이 변경되었을때 알람이 상태를 변경

 

 

4. Auto Scaling Group 계획 관리

 

- 인스턴스를 생성하고 구성하는데 얼마나 시간이 소요되는지

 

- 어떠한 모니터링 항목이 어플리케이션의 성능을 측정하는데 적정한지

 

- 기존의 어떠한 자원 (EC2 인스턴스 나 AMIS)는 Auto Scaling Group의 일부로 사용할 수 있음

 

- 몇개의 AZ에 Auto Scaling Group이 확장시킬 것인지

 

- 인스턴스를 Auto Scaling 한 후 Application 기동을 수행할 역활 지정

 

 

5. Auto Scaling Group에서의 부하 분산

 

- 들어오는 웹 트래픽에 대해서는 자동으로 분산해야 함

 

- 어플리케이션에 접근하기 위한 싱글 포인트

 

- 로드밸런서와 EC2 인스턴스의 사용량 데이터는 CloudWatch로 보내짐

 

- 어플리케이션을 확장하는데 ELB 모니터링 항목을 사용할 수 있음

 

 

6. 아키텍처

 

 

 

 

Auto Scaling Lifecycle Hooks

 

- 사용자가 지정한 액션을 오토스케일링이 수행되거나 중단될 때 수행할 수 있게 한다.

 

https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/lifecycle-hooks.html

 

 

1. 아키텍처

 

 

 

2. Bootstrapping

 

- bootstrapping 으로 수행할 수 있는 기능

  • Software 설치

  • S3로부터 Data Copy

  • DNS에 등록

  • 서비스 기동

  • 패키지 업데이트

  • Reboot 수행

  • 80 Port 오픈 (ELB에 등록, Device Mount)

 

- Bootstrapping 도구

  • 인스턴스에 포함된 스크립트 (Bash, PowerShell)

  • 설정 관리 도구 (Chef, Puppet)

  • AWS Opsworks

 

 

3. EC2 Metadata와 UserData

 

- 모든 EC2 인스턴스는 로컬 인스턴스의 Metadata와 Userdata 서비스에 접근할 수 있음

 

- http://169.254.169.254/latest/meta-data/ 의 Metadata를 통해 Hostname, AMI ID, Instance ID, Public/Private DNS, Availability Zone등을 검색할 수 있음

 

- 인스턴스 생성시 text 16KB까지 사용 가능

 

- text는 인스턴스에서 설정작업을 위해 스크립트로 Parsing 할 수 있어야 함

 

- Cloud-init은 인스턴스 최초 부팅 시 UserData를 수행할 수 있어야 함

 

- Cloud-init은 AWS Linux, RHEL, Ubuntu에 설치되어 있음 (각 플랫폼 별 repo를 통해 설치 가능)

 

- EC2Config는 Windows Server AMIs에 설치 되어 있음

 

- UserData를 통해 Apache나 Mysql 등의 패키지를 설치하고 EIP를 연결할 수 있음

 

 

참조 URL

https://sarc.io/index.php/aws/545-aws-auto-scaling

https://sori-nori.gitlab.io/youngkyung-done/ASG-1/

https://tech.lezhin.com/2017/08/10/deployment-with-auto-scaling-group

 

반응형

'AWS' 카테고리의 다른 글

AWS CloudWatch  (0) 2019.04.09
AWS CloudWatch Logs  (0) 2019.04.09
AWS Auto Scaling 종료 정책  (0) 2019.04.09
AWS CloudFormation 내장함수  (0) 2019.04.09
AWS CloudFormation  (0) 2019.04.09

+ Recent posts