brunch

You can make anything
by writing

C.S.Lewis

by 박정호 Jul 16. 2020

Cloud 운영을 위한 FinOps 핵심 3요소

https://brunch.co.kr/magazine/cloud-finops




카날리스(Canalys)의 리포트에 의하면 전 세계 기업들의 2019년 클라우드 지출 규모는 약 1,071억 달러, 한화로 약 130조 원 규모로 추산되고 있습니다.  2019년의 연간 성장률 37.6%를 고려하면, 2020년에는 약 1,500억 달러, 180조 원 규모를 예상하고 있습니다.


불과 몇 년 전만 해도 클라우드와 SaaS 서비스에 대하여 나의 데이터를 외부 서비스에 올릴 수 없다는 극복할 수 없어 보이는 벽이 있었지만, 지금은 대기업, 중소기업, 스타트업을 망라한 대부분 기업이 적극적으로 클라우드 환경으로 IT 시스템을 이전하면서, 비즈니스 상황의 빠른 변화에 대한 IT 시스템의 민첩성(IT Agility)을 확보하기 위하여 노력하고 있습니다.


클라우드의 규모는 연초 예상보다 더 커질 것으로 생각됩니다. 올해 초부터 전 세계를 휩쓸고 있는 코로나 사태로 인한 Remote Work  설루션, e-Commerce, 온라인 교육, 게임, 온라인 콘텐츠 등의 사용량이 급증하고 있는데, 이런 서비스를 제공하는 기업들의 인프라가 대부분 클라우드에서 운영되고 있으며, 클라우드 서버에 들어가는 메모리 반도체 주문의 급증으로 삼성전자가 2020년 2Q  Earning Surprise를 달성하고 있습니다. 이와 같이 클라우드 서비스 수요는 급증하고  있고, 클라우드를 이용하는 기업의 입장에서는 비용 관리에 대한 고민의 폭이 커질 수밖에 없습니다.


이와 같이 기업들의 IT 기반이 빠르게 클라우드와 클라우드 기간으로 서비스되는 SaaS로 이동을 하고 있는데, 아직까지 기업의 IT 관리 방식은 전통적인 방법에서 바뀌지 못하고 있습니다.


그동안 IT 인프라와 IT 시스템, SW 라이선스 등을 포함한 IT 자산은 사용 부서가 사용 목적과 이에 대한 ROI를 산출하여 승인받고, 재무 부서와 협의하여 예산 확보 혹은 구매 비용을 승인받은 후, 구매 부서를 통해 공급사와 견적, 네고, 계약, 주문 등이 진행된 후에, 입고된 IT 자산의 실물이 사용 부서로 입고가 되었을 때 사용이 가능해지는 구조였습니다. 이렇게 보유하게 된 회사 전체의 IT 자산 들은 정보시스템 관리 부서 혹은 총무 부서 등에서 IT 자산 대장을 관리하며 실물 자산을 실사하고, 회계 부서에서는 자산에 대한 감가상각을 적용하며 관리해 왔습니다.


이렇게 여러 부서들이 관련되어 있고 복잡하게 여겨질 수 있지만, 수십 년에 걸쳐 관리 방식이 개선되어 왔고, 실제 눈에 보이는 실물 자산을 가지고 관리해 왔기 때문에 체계만 잘 잡아 놓으면 관리가 비교적 어렵지 않았습니다. 기업의 규모가 커짐에 따라서 EAM(Enterprise Asset Management) 같은 자산관리 전문 시스템이 운영되기도 하고, ERP(Enterprise Resource Planning) 시스템에서 각 부서들의 IT 비용을 관리하기도 했습니다.


하지만 클라우드 환경에서는 완전히 다른 상황이 되어 버렸습니다. 클라우드 제품은 구매와 사용 과정 전체에서 전통적인 부서의 역할과 프로세스를 따르기 어려운 상황입니다.

