ECS의 Managed AutoScaling에 대해서
ECS 내부적으로 AutoScaling 정책을 만들어서 안정적인 서비스 운영이 가능하다.
ECS에서 AutoScaling은 Amazon ECS 서비스에서 원하는 작업 수를 자동으로 늘리거나 줄이는 기능이다. 서비스 뿐만아니라 EC2 노드 또한 자동으로 Scaling 할 수 있다. 다만 서비스와 EC2 모두를 자동관리하려면 난이도가 높다. 이런 경우 Fargate를 사용하기를 권장. 가급적이면 ECS 클러스터에서는 Service에 대한 AutoScaling Policy만 관리하는것이 좋다.
Capacity Provider란?
Kubernetes의 Scheduler 역할로써 Task를 실행하는 인프라를 결정하기 위함
Capacity Provider(CP) 관련 사항
- CP는 CP Strategy에서 지정하기 전에 클러스터와 연결해야 합니다.
- CP Strategy를 지정할 때 지정할 수 있는 CP 수는 6개로 제한됩니다.
- Auto Scaling Group CP를 사용하는 서비스는 Fargate CP를 사용하도록 업데이트할 수 없고 그 반대도 불가능합니다.
- CP Strategy에서 콘솔의 CP에 대해 weight 값이 지정되지 않으면 기본값 1을 사용합니다. API 또는 AWS CLI를 사용할 경우에 기본값은 0입니다.
- CP Strategy 내에서 여러 CP가 지정된 경우 하나 이상의 CP가 0보다 큰 가중치 값을 가져야 하며 가중치가 0인 모든 CP는 Task를 배치ㄴ하는 데 사용되지 않습니다. 가중치가 모두 0인 전략에 여러 CP를 지정하면 CP Strategy을 사용하는 모든 RunTask 또는 CreateService 작업이 실패합니다.
- CP Strategy에서 하나의 CP만 기본 값을 정의할 수 있습니다. 기본값을 지정하지 않으면 0의 기본값이 사용됩니다.
- 클러스터에는 Auto Scaling Group CP와 Fargate CP가 혼합되어 포함될 수 있지만, CP Strategy는 둘 중 하나만 포함할 수 있습니다.
- 클러스터에는 CP와 시작 유형을 모두 사용하는 서비스와 독립 실행형 태스크가 혼합되어 포함될 수 있습니다. 시작 유형이 아닌 CP Strategy을 사용하도록 서비스를 업데이트할 수 있지만 그럴 경우 새 배포를 강제 수행해야 합니다.
- 관리형 종료 방지 기능을 활성화하면 관리형 확장도 활성화되어야 합니다. 그렇지 않으면 관리형 종료 방지 기능이 작동하지 않습니다.
- 서비스에 Classic Load Balancers를 사용하는 경우 CP 사용이 지원되지 않습니다.
Managed AutoScaling을 위한 Capacity Provider 생성 및 Service 적용
1. 대상 ECS Cluster를 접속
2. "Capacity Providers" 탭에서 "Create Capacity Provider" 클릭
3. 적용할 ASG를 선택한다.
4. Managed Scaling을 Enable 시킵니다. 관리형 조정이 활성화되면 Amazon ECS에서 AWS Auto Scaling 확장 계획을 사용하여 Auto Scaling 그룹의 축소 및 확장 태스크를 관리합니다.
5. Target Capacity를 조정한다. (100%는 ECS의 모든 EC2 인스턴스가 사용률이 100%임을 뜻한다.)
6. "생성"을 클릭한다.
7. 해당 클러스터 상세페이지로 돌아와, 기존에 정의한 서비스를 수정한다.
8. "Switch to Capacity Provider Strategy" 를 클릭해 방금 생성한 Provider를 추가하고 서비스를 업데이트 진행한다. 완료.
참고로 'Service'는 'AutoScaling'에 다음 세가지 타입을 적용할 수 있다.
- 대상 추적 조정 정책—특정 지표에 대한 대상 값을 기준으로 서비스가 실행하는 작업의 수를 늘리거나 줄입니다. 이 과정은 온도 조절기를 사용하여 집안 온도를 유지하는 방법과 비슷합니다. 사용자가 온도를 선택하면 나머지는 모두 온도 조절기에서 자동으로 수행됩니다.
- 단계 조정 정책—일련의 조정 조절(경보 위반의 크기에 따라 달라지는 단계 조절)을 기준으로 서비스가 실행하는 작업의 수를 늘리거나 줄입니다.
- 예약된 조정—날짜 및 시간을 기준으로 서비스가 실행하는 작업 수를 늘리거나 줄입니다.
'IaaS > 퍼블릭클라우드' 카테고리의 다른 글
(AWS) ECR/ECS를 활용한 CI/CD 파이프라인 (0) | 2022.03.03 |
---|---|
(AWS) ECS에 CloudWatch를 적용 (0) | 2022.03.03 |
(AWS) ElasticBeanstalk와 ECS (0) | 2022.03.02 |
(AWS) Fargate란? (0) | 2022.03.01 |
(AWS) ECR 에 대해서 (0) | 2022.03.01 |