[reinvent 2024] FinOps의 시프트-레프트 접근으로 비용 효율성 극대화 (IBM Cloudability 스폰서)
Summary
클라우드 비용이 계속 증가하고 경제 상황이 불확실한 가운데, 클라우드 사용 및 엔지니어링 시간을 효율적으로 관리하는 것이 중요합니다. 본 세션에서는 엔지니어들이 효율성 문제를 사전에 파악할 수 있도록 실행 가능한 데이터를 조기에 제공하는 전략을 다룹니다. AWS 고객들이 자동화된 최적화 작업과 비용 절감 인사이트를 개발자 워크플로에 통합해 비용 효율성을 개선하는 방법을 탐구하며, 이를 통해 엔지니어들이 다른 중요한 업무에 집중할 수 있게 된 사례를 확인할 수 있습니다. 이 발표는 AWS 파트너 IBM Cloudability가 제공합니다.
리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
이번 세션에서는 클라우드 최적화 및 비용 관리에 대한 최신 동향을 주제로 다루고자 합니다. 특히, 클라우드 환경에서 효율적인 비용 관리를 통해 기업이 어떻게 경쟁력을 유지할 수 있는지를 배우고 싶었습니다.
이번 세션에서 주목할 내용은 클라우드 비용 절감 전략, 최적화 프로세스, 그리고 Shift Left 접근법입니다. 이러한 내용을 통해 실질적인 인사이트를 얻고, 조직의 클라우드 운영을 개선하는 데 기여할 수 있기를 기대합니다.
FinOps 프레임워크와 최적화 단계
FinOps는 클라우드 비용 관리를 위한 운영적 프레임워크이자 문화적 실천으로, 클라우드 사용의 비즈니스 가치를 극대화하고 데이터 기반 의사결정을 지원합니다.
Shift Left는 이러한 FinOps 원칙을 기반으로, 비용 최적화를 프로덕션 단계 이후가 아닌 설계 및 개발 초기 단계 에서 실행하도록 유도합니다.
이를 통해 얻을 수 있는 효과는 다음과 같습니다.
- 실시간 데이터 공유: 클라우드 비용 및 리소스 사용 데이터를 투명하게 제공하여 모든 팀이 같은 기준에서 논의할 수 있도록 합니다.
- 팀 간 책임 공유: 클라우드 비용 관리는 엔지니어링 팀만의 몫이 아니라, 재무 및 비즈니스 리더가 함께 책임지는 공동의 과제가 됩니다.
- 목표 지향적 접근: 데이터에 기반한 명확한 목표(예: 비용 절감, 리소스 최적화)를 설정하고 이를 달성하기 위한 명확한 계획을 수립합니다.
결과적으로, 이러한 협업은 클라우드 비용 관리를 단순히 기술적 문제가 아닌 비즈니스 가치 창출의 일환으로 자리 잡게 합니다.
데이터 기반 의사결정은 FinOps 프레임워크의 중심에 자리 잡고 있으며, 엔지니어링, 재무, 조달, 리더십 팀이 협력하여 비용과 리소스를 효율적으로 관리할 수 있도록 지원합니다. 조직 내에서 클라우드 비용 관리는 특정 팀의 책임으로 국한되지 않으며, 모든 팀이 데이터를 바탕으로 협력하고 책임을 나눠야만 성공적으로 실행될 수 있습니다. 이는 엔지니어링 팀이 기술적인 결정을 내릴 때 재무 팀의 비용 데이터를 참고하고, 리더십 팀이 클라우드 사용 전략을 결정할 때 각 팀의 데이터를 통합적으로 고려할 수 있도록 하는 방식으로 실현됩니다. 이러한 협업은 데이터 공유를 기반으로 신뢰를 쌓고, 클라우드 비용 최적화를 비즈니스 가치 창출과 연결시키는 데 기여합니다.
클라우드 비용 최적화를 위한 FinOps 실행 과정
FinOps의 중요한점은 클라우드 비용 관리의 최적화뿐만 아니라 조직 전반에서 비용에 대한 인식과 책임감을 강화해야 합니다. 이는 단순히 비용 절감 조치를 실행하는 것을 넘어서, 데이터를 기반으로 클라우드 자원을 이해하고 활용해야 합니다.
이를 위한 관문인 클라우드 자원 활용에서 최적화된 상태로 유지하기 위해서는 조직의 비용 효율성을 극대화하고 불필요한 낭비를 제거하며, 클라우드 자원의 성능을 최대한 활용합니다.
- 적절한 크기의 리소스 배치 (Well-sized VMs, DBs, Disks, and Containers)
과도하게 할당된 리소스를 줄이고, 사용량에 맞는 크기로 재조정합니다. 이를 통해 비용 절감과 자원 효율성을 모두 달성할 수 있습니다. - 유휴 리소스 제거 (No idle VMs, DBs, Disks, and Containers)
사용하지 않는 VM, 데이터베이스, 디스크 및 컨테이너를 탐지하고 종료함으로써 비용 낭비를 방지합니다. 이는 자동화된 스크립트나 모니터링 도구를 활용해 수행할 수 있습니다. - 효율적인 컨테이너 배치 (Well-placed Containers)
컨테이너가 클러스터 내에서 균형 잡힌 자원 배치가 이루어지도록 관리하여 성능 문제를 방지합니다. - 개발 및 테스트 환경의 자동화 (Dev/Test Envs turned off out of hours)
업무 시간이 아닌 시간에 개발 및 테스트 환경을 자동으로 종료하여 비용을 줄이고 에너지를 절약합니다. - 동적 확장 지원 (Dynamic scaling of IaaS, PaaS, and Kubernetes)
필요에 따라 리소스를 자동으로 확장하거나 축소하는 기능을 통해 유연성을 극대화하고 비용을 절감합니다. - 클라우드 네이티브 및 현대적인 애플리케이션 (Cloud Native/Modern Applications)
서버리스 아키텍처나 최신 기술을 활용해 클라우드 리소스를 최대한 효율적으로 사용합니다.
클라우드 환경에서 비용 최적화는 단순한 기술적 문제를 넘어 조직의 운영 및 협업 구조에 깊이 뿌리내린 전략적 과제입니다. 이를 효과적으로 해결하기 위해 FinOps는 단계적인 접근 방식을 제공합니다. 아래는 최적화된 상태를 달성하기 위해 조직이 따를 수 있는 네 가지 주요 단계를 통합적으로 설명하겠습니다.
1단계: 리소스 낭비 식별 및 책임 매핑
FinOps 실행의 첫 번째 단계는 조직 내에서 리소스 낭비를 식별하고 이를 팀별로 매핑하여 각 팀이 책임감을 가지고 이를 해결하도록 하는 것입니다.
- 책임 설정 (Start with Ownership)
조직 구조와 배포 전략을 연결하여 각 팀이 자신들의 리소스를 명확히 이해하고 관리할 수 있도록 합니다. 태그 및 계정 전략을 활용해 리소스를 분류하고, 이를 기반으로 비즈니스 규칙을 적용하여 모든 리소스에 명확한 책임자를 할당합니다. 이를 통해 각 팀이 자신의 클라우드 사용량과 비용을 명확히 파악할 수 있습니다. - 낭비 및 절감 기회 확인 (Quantify Waste and Savings Opportunity)
조직 내에서 과도하게 프로비저닝된 EC2 및 RDS 인스턴스, 연결되지 않은 EBS 볼륨, 라이프사이클 정책이 없는 S3 버킷, 그리고 유휴 상태로 남아 있는 리소스 등을 식별합니다. 이러한 낭비 요소를 제거하거나 최적화함으로써 즉각적인 비용 절감 효과를 얻을 수 있습니다.
2단계: 최적화 작업의 워크플로 통합
두 번째 단계는 엔지니어링 팀이 최적화 작업을 일상적인 업무로 통합하도록 돕는 데 초점을 둡니다.
- 데이터 기반의 의사결정 통합
엔지니어들이 자신들의 워크플로에서 비용 데이터를 쉽게 확인하고 최적화 작업을 수행할 수 있도록 데이터와 정책을 통합합니다. 이 단계에서는 엔지니어들이 리소스 최적화의 필요성과 결과를 실시간으로 확인할 수 있도록 권장 조치를 기존 비즈니스 워크플로에 포함시킵니다. - ROI 추적과 팀 동기 부여
최적화 작업의 ROI(투자 대비 수익률)를 추적하여 팀이 작업의 중요성과 성과를 명확히 이해할 수 있도록 지원합니다. 동시에 **게이미피케이션(Gamification)**을 활용하여 팀 간 경쟁과 동기 부여를 강화함으로써 엔지니어들이 최적화 작업에 적극적으로 참여하도록 유도합니다.
3단계: 사전 예방적 통찰과 가드레일
세 번째 단계는 최적화를 사전에 계획하고 실행할 수 있는 체계를 구축하는 것입니다.
- GitOps 파이프라인과 통합
비용 통찰력을 GitOps 파이프라인에 통합하여 코드 배포 과정에서부터 비용 관리를 실행할 수 있도록 합니다.
기존의 IaC(Infrastructure as Code) 구성 파일을 활용해 태그 지정, 인프라 선택, 그리고 예산 관리와 같은 가드레일을 설정합니다. - 가드레일 강제 적용
설정된 가드레일은 인프라의 설계와 배포 과정에서 자동으로 실행되며, 이를 통해 최적화 작업이 일관되게 이루어질 수 있습니다. 특히 태그 지정 및 예산 한도를 명확히 설정하고 이를 강제 적용함으로써 비용 관리의 일관성을 유지합니다.
4단계: 비용을 고려한 제품 결정
마지막 단계는 클라우드 자원 관리를 넘어 제품 설계 단계에서부터 비용을 고려하는 것입니다.
- 비용 중심의 협업
제품 및 엔지니어링 팀이 초기 단계부터 협력하여 단위 경제 목표를 설정하고, 이를 바탕으로 제품 설계의 방향성을 결정합니다. 이러한 협업은 비즈니스 가치와 기술적 효율성을 모두 충족하는 결정을 내릴 수 있도록 합니다. - 의사결정 기반 구축
단위 경제 목표를 기반으로 “실행 가능 여부(Go or No-Go)”를 판단하며, 이를 통해 장기적으로 비용 효율성이 보장되는 제품을 개발할 수 있습니다.
시프트 레프트(Shift Left)의 중요성
시프트 레프트(Shift Left)는 애플리케이션 개발 및 클라우드 운영에서 중요한 개념입니다. 이는 초기 단계에서부터 비용 및 운영 효율성을 고려하여 문제를 예방하고, 클라우드 자원의 낭비를 줄이는 것을 목표로 합니다. 이 개념은 DevSecOps 커뮤니티에서 시작되어, 보안 및 결함 관리를 조기에 해결하려는 접근법에서 비롯되었습니다. 이는 궁극적으로 조직의 비용 절감과 운영 효율성을 극대화할 수 있는 방향성을 제시합니다.
효율적인 클라우드 운영을 위해서는 조직 내의 사일로를 극복해야 합니다. 설계 단계에서부터 비용과 가치 창출 간의 관계를 명확히 하고, 운영 단계로 갈수록 발생하는 불필요한 낭비를 줄여야 합니다. 해당 그래프는 비용 인식이 부족한 경우의 비용 곡선과 비용을 고려한 제품 설계, 엔지니어링 의사결정, 운영 최적화를 비교하여 보여줍니다. 특히 초기 설계 단계에서 비용을 고려하는 것은 장기적인 운영 효율성을 보장하는 데 핵심적입니다.
AWS에서는 자원 기반 및 소비 기반 커밋 전략을 통해 비용 절감을 실현할 수 있습니다. 예를 들어, EC2 예약 인스턴스(Standard Reserved Instances)는 특정 리전과 인스턴스 유형에 고정하여 비용을 절감할 수 있도록 합니다. 반면, 소비 기반의 컴퓨팅 절약 플랜(Compute Savings Plans)은 보다 유연하게 여러 서비스와 리전 간 비용 절감을 제공합니다. 커밋 전략을 적절히 활용하면 리스크를 최소화하면서도 장기적인 비용 효율성을 달성할 수 있습니다.
지속 가능성은 재정적 비용뿐 아니라 환경적 비용도 고려해야 합니다. AWS에서는 전력 소비 및 탄소 배출량과 같은 환경적 지표를 리소스 수준에서 제공하여 지속 가능성을 시프트 레프트 관점에서 실현할 수 있습니다. 이러한 지표를 엔지니어에게 제공함으로써 초기 설계 단계에서부터 환경적 영향을 최소화할 수 있는 결정을 내릴 수 있습니다.
클라우드 비용 효율성을 비즈니스 가치와 연계하기 위해 단위 비용 메트릭을 활용하는 것은 중요합니다. 예를 들어, 특정 비즈니스 가치를 제공하는 클라우드의 단위 비용을 측정함으로써 운영 효율성을 객관적으로 평가할 수 있습니다. 이는 단순히 총 비용을 보는 것이 아니라, 고객 활동의 대리 지표로서 내부 메트릭을 통해 비즈니스 의사결정을 최적화하는 데 기여합니다.
결론
이번 세션을 통해 Shift Left의 개념과 FinOps 프레임워크를 중심으로 클라우드 비용 최적화의 중요성과 실행 방법에 대해 깊이 있게 논의할 수 있었습니다. 이러한 접근 방식은 클라우드 인프라를 보다 효율적이고 지속 가능하게 관리하는 데 큰 도움이 됩니다. 특히, 초기 개발 단계에서부터 비용 효율성을 고려하고, 조직 내 협업을 강화하며, 단위 경제학을 활용하여 성과를 측정하는 것이 핵심적인 인사이트였습니다. 앞으로도 이러한 전략을 통해 클라우드 비용을 효과적으로 관리하고, 조직의 경쟁력을 강화할 수 있을 것으로 기대됩니다.
이번 세션을 통해 클라우드 비용 관리와 최적화에 대한 새로운 시각을 제공하며, 이를 통해 더욱 효율적이고 지속 가능한 클라우드 인프라를 구축할 수 있는 기반이 되었습니다.