클라우드 환경에서는 엔지니어나 SW 개발자가 직접 CSP에서 제공하는 콘솔에서 자원을 생성하는 것으로 자원의 사용과 비용 발생이 시작됩니다. 생성된 자산은 언제든지 사양을 변경하거나 예약 인스턴스나 특별 할인 프로모션 적용과 같이 방법으로 비용의 발생에 대한 조건이 변경될 수 있습니다. 생성도 쉽지만 삭제도 쉽습니다. 클라우드의 가장 큰 장점 중 하나는 리소스의 자동 생성과 삭제 (Auto Scaling)입니다.  구매 전에 적절한 사양을 산정하기 위하여 고민할 필요도 없고, 사용 중인 자원을 변경하고 폐기하는 것도 고민할 필요가 없습니다. 오토 스케일링과 스폿 인스턴스와 같은 기술들을 사용하여 수시로 리소스들이 자동 생성되고, 삭제됩니다. CPU Utilization, Network Traffic 등을 연동되어 모든 리소스들이 필요한 만큼만 사용되게 하는 것이 클라우드 기술의 가장 큰 장점인 것입니다.


클라우드의 리소스에 대한 비용 기준은 매우 복잡하게 구성되어 있습니다. 예를 들어 가장 많이 사용하는 가상 머신(VM)에 대한 비용은 단순히 가상 머신을 구성하는 CPU, Memory 사양에 의해서만 비용이 결정되는 것이 아닙니다.  가상 머신에 포함되어 있는 수많은 장치들과 그 장치들이 사용되는 용량에 따라 비용이 발생합니다. 네트워크 장비, 네트워크 IP, 하드디스크, 백업 장비, 데이터 인, 데이터 아웃, 네트워크 용량 등의 세부 단위로 계산됩니다. 비용 기준도 사용량에 따라, 요구 성능에 따라, 적용된 OS에 따라, 심지어는 어느 지역에서 생성되어 사용되고 있는가에 따라 다릅니다. 요금 적용 방식도 고정형 요금, 계단형 요금, 예약 할인 요금, 크레디트 등 매우 다양한 옵션들이 적용됩니다. 너무나 편리하고 합리적인 방식이지만, 전통적인 IT 관리 방식으로는 절대로 대응할 수가 없는 상황이 됩니다.  이런 상황에서 여러 부서를 통해서 IT 자산을 관리하던 전통적인 방식을 그대로 비용 관리를 하려고 하니, 제대로 될 수가 없었습니다. 재무 부서에서는 확정된 IT 자산의 예산을 요구하였고, 구매 부서에서는 리소스 생성과 삭제에 대한 승인을 받을 것을 요구하였습니다. 정보자산 관리 부서에서는 실물 자산 관리와 유사하게 라벨을 붙이고, 자산의 ROI를 뽑고 싶어 합니다. 이러한 요구에 대응해서 하나하나 설명하고, 필요한 자료를 만들기에 지친 개발자들은 그냥 최대 사양의 리소스를 생성하고 그대로 사용하는 웃을 수 없는 상황이 만들어지게 되는 것입니다. 그렇기 때문에 기업들 입장에서는 클라우드로 이전했더니 비용이 더 많이 나온다는 불만이 나오게 되는 것입니다.


똑같은 상황을 다른 관점에 바라보면 비즈니스 변화에 빠르게 대응하기 위하여 클라우드 환경으로 IT을 이동하고, 클라우드의 이점과 기술을 잘 활용하기 위하여 개발팀에 클라우드 사용 권한을 부여한다는 것은 회사의 특정 직원에게 한도 없는 법인카드를 발급하고 마음껏 사용하게 한 것과 같은 상황이 될 수 있습니다.

모두 아시는 바와 같이 클라우드 비용은 생성된 자원의 사용량과 사용 조건에 따라 결정됩니다. 클라우드 제품 중에는 한 시간에 몇 원 정도 발생하는 상품도 있지만, 한 시간에 몇 천 원, 즉 한 달에 몇 백만 원을 넘어가는 제품도 허다합니다. 실제로 AWS, Microsoft, Goolge과 같은 CSP(Cloud Service Provider)와 사용 기업 간 비용 관련된 이슈가 수도 없이 발생하고 있습니다. 대부분의 경우, 사용 기업에서는 실제로 비즈니스에 활용을 하지도 않았고, 테스트 용도나 혹은 직원 한 두 명의 단순한 실수로 생성되어, 몇 백, 몇 천만 원의 비용이 청구되는 케이스들이 계속 발생하고 있는 것입니다. 클라우드 리소스를 생성하고 삭제할 수 있는 권한을 가진 CSP 계정에 대한 관리 책임은 기업에게 있기 때문에 그 계정에서 비용이 발생한 후에는 원칙적으로 비용을 지급해야 되는 상황이 됩니다.


