Suspend 기능 활용
AutoScaling이 작동하면서 발생하는 모든 프로세스는 Suspend되고 재기될 수 있다.
우선 AutoScaling의 프로세스는 다음의 것들이 있다.
아래 옵션이 Suspended로 적용되면 다음과 같은 일들이 일어난다.
- Terminate : ASG의 Scale In을 Suspend
- AZRebalance : Available Zone 리벨런싱 작업을 Suspend
- ReplaceUnhealthy : HealthCheck는 하지만 Unhealthy한것에 대한 교체는 Suspend
- InstanceRefresh
- Launch : AZRebalancing이나 Alarm/Schedule 등에 의한 Scale-Out에 응하지않음
- AddToLoadBalancer : 인스턴스를 시작하더라도 로드벨런서의 타겟그룹 매핑은 Suspend
- AlarmNotification : Scaling Event로 인해 Trigger 되는 것을 Suspend할 수 있음
- ScheduledActions : Scheduling Event로 인해 Trigger 되는 것을 Suspend할 수 있음
lifecycle hooks 기능 활용
lifeCycle Hook은 ASG의 생명주기에 솔루션을 제공할 수 있다.
1. Scale-Out 의 경우
ASG에서 EC2를 새로 런칭하게 되면 EC2는 Startup Sequence를 완료한뒤 Wait 상태에 들어간다. Wait 상태 동안 필요한 소프트웨어 패키지, 어플리케이션 등이 완전히 준비 될수 있도록 스크립트를 실행하게된다. 이 스크립트 실행이 완료되면 complete-lifecycle-action신호를 보내면서 EC2가 트래픽을 받게 된다.
예를들어 ELB에 등록하는 프로세스 중에 많이 사용하는데, bootstrap Scripts가 완전히 인스턴스에 적용되어 어플리케이션이 트래픽을 수신할 준비가 되었는지 확인할수 있기 때문이다.
2. Scale-In 의 경우
LifeCycle Hook이 EC2를 종료시키기 전 무언가의 작업을 정의할 수 있다. 일례로 EventBridge나 Lambda를 사용하여 로그 같은 데이터를 다운로드 받고 EC2를 종료시키는데 활용한다.
Termination Policy
인스턴스를 종료할때 어떤 인스턴스를 선택할 것인지에 대한 정책이다. Default는 어떤 AZ에 인스턴스가 가장많은가를 고려한다.
Default Policy는 꽤 합리적인 정책이다. 더나아가 사용자의 요구사항에 따라 다음 정책도 적용할 수있다.
- AllocationStrategy
- OldestLaunchTemplate : 가장 오래된 Launch 템플릿을 사용한 인스턴스를 종료. 이 정책을 통하여 구버전 템플릿 인스턴스를 먼저 종료한다. 새로운 버전의 업데이트를 진행할때 유용하다.
- OldestLaunchConfiguration : 가장 오래된 시작구성을 사용한 인스턴스 종료. 이 정책을 통하여 구버전 시작구성의 인스턴스를 먼저 종료한다. 시작구성을 업데이트 해갈때 유용하다.
- ClosestToNextInstanceHour : 다음 빌링시간과 가장 가까운 인스턴스를 종료한다. 이 정책은 매시간 마다 Charging되는 인스턴스들을 최대한 뽑아먹는데 유용하다.
- NewestInstance : 가장 최근의 인스턴스를 종료한다. 새로운 시작구성을 테스트 해보고 싶을 때 유용하다. 테스트만 해보고 운영에는 반영하고 싶지 않는 경우 말이다.
- OldestInstance : 가장 오래된 인스턴스를 종료한다.
Amazon SQS에 반응하는 ASG생성
이 섹션에서는 Amazon Simple Queue Service(Amazon SQS) 대기열의 시스템 로드 변경에 따라 Auto Scaling 그룹을 조정하는 방법을 보여줍니다.
사용자 지정 Amazon SQS 대기열 지표를 기반으로 대상 추적 조정 정책을 사용하는 경우 애플리케이션의 수요 곡선에 맞게 보다 효과적으로 동적 조정을 수행할 수 있습니다.
사전요구사항
AWS CLI 또는 SDK를 사용하여 CloudWatch에 사용자 지정 지표를 게시해야 합니다. 그런 다음 AWS Management Console을 사용하여 지표를 모니터링할 수 있습니다.
사용자 지정 지표를 게시한 후에는 AWS CLI 또는 SDK를 사용하여 사용자 지정된 지표 사양으로 대상 추적 조정 정책을 생성해야 합니다.
사용방법
링크 참조 : https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/as-using-sqs-queue.html
AutoScaling 으로 자동 종료되는 경우를 방지
이런 경우 유용합니다.
- 인스턴스에서 장시간 돌아가는 업무를 수행중일 경우
- 특별한 의미가 있는 인스턴스. 예를 들어 Hadoop 클러스터의 마스터 노드
'IaaS > 퍼블릭클라우드' 카테고리의 다른 글
(AWS) DynamoDB에 관하여 (0) | 2022.04.17 |
---|---|
(AWS) ASG에 어플리케이션을 Deploy 할 때 배포 전략 (0) | 2022.04.17 |
(AWS) AutoScaling Group에 대해서 (0) | 2022.04.15 |
(AWS) AWS의 Data/Network 보안 방법 (0) | 2022.04.14 |
(AWS) Cost allocation tags 사용하기 (0) | 2022.04.14 |