3-8 비용 최적화 설계
비용 최적화 아이디어
- 클라우드 서비스 이용 방법에 따라선 클라우드가 더 비쌀 수도 있기에 비용 최적화는 중요하다.
- Well-Architected 프레임워크의 ‘비용 최적화 원칙’
- 클라우드 재무 관리 구현 - 조직의 비용 의식을 개선해 나감
- 소비 모델 도입 - 필요할 때 필요한 자원만을 이용
- 전반적인 효율성 측정 - 실제 필요한 비용을 측정해 비용 절감
- 획일적인 업무 부담에 대한 비용 지출 중단 - 관리형 서비스를 이용해 운영 부담을 낮춤
- 지출 분석 및 귀속 - 비용 식별을 통한 합리적 비용 절감
- ECS/Fargate에서는 ‘소비 모델 도입’이 주요 주제다.
- ECS 태스크 수와 자원 크기 산정
- Compute Saving Plans 활용
- ECR 컨테이너 이미지 유지 보수
- 개발 스테이징 환경의 ECS 실행 시간대 조절
- Fargate Spot 활용
- 컨테이너 이미지 크기 줄이기
ECS 태스크 수와 자원 크기 선정
- ECS/Fargate 이용 시 비용 최적화의 기본
- 애플리케이션 실행에 필요한 충분한 자원량을 결정하는 것
Compute Savings Plan 활용
- Compute Savings Plans
- 지정한 자원을 1년 또는 3년간 약정 이용하는 것을 조건으로 저렴한 요금을 제공하는 모델
- 약정 자원 사용량을 초과해 사용한 부분은 일반 요금이 적용된다.
- 워크로드 특성을 파악하고 활용을 검토하자
ECR 컨테이너 이미지 관리
- ECR의 이미지를 적절히 관리하는 것도 비용을 아끼는 데 도움이 된다.
- ECR은 저장한 컨테이너 이미지 크게에 비례해 요금이 발생한다.
개발, 스테이징 환경의 ECS 태스크 실행 시간대 조절
- 개발 환경이나 스테이징 환경은 24시간 내내 이용할 필요가 없는 경우가 많기에 실행 시간대를 정해두면 요금을 절약할 수 있다.
- CloudWatch Events에서 Lambda를 실행시켜 태스크 수를 변경하는 방법으로 야간에 ECS 태스크 정지도 가능하다.
Fargate Spot 활용
- Fargate Spot
- ECS 중단을 허용해서 보다 저렴하게 이용할 수 있는 서비스
- 개발 환경이나 스테이징 환경에서 중단을 허용한다면 효과적으로 사용 가능
- 단 온디맨드 ECS와 달리 다음 2가지를 주위해야 한다.
용량 공급자 구성
- Fargate Spot을 이용하면 ECS 서비스에 용량 공급자 전략을 설정해야 한다.
- ECS 태스크 실행에 관련된 규칙을 ECS 클러스터 내 설정하는 것
- ECS 태스크 수를 조절하기 위한 것
- 일반적으로 온디맨드는 ‘FARGATE’, 스팟은 ‘FARGATE_SPOT’으로 용량 공급자가 미리 정의돼 있다.
- 용량 공급자 전략이란
- 복수의 용량 공급자를 1개의 전략으로 묶는 것
- 용량 공급자 전략을 ECS 서비스에 저장할 때 각 공급자에 ‘기본 값’과 ‘가중치’를 설정한다.
- 기본 값 - 우선으로 실행할 용량 공급자
- 가중치 - 기본 값에서 지정한 수만큼 배포가 완료된 후 시작되는 비율
- ex) [FARGATE 용량 공급자에 기본 값: 2, 가중치: 1], [FARGATE_SPOT 용량 공급자에 기본 값: 0, 가중치: 3]
- Fargate 태스크 2개가 실행되고 가중치 1만큼 하나 더 실행
- Spot 태스크가 가중치 3만큼 실행
종료 경고에 대한 고려
- Fargate Spot은 태스크의 중단 가능성을 허용하는 대신 할인된 요금으로 이용하는 것이다.
- ECS 태스크 정지 전 2분간 경고가 발생한다.
- CloudWatch Event에 상태 변경 이벤트가 전달되면서 태스크에 SIGTERM 신호가 전달된다.
- Fargate spot을 이용한다면 태스크 강제 정지와 관련된 추가 구현도 검토해야 한다.
컨테이너 이미지 크기 줄이기
- ECS가 ECR에서 이미지를 취득하는 경우 만약 NAT 게이트에이를 경유하거나 VPC 엔드포인트를 이용하면 요금이 발생한다.
- Fargate는 컨테이너 이미지를 캐시하지 않기에 매번 이미지를 취득해야 한다.
- 스케일아웃이나 스케일인이 자주 발생하는 워크로드에서 이미지 크기가 큰 경우 많은 데이터 요금이 발생
- 때문에 컨테이너는 가능한 최소 구성을 유지하는 것이 좋다.