이와 같이 클라우드 환경에서 IT 비용 관리는 새롭고 어렵기 때문에 이를 위한  Cloud FinOps라는 개념이 생기게 되었습니다. DevOps가 개발과 운영을 긴밀히 통합함으로써 비즈니스 서비스를 안정적이고 빠르게 지원하는 목적을 가지고 있는 것이라면 , FinOps는 재무, 회계와 개발, 운영을 긴밀히 통합함으로써 비즈니스를 지원하는 클라우드 IT의 ROI를 효율적으로 최적화하고, 통제하기 위한 것입니다.


FinOps는 아래와 같이 3가지 핵심 요소로 구성됩니다.


첫 번째는 클라우드 비용에 대한 전문가입니다.


스마트폰을 구매할 때도 제대로 된 전문가를 만나면 다른 사람들보다 훨씬 좋은 조건으로 스마트폰을 내 손에 쥘 수 있습니다. AWS, MS, Google 등 글로벌 Top 3 CSP 들과 빠르게 성장하고 있는 알리바바, 텐센트 등 중국의 신흥 CSP 들, 공공과 금융 영역의 국내 특성에 맞추어 성장 기반을 확보하고 있는 KT, NBP 등 국내 CSP에서는 매일매일 클라우드 IaaS, PaaS, SaaS 상품을 새롭게 출시하고 개선해 나가고 있습니다. 수천 개의 상품과 다양한 사용 조건들 속에서 전문가 없이 클라우드 비용 관리를 하겠다는 것은 거의 불가능에 가까운 일입니다. 물론 클라우드 도입 초기 이거나 소규모 애플리케이션만 클라우드로 운영한다면 어렵지 않게 생각될 수 있지만, 곧 한계에 도달하게 됩니다. 처음부터 체계 있는 가이드를 통해서 불필요한 trial & error를 줄이며 클라우드를 운영해 나가는 것이 가장 좋은 접근 방법입니다.

클라우드 비용 전문가는 클라우드 상품과 기술에 대한 지식, 클라우드 비용 관리에 대한 경험 그리고 기업 내 임원들을 포함하여 재무, 관리, 개발자 등 여러 관련자들에게 정확하게 설명하고 가이드하는 컨설턴시를 가지고 있는 사람입니다.  클라우드 비용 전문가는 클라우드 비용을 기업의 여건에 맞게 가시화를 시켜 줄 것이며, 단계적으로 비용을 최적화시키기 위한 모든 과정을 이끌어 나갈 수 있습니다. 어떤 CSP를 선택할 것인지, CSP 계정과 리소스를 생성하고 삭제하는 관리 기준을 수립하는 방법, 비용을 조직과 프로젝트에 적정하게 분배하고 모니터링하는 방법, Reserved Instance, Savings Plans, Enterprise Discount Program, Enterprise Agreement 등 비용을 절감할 수 있는 적정한 계약 방식을 가이드하고, 실시간으로 발생하는 사용량을 모니터링하며 비용의 Anormaly를 설정하는 방법 , 불필요한 자원이나 미사용 자원을 찾아내는 방법, 리소스를 적정한 사이즈로 조정하는 것, 심지어는 서버리스 아키텍처를 도입하여 비용을 최대로 최적화하는 방법 등 이러한 모든 클라우드 비용 최적화 활동을 실행할 수 있도록 기업을 인도하고 방향을 잡아 줄 수 있습니다.

관리의 편리를 위하여 조직 구조에 맞추어 클라우드 리소스와 비용을 분배


Reserved Instance 의 계약 조건 별 절감 비용 시뮬레이션


두 번째 요소는 클라우드 자원에 대한 가시화 도구입니다.


서버 20대, 데이터베이스 3대 정도의 규모로 클라우드에서 애플리케이션을 운영한다는 가정으로 빌링 데이터를 살펴보면, 초 단위로 사용량이 산출되는 빌링 아이템이 하루에 수천 개 이상 발생합니다. 위에서 설명드린 바와 같이 하나의 서버라고 해도 열 개 이상의 하위 요소로 구성되어 있고, 서버가 구동되기 위한 환경에 필요한 네트워크, 보안 그룹, 로그 추적 도구 등 수많은 파생 상품들이 같이 생성되어야 하기 때문입니다. 또한 기업 입장에서는 여러 프로젝트와 부서에서 클라우드 계정을 공유하기도 하고, 때로는 한 부서나 프로젝트에서 여러 계정을 사용하기도 합니다. 뿐만 아니라 다수의 기업들이 특정 CSP에 종속되지 않기 위해서나 운영 안정성을 확보하기 위해서 멀티 클라우드, 하이브리드 클라우드를 운영하고자 합니다. AWS, Azure, GCP와 같은 여러 Public Cloud를 동시에 사용하면서, VM Ware, Open Stack 등을 이용하여 자체 Private Cloud 환경도 구축해서 운영하고 싶어 합니다. 형태와 구성이 다른 빌링 아이템들을 복합적으로 분석하고 모니터링하는 것을 엑셀 수작업으로 진행하는 것은 한계가 있습니다.

