지식, 구조, 운영을 의미하는 KAO™ 방법론은 클라우드 환경에서의 비용 최적화를 위해 만들어졌습니다. 이 방법론을 사용하면 몇 가지 이점을 얻을 수 있습니다. 1) 사용 중인 각 서비스에 대한 필수 지식을 습득할 수 있고, 2) 비용 최적화를 염두에 두고 설계할 수 있으며, 3) AWS 운영 서비스를 사용하여 지속적으로 비용을 추적하고 관리할 수 있습니다.
또한 사용자, 팀, 나아가 조직 전체가 클라우드 채택 프로세스의 주요 과제 중 하나를 빠르게 해결할 수도 있습니다. 클라우드 사용자가 KAO™ 방법론을 자신의 DNA에 이식하면 실제 비용 최적화 단계를 훨씬 쉽고 빠르게 완료할 수 있게 됩니다.
그럼 KAO™ 방법론이란 무엇인지, 어떻게 적용해야 비용 최적화를 이룰 수 있는지 살펴보도록 하겠습니다.
AWS 서비스에 대한 비용 최적화를 지원하기 위해 개발된 KAO™ 방법론은 비용 최적화 작업에 필요한 토대를 제공하고 각각의 최적화 작업에 대한 구조화된 접근 방식을 제공합니다. KAO™는 다음 세 가지를 의미합니다.
● 지식(Knowledge)
● 구조(Architecture)
● 운영(Operation)
AWS 서비스 비용 최적화의 시작은 서비스의 구성 요소와 요금제를 이해하는 것입니다. 그리고 활용 사례에 적용할 수 있는 대체 서비스를 이해하는 것도 중요합니다.
AWS 서비스 사용 방법은 잘 알고 있지만, 요금제에 대해서는 잘 모르는 클라우드 사용자를 종종 만나곤 합니다. 반대로 재무 분석가는 AWS 요금제에는 익숙하지만 각 서비스의 기술적 지식이나 그 대안에 대해서는 익숙하지 않은 경우도 있습니다.
서비스를 이용하거나 비용 최적화를 하기 전에, 역할에 관계없이 각 서비스와 서비스 비용 전반에 대한 이해가 필요합니다.
클라우드 아키텍트가 클라우드 환경을 구성하고 배포하는 방법입니다. 이는 AWS에서 어떤 서비스를 어느 리전에서 사용할 것인지, 보안 네트워크를 어떻게 구성하는지, 각 구성 요소가 다른 구성 요소와 상호 작용하는지 등을 의미합니다.
이때 비용 최적화를 고려해서 인프라를 설계하고 구성하는 것이 중요합니다.
AWS 비용 최적화는 일회성으로 끝나지 않습니다. 지속적인 모니터링과 추적, 최적화가 필요합니다. 클라우드 인프라 운영에 대한 책임은 클라우드 사용자, 데브옵스 엔지니어, 개발자, 비즈니스 분석가 등 조직 전체에 있습니다.
클라우드 사용량과 비용에 대한 모니터링, 추적, 사용 패턴의 이해, 추가적인 최적화 방안 등이 필요합니다. 관련 지식과 구조적 이해가 뒷받침되는 지속적인 운영 작업 없이는 비용 최적화를 이룰 수 없습니다.
KAO™는 상당히 유연하고 일반적인 접근법입니다. 최적화를 위한 지식, 구조, 운영의 방법을 잘 갖춘다면 AWS 서비스 전반에 최적화를 적용할 수 있습니다. 물론 비용 최적화된 클라우드 환경으로 개선하는 데 필요한 것들을 배우고, 묻고, 협업할 수 있는 자신감과 도구도 필요합니다.
비록 일부이지만, 비용 최적화를 위해 수행해야 하는 작업의 몇 가지 예를 살펴보겠습니다.
비용 최적화 프로세스를 시작하면 사용하지 않는 리소스에 대해서도 비용도 지불하고 있음을 알게 됩니다. 여기에는 연결되지 않은 EBS 볼륨, 이전 EBS 스냅샷, S3 객체, EC2 인스턴스, EIP 및 서비스의 리소스(아마존 워크스페이스나 암호화 키 등)가 포함될 수 있습니다.
이러한 시나리오는 클라우드 환경의 동적 특성과 인프라 확장 및 축소가 용이하기 때문에 일반적이라 할 수 있습니다.
적절한 정리 프로세스를 수행하지 않고 확장을 시작하면 리소스를 추적하지 못하게 되고 환경에 ‘좀비’ 리소스가 나타나기 시작합니다.
좀비 리소스에 대해서도 사용 중인 리소스와 동일한 비용이 발생합니다! 좀비가 생성되지 않도록 자동화된 메커니즘을 구현하고, 좀비가 생성될 경우 이를 식별하고 종료하는 ‘안전망’ 메커니즘을 구현하는 게 좋습니다.
컴퓨팅 비용을 최적화하기 위해서는 해야 할 일이 많습니다. 여기에는 다음과 같은 작업이 포함됩니다.
- 실행 중인 모든 EC2 인스턴스의 활용률에 대한 모니터링과 유휴 리소스가 없도록 보장하고, 활용률이 낮은 모든 인스턴스를 더 작은 인스턴스 유형으로 축소하는 지속적인 작업
- 인스턴스 유형, 프로세서, 크기 및 인스턴스 세대 전반에 걸친 인스턴스 선택 미세 조정
- EC2 프로비저닝 용량이 언제든지 수요를 충족하도록 오토 스케일링 그룹 설정
- 일별, 주별, 월별 스케줄에 따라 특정 시간 동안 실행되어야 하는 EC2 인스턴스 프로비저닝 및 종료 스케줄 설정
- 가능하다면 스팟 인스턴스 사용 확대
- 예측 가능하고 안정적인 워크로드 실행을 위한 세이빙 플랜 구매
- 어떤 워크로드가 EC2 인스턴스보다 람다 함수로 더 최적으로 실행되는지 평가
- 메모리 할당과 프로세서 아키텍처의 람다 함수 구성 미세 조정
- 컨테이너와 컨테이너의 기본 인프라 활용률을 모니터링하여 각 컨테이너, 호스트 및 파게이트 실행이 적절한 양의 리소스로 프로비저닝되도록 보장
- EC2 인스턴스의 과잉 프로비저닝을 방지하기 위해 컨테이너 클러스터 통합
AWS는 스토리지 서비스를 비용 최적화 방식으로 관리할 수 있는 수단을 제공합니다. AWS 스토리지 서비스를 사용하는 경우 특히 다음과 같은 작업을 수행하는 것이 좋습니다.
- 언제든지 필요에 가장 적합한 스토리지 유형을 사용합니다. 여기에는 S3 스토리지 클래스, EBS 볼륨 유형(인스턴스 스토어 포함), EFS 구성이 포함됩니다.
- 수명 주기 정책을 사용하여 S3 객체와 EBS 스냅샷을 관리합니다. 수명 주기 정책은 객체를 모니터링하고 스토리지 관련 비용을 최적화하기 위한 적절한 조치를 취하는 자동화된 프로세스를 제공합니다. 이 때 S3 객체를 스토리지 클래스 간에 전환하기 위한 타임라인과 삭제하기 전의 보존 기간을 정의합니다. 이렇게 하면 불완전한 멀티파트 업로드나 이전 버전의 객체에서도 객체를 관리하는 데 도움이 됩니다. 또한 특정 기간의 EBS 스냅샷을 삭제하기 위한 수명 주기 정책을 정의하는 게 좋습니다. 규정 준수에 필요한 이전 스냅샷을 보관하는 것도 필요합니다.
- 더 이상 필요하지 않은 데이터는 삭제해야 된다는 것을 잊지 마세요.
컴퓨팅이나 스토리지 비용 최적화보다 일반적이지 않습니다. 그러나 최적화를 위한 여지가 많이 남아 있는 부분입니다. 이러한 비용 최적화는 주로 비용 최적화를 염두에 두고 환경 네트워크를 얼마나 잘 설계했느냐와 관련 있습니다. 관련 요인은 다음과 같습니다.
- 서비스 간에 통신할 때 사용되는 IP 유형. 내부 통신에 사설 IP를 사용하면 IN이나 OUT 데이터 전송 비용이 발생하지 않지만 공인 IP나 EIP를 사용하면 비용이 발생합니다.
- 가용 영역 간 데이터 전송량과 리전 간 데이터 전송량
- 인터넷으로 전송되는 데이터양
- 데이터 전송 시 사용되는 네트워크 구성 요소(예: NAT 게이트웨이, 일래스틱 로드 밸런서)는 무엇입니까? 컴퓨팅 및 스토리지 리소스와 마찬가지로 네트워킹 설정에 주의를 기울여야 하며 비용 최소화를 위해 제안된 모범 사례를 기반으로 설계되어야 합니다.
애플리케이션 설정이 인프라 비용에 어떤 영향을 미칠 수 있을까요? 온프레미스 데이터 센터에서 실행 중인 애플리케이션을 ‘있는 그대로’ 퍼블릭 클라우드 인프라로 마이그레이션하는 ‘리프트 앤 시프트’라는 방식이 있습니다. 워크로드를 클라우드로 마이그레이션하는 조직의 수가 증가함에 따라 이 주제가 더욱 중요해지고 있습니다.
이러한 움직임은 온프레미스 데이터 센터를 폐기 및 통합하는 데 도움이 되고 비용 절감 효과를 제공합니다. 더불어 애플리케이션을 ‘클라우드 네이티브’로 만들어 비용을 추가로 절감할 수도 있습니다.
클라우드 사용에 필요한 기반을 설정하기 위해 수행해야 하는 여러 가지 작업을 정리하면 다음과 같습니다.
- 조직의 AWS 계정 구조를 정의합니다. 여기에는 새 계정을 생성하고 할당하는 지침, 명명 규칙 및 거버넌스 정책이 포함됩니다.
- AWS 서비스 카탈로그, AWS 컨피그, AWS 버짓과 같이 사용 가능한 다양한 AWS 서비스를 활용하여 AWS 서비스 사용을 추적하는 관리 정책을 설정합니다.
- 조직 전체의 태그 지정 정책에 따라 태그 지정 가능한 모든 리소스에 태그를 지정합니다.
- 리소스 활용 방식과 실행하는 각 프로젝트의 비용을 더 잘 파악할 수 있도록 보고서를 설정합니다.
- 프로젝트별로 비용을 추적하도록 예산 및 경보를 설정합니다.
- 최적화 노력의 결과를 추적하려면 KPI를 정의하여 사용하는 AWS 서비스가 사용하는 평균 비용을 측정하세요. 최적화 작업을 더 많이 수행할수록 비용이 절감됩니다.
이러한 조치는 제품, 아키텍처, 개발팀이 얻고 실천해야 하는 기술적 지식이나 전문 지식과는 별개입니다. 이는 주로 조직 내 모든 클라우드 사용자가 클라우드 서비스를 사용하는 방식에 영향을 미치는 조직 간 작업입니다. 또한 모든 클라우드 사용자가 비용 최적화의 중요성을 이해하고 지속적으로 비용 최적화 작업을 수행할 수 있도록 주의를 기울여야 합니다.
이 글은 <AWS 비용 최적화 바이블> 도서 내용 일부를 발췌 편집하여 작성되었습니다. KAO™ 방법론을 적용한 AWS 최적화 방법은 물론이고, 실제 사례와 예시 기반의 유용한 핀옵스 방법들을 다룹니다. 보다 자세한 내용은 하기 링크의 도서 정보에서 확인하실 수 있습니다.
최신 콘텐츠