Amazon Web Services 한국 블로그
비용 최적화 시리즈 2부: AWS Config의 비용 최적화 방안
이 글은 AWS Cloud Operations & Migrations Blog에 게시된 Cost Optimization recommendations for AWS Config를 한국어로 번역 및 편집하였습니다.
AWS Config는 AWS 계정 내의 리소스 구성을 자세히 보여주는 기능들을 제공합니다. 이 기능들에는 리소스 간의 관계 및 리소스의 이전 구성 등에 대한 내용들이 포함되어 있어, 시간이 지남에 따라 리소스들의 구성과 관계가 어떻게 변화하는지 확인할 수 있습니다.
이 게시물에서는 AWS Config의 비용을 최적화하기 위한 다양한 모범 사례와 권장 사항을 안내합니다. 또한, 규칙과 레코더에 대해 살펴보고 필요하지 않은 규칙을 식별하고 삭제하는 방법, 그리고 Config의 설정을 수정하여 “기록할 리소스 유형”을 보호 대상으로 설정하는 기술적인 지침도 제공합니다.
비용 최적화는 AWS Well-Architected Framework (AWS WAF)의 6개의 기둥(Pillar) 중 하나이며, 워크로드(Workload)의 수명 주기 동안 지속적으로 개선하고 향상시키는 프로세스입니다. AWS는 현대적이고 확장 가능한 애플리케이션을 구축하면서 비용을 효율적으로 제어하고 지속적으로 최적화할 수 있도록 지원합니다. 고객은 비용을 절감하는 다양한 옵션을 AWS 내에서 활용할 수 있으며, 리소스를 보다 효과적으로 사용하는 애플리케이션을 구축할 수도 있습니다. AWS는 고객이 필요한 성능과 용량을 유지하면서도 비용을 효과적으로 관리할 수 있도록 광범위한 서비스 및 가격 옵션을 제공하여 최대한의 비용 절감을 실현하기 위해 노력하고 있습니다.
AWS Config 비용
AWS Config를 사용하면 다음을 기준으로 비용이 청구됩니다.
- 기록된 구성 항목의 수 (구성 항목은 AWS 계정에 있는 리소스의 구성 상태에 대한 기록).
- 활성화 된 AWS Config의 규칙 평가 횟수 (규칙이 평가될 때마다 발생).
- 계정의 적합성 팩(Conformance pack) 평가 횟수.
자세한 AWS Config 사용 요금의 예는 여기에서 확인할 수 있습니다.
AWS Config에서 구성 변경이 가장 많이 발생한 리소스를 식별하는 방법
AWS Config의 비용을 최소화하기 위해서는 AWS 구성 중 어떤 리소스가 비용을 발생하는지 파악해야 합니다. 확인 방법은 다음과 같습니다.
AWS 구성 비용을 줄이려면 어떤 리소스가 AWS 구성 지출에 기여하고 있는지 파악해야 합니다.
- Amazon CloudWatch 메트릭을 사용하여 설정을 확인하고 AWS 구성들을 사용량을 파악할 수 있습니다.
- Amazon Athena를 사용하여 AWS 구성의 사용량을 파악할 수도 있습니다. 이 블로그에서 Amazon Athena 쿼리를 생성하는 단계를 따라 해보면서 AWS 서비스중 높은 비용이 발생되는 리소스를 찾아볼 수 있습니다.
AWS Config 비용 최적화 방안
규정 준수 및 보안 요구 사항에 따라 확인하려고 하는 특정 리소스 타입에 대해서만 기록하는 것을 고려해야 합니다. 특정 리소스 유형을 기록하려면 다음 단계들을 따릅니다.
AWS IAM 리소스와 같은 글로벌 리소스는 필요한 리전에만 기록하세요. 하나의 AWS 리전에 IAM을 평가하기 위한 컨트롤(규칙)을 배포하는 것만으로도 IAM 리소스의 규정 준수 상태를 파악할 수 있습니다. 따라서 모든 AWS 리전에 IAM 컨트롤을 배포하지 않아도 됩니다.
- AWS Config 콘솔 페이지의 왼쪽 메뉴에서 설정을 선택합니다.
- [그림 2]에 표시된 대로 편집을 클릭하고 “글로벌 리소스 포함” 확인란을 선택 취소합니다.
데이터 보존 기간은 기본적으로 7년으로 설정되어 있지만 규정 준수 요구사항에 맞는 기간으로 변경할 수 있습니다.
- AWS Config 콘솔 페이지의 왼쪽 메뉴에서 설정을 선택합니다.
- 편집을 클릭하고 [그림 3]에 표시된 대로 데이터 보존 기간 섹션에서 “AWS Config에서 기록한 구성 항목에 대한 사용자 지정 보존 기간 설정”을 선택하고 규정 준수 요구 사항에 따라 사용자 지정 데이터 보존 기간(일)을 변경합니다.
AWS Config의 구성에 대한 정보들이 저장되는 Amazon Simple Storage Service(Amazon S3) 버킷에 대해 수명 주기 정책을 설정합니다. 또한 AWS 적합성 팩을 사용하여 규칙들이 중복되는것을 방지합니다.
적합성 팩 샘플 템플릿에는 다른 샘플 적합성 팩과 동일한 규칙이 포함될 수 있습니다. 이러한 중복은 AWS Security Hub의 보안 표준을 사용하는 경우에도 발생할 수 있습니다.
예를 들어, PCI DSS 표준은 AWS CloudTrail이 활성화되어 있는지 확인하는 규칙을 사용합니다[PCI.CloudTrail.2]. 이 컨트롤은 많은 샘플 적합성 팩 템플릿에 포함되어 있습니다. Security Hub가 이미 해당 컨트롤을 평가하고 있는 경우, 적합성 팩에서 해당 컨트롤을 제거해야 합니다.
- AWS Config 비용 급증을 방지하기 위해 구성 규칙에 대한 삭제 결과(Delete results)와 재평가(Re-evaluate) 기능을 신중하게 사용해야 합니다. 구성 규칙 삭제(DeleteEvaluationResults API) 및 재평가(StartConfigRulesEvaluation API) 작업을 수행할 때마다 해당 리소스 유형에 대한 최신 규정 준수 상태를 기록하는 새로운 구성 항목이 생성됩니다. 이러한 작업이 자주 호출되면 AWS Config의 구성 항목 기록 비용에 영향을 줄 수 있습니다. 결과 삭제 방법에 대한 자세한 내용은 여기를, 재평가 방법에 대한 자세한 내용은 여기를 참조하세요.
- AWS Config 규칙은 트리거 유형에 따라 트리거됩니다. AWS 구성 규칙에서 지원하는 트리거 유형은 다음과 같습니다.
- 기간 변경
기간 변경이 있는 규칙은 지정된 빈도로 평가됩니다. 따라서 높은 값(최대 24시간)을 선택하면 이어지는 규칙 평가 사이의 빈도가 줄어들게 되므로 규칙 평가로 인해 발생하는 비용이 줄어듭니다. - 구성 변경
먼저, “구성 변경”으로 설정된 트리거 유형의 규칙이 언제 평가되는지와 구성 항목(Configuration Items)이 어떻게 생성되는지 이해해야 합니다. AWS Config는 특정 리소스 뿐만 아니라 해당 리소스와 관련된 리소스에 대한 변경 사항도 기록합니다. 그러므로 “지원” 리소스 및/또는 “관련” 리소스에 대한 구성 변경이 더 많을 경우, 더 많은 구성 항목이 생성되어 결과적으로 더 많은 비용이 발생합니다
- 기간 변경
- AWS Budgets
AWS 예산 알림은 실제 또는 예상 월별 비용이 미리 정의된 임계값을 초과할 경우 알림을 받는 데 매우 유용합니다. 이는 각 서비스에 대해 독립적으로 수행되므로 변경 사항을 더 쉽게 파악할 수 있다는 점이 중요합니다. AWS 예산 알림 구성에 대한 자세한 내용은 여기를 참조하세요. - AWS Cost Anomaly Detection
이 기능은 비용을 지속적으로 모니터링하여 비정상적인 지출을 감지합니다. 이를 통해 지출 규모가 큰 계정에서 한 영역의 증가가 전체 계정의 정상적인 지출 변동에 비해 작게 나타날 수 있는 경우와 같이 예산 알림에 의존하는 문제를 극복할 수 있습니다. 자세한 내용은 여기를 참조하세요. “비용 이상 감지”의 모니터링 유형에서 “연결된 계정” 옵션을 선택하여 AWS Config를 사용하는 모든 계정에 대한 총 지출을 모니터링할 수 있습니다.
결론
이 게시물에서는 AWS Config 구성을 최적화하여 비용을 효과적으로 관리하면서 감사 및 평가 요구 사항을 유지하는 방법을 소개했습니다. 리소스에 적합한 구성을 선택하는 것은 비용 최적화에 영향을 미칠 수 있습니다. 이 게시물에서 소개된 AWS Config의 모범 사례와 비용 최적화에 관련된 권장 사항들이 비용을 최적화 하는데 도움이 되었기를 바랍니다.