다른 예를 하나 더 들어보면, AWS 사용자들이 비용 절감을 위해 가장 많이 사용하게 되는 방법 중 하나인 Reserved Instance와 Savings Plans라는 계약 방식입니다. 이 방식은 간단하게 설명하면 기간이나 사용량을 약정하고 사용함으로써 비용을 절감받는 방식입니다. 그런데, 이러한 비용 절감 계약 방식은 개별 리소스 단위로 계약이 이루어지는 것이 아니라 기업이 보유한 여러 계정들에게 같이 공유되는 방식이고, 어느 부서 혹은 프로젝트의 어떤 리소스에 적용이 될지 알 수 없다는 것입니다. 예를 들어 어떤 기업이 AWS 계정을 A, B, C 3개를 가지고 있고 각 계정에 여러 EC2와 RDS Instance 들을 사용하고 있는 상황에서, AWS EC2와  AWS RDS에 대한 1년간 RI 계약, SP 계약을 체결해 두었다고 하면, 어느 계정, 어느 인스턴스에 RI, SP 할인이 적용될지 알 수 없다는 것입니다. 이것이 의미하는 것은 부서나 프로젝트 별로 원가를 뽑을 수 없다는 의미가 되니 기업 입장에서는 머리가 아파지게 되는 것입니다. 조금 다른 예이기는 하지만 계단형 요금제가 적용되는 상품의 경우에 여러 계정의 사용량을 합쳐서 받을 수 있다면 좀 더 높은 할인율을 적용받을 수도 있고, Support Plan과 같은 경우에는 여러 계정을 통합해서 적용하면 비용이 커지기 때문에 필요한 계정에만 선별적으로 적용하는 것이 유리한 방식입니다. 이렇듯이 여러 CSP 서비스에서 다수 계정 별로 복잡하게 생성된 리소스와 비용들이 각 부서나 프로젝트 별로 분배가 되거나 합쳐질 수 있어야 본격적인 클라우드 비용 관리를 시작할 수 있습니다. 이러한 작업을 엑셀 수작업에 의하여 집계하고 관리하는 것은 거의 불가능한 작업 일 뿐 아니라 매일매일 새로운 출시되고 변경되는 가격 정책의 복잡성을 따라갈 수 없는 한계를 가지고 있습니다.

가시화 도구는 비용과 리소스에 대한 현황을 관리하는 것뿐 아니라 비용 최적화를 가능하게 하는 효과를 가지고 있습니다.

비용 최적화는 사용되지 않는 자원을 찾아내어 삭제할 수 있게 해주는 Unused Resource 기능, CPU, Memory, Disk, Network 사용에 대한 메트릭과 애플리케이션의 워크로드를 분석하여 적합한 리소스 사양을 결정하는 Right Sizing 기능, Reserved Instance, Spot Instance, Savings Plans 등 특정한 할인 계약 조건을 활용하기 위한 Utilization, Coverage, Recommendation 기능 등이 필요합니다. 이러한 기능 들은 경험에 의한 룰로 동작하기도 하고, 통계적 분석이나 머신러닝과 같은 데이터 분석 기법에 의해서 제공되기도 합니다. 약정 계약에 대해 잘못된 판단을 내릴 경우 오히려 비용이 증가할 수도 있고, 사용되고 있는 인프라를 미사용 인프라로 오해해서 삭제를 하게 되면 서비스에 큰 영향을 줄 수도 있기 때문에 정확하게 파악하고 비용 절감 안을 추진할 수 있게 하기 위해서 가시화 도구를 사용하는 것은 필수 항목입니다.

리소스 최적화를 위한 Unused Resource Detection
AWS EC2 Resource 에 대한  Upsize, Downsize, Modernize 추천


세 번째 요소는 클라우드 운영을 지속적으로 최적 상태로 유지하기 위한  거버넌스 정책 수립과 통제입니다.


클라우드 환경에는 전통적인 IT 관리 환경에는 없었던 거버넌스 정책과 모니터링 방법이 필요합니다. 기본적으로 리소스를 생성에 대한 정책들이 필요합니다. 리소스 생성에 대한 승인 절차, 리소스 태깅 방식, 리소스 보안 그룹 적용과 계정과 사용자 승인, 접근 권한에 대한 보안 정책, 리소스들의 Utilization에 대한 주기적인 점검, 불필요한 리소스가 운영되고 있지는 않은지, 업무가 종료된 이후나 휴일에 불필요한 개발 리소스들이 켜져 있지는 않은지, RI 계약에 대한 Utilization 이 100% 적용되고 있는지 등의 기본적인 비용, 보안 관련 정책부터, CSP에서 제공하는 검증된 최적 아키텍처 (Well Architecture)를 기준으로 기업이 운영하고 있는 아키텍처를 비교하기 위한 Well Architecture Review 정책, ISMS, GDPR 등의 Compliance를 준수하기 위한 정책들을 체계적으로 수립하고 정기적인 검사를 수행하여야 합니다.

인증키나 리소스에 대한 접근 권한이 외부에 노출되는 실수는 매우 자주 발생하고 있습니다. 클라우드 활용의 성숙도가 높지 않은 사람들의 단순한 실수로 수천만 원의 피해가 발생하기도 합니다. 모 회사의 개발 프로젝트에 참여한 어떤 개발자가 자신이 작성한 코드의 일부를 공개 소스코드 레파지토리에 올렸는데 그 코드 중 클라우드 계정에 대한 access key 가 포함되어서 한 달 월급이 날아가게 되었다는 포스팅은 잊을 만하면 한 번씩 들을 수 있습니다. 또 누군가 유사한 실수를 하여 포스팅이 계속 올라온다는 것은 그만큼 관리하기 어렵다는 반증입니다. 계정이나 키에 대한 보안 관리, 리소스들에 대한 보안 설정, 불필요한 리소스가 운영되고 있지 않은지, 구매한 예약 인스턴스의 Utilization이 유지되고 있는지, 계정이나 사용하는 상품 별로 비용이 급증하지 않는지 이런 수 백 가지 항목의 규칙들을 주기적으로 자동 검사하여 사고를 미연에 방지하고, 발생된 사고는 빨리 발견할 수 있게 해주는 거버넌스 자동화 도입 또한 필수적인 클라우드 관리 활동입니다.

대다수의 기업들이 클라우드 도입 초기에는 데이터센터에서 운영하던 애플리케이션을 클라우드 환경으로 성공적으로 이전하는 부분에만 신경을 쓰고 많은 노력을 기울이고 있습니다.

클라우드 비용과 보안 규칙에 대한 자동 검사 대시보드


클라우드 환경으로의 이전은 끝이 아니고 시작입니다.

일부 애플리케이션의 클라우드 이전의 성공을 축하하다가 점차 늘어나는 자원과 비용 통제에 어려움을 겪는 기업들을 많이 보아 왔습니다. 그런 반면 몇몇 기업들은 클라우드 도입과 동시에 적절한 통제와 최적의 비용 절감을 이루어 가며 변화되는 비즈니스 환경에서 빠르게 강자로 떠오르고 있습니다. 이렇듯 클라우드 도입이 성공하느냐 실패하느냐는 클라우드 비용을 얼마나 잘 관리하고 통제할 수 있느냐에 달려 있습니다. 즉 FinOps의 3가지 핵심 요소인 클라우드 비용 전문가, 클라우드 가시화 도구, 클라우드 거버넌스를 통해 클라우드 비용을 관리, 통제할 수 있는 기업만이 클라우드 환경에서 성공할 수 있습니다.


클라우드는 선택이 아닌 필수이며, 기업의 생존과 직결된 것이므로, FinOps를 선제적으로 도입함으로써 급변하는 클라우드 환경에서 승자가 될 수 있도록 준비해야 할 때입니다.




"Cloud 관리를 위한 FinOps" - 전체 내용 보기 (https://brunch.co.kr/@cebi750/17)


 


매거진의 이전글 Lift & Shift 부터 50% 비용 줄이기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari