Migration은 클라우드 전환의 끝이 아니고 시작
https://brunch.co.kr/magazine/cloud-finops
몇 차례에 걸쳐서 몇몇 기업들의 실제 클라우드 비용 발생 패턴에 맞춘 절감 방안을 소개하려고 합니다.
수많은 기업들의 비용 패턴을 분석하고 절감 방안을 제시하는 일을 진행해 보면 항상 절감에 대하여 생각을 하고 지속적인 관리를 해야 한다는 것을 알 수 있습니다. 비즈니스와 IT 운영상황에 따라서 모두 다른 패턴을 가지고 있지만, 담당자가 지속적으로 비용 관리를 하고 있는 기업의 경우에도 10~30% 정도의 추가적인 절감 방안이 나올 수 있으며, 일반적인 기업의 경우 50%에 육박하는 절감 방안이 나오기도 합니다. 다른 글에서 소개한 클라우드 운영을 위한 FinOps 핵심 3요소도 읽어 주시기 바랍니다. (https://brunch.co.kr/@cebi750/2)
1번 사례로 소개할 패턴은 스타트업에서 상당히 많이 가지고 있는 패턴입니다.
스타트업이라고 하면 뛰어난 기술력을 가지고 있을 것이고, 클라우드를 비롯한 요즘의 기술들을 엄청 잘 사용할 것이라고 생각할 수 있는데, 사실 많은 수의 스타트업은 IT 를 경험하지 않은 창업자가 좋은 아이디어를 가지고 시작하는 경우가 더 많습니다. 이러한 창업자들의 아이디어에 환호하며 같이 시작한 사람들 중에 클라우드를 경험한 사람도 있을 수 있지만, 초반에 비용이 풍족할 수 없는 현실 상 소위 요즘 잘나가는 클라우드 전문가를 확보한다는 것은 쉽지 않습니다. 이런 경우 개발을 외주에 의뢰해서 서비스를 개발하며 시작할 수도 있고, 자체 개발팀을 확보하더라도 빠르게 서비스를 런칭하기 위하여 이전에 많이 경험했던 형태의 인프라 아키텍처를 기반으로 개발하게 됩니다. 즉, 클라우드 환경에서 서비스를 개발하고 운영하지만, VM과 RDB Instance, Storage, CDN 등으로 구성된 아키텍처로 시작하게 되는 것이지요. 일반적으로 VM 위에 WEB Server, WAS Server 등 필요한 서버들을 구축하게 되고, 서비스가 활성화 되면서 VM Instance 와 RDB Instance 의 수량과 스케일이 올라가는 경향을 보이게 됩니다. 사실 제가 이끌고 있는 개발팀도 2년 전까지 이 구조로 서비스가 운영되고 있다가, 지금은 많은 부분들이 클라우드 PaaS 서비스를 사용하고 있고, Serverless 로 전환이 되고 있는 상황입니다. 이 부분에 대해서 제가 극강의 클라우드 비용 최소화 Serverless 라는 글에서 조금 설명 드린 것이 있습니다. (https://brunch.co.kr/@cebi750/5)
물론, 서비스의 특성 상 어떤 특정 어플리케이션을 VM 위에서 안정적으로 동작하게 제공하는 것이 핵심이기 때문에 비교적 단순한 아키텍처를 유지하고 있을 수도 있습니다. 단순히 인프라 비용 구조만 보고 어플리케이션을 상상할 수는 없기 때문에 그저 여러 패턴 중 하나를 설명하기 위한 가설로 이해해 주시기 바랍니다.
가설은 여기까지 하고, 지금부터는 실제 발생한 비용 정보만 가지고 절감안을 만들어 보겠습니다.
위의 패턴을 보면, 2020년 1월 USD 15,000 에서 2020년 6월 USD 17,700 까지 약 118% 비용이 증가하고 있습니다. 상세 내역을 살펴보면, 6월 기준으로 EC2가 약 64%, S3가 약 23%, RDS 가 약 8% 를 구성해서 3개의 상품이 전체 비용의 95%를 차지하고 있습니다. RI (Reserved Instance) 와 SP (Savings Plans) 는 전혀 사용하고 있지 않고, On-Demand 로 사용하고 있습니다.
상품별로 분리해서 과거 6개월 간의 비용 증가 추세를 반영해서 2020년 연말까지의 비용 증가를 예측해 보면 아래 그림과 같이 나타납니다. 가장 증가율이 크게 나타나는 상품은 RDS 로 약 25% 가까운 증가율을 보이고 있으며, 전체적인 비용 증가는 약 10% 정도로 나타나고 있습니다. EC2는 증가가 크지 않고, RDS 비용이 크게 올라가는 것으로 봐서 제공되는 서비스가 궤도에 올라서 사용자와 처리하는 데이터량이 크게 증가하고 있는 단계가 아닐까 상상을 하게 됩니다.
클라우드 인프라와 비용관리를 서비스하는 제 입장에서 많은 고객사가 비즈니스도 대박이 나고, 그에 따라서 이렇게 클라우드 사용 비용도 올라가고, 비용 관리를 위해 제가 운영하고 있는 클라우드 관리 플랫폼과 비용 절감 서비스를 많이 사용하면 좋겠네요. ^^;;
이 케이스에는 비즈니스가 안정적으로 성장하고 있다는 가정하에, 비용이 가장 크면서 일정한 수준으로 유지되고 있는 EC2 에는 SP 계약을 통하여 많은 금액을 절감할 수 있을 것으로 보이고, 큰 폭으로 증가하고 있는 RDS는 일단 추이를 지켜봐야 될 것 같습니다.
혹시, 모르시는 분들을 위해 추가 설명을 드리면, AWS의 RI와 SP는 할인이 전혀되지 않은 On-demand 에 비해 최대 72%까지 할인을 받을 수 있습니다. SP 는 사용금액을 커밋하는 구조로 되어 있으며, 커밋한 금액 안에서 적용되는 인스턴스의 타입과 리전의 제약을 받지 않고 자유롭게 타입을 변경하거나 사양을 높일 수 있는 매우 편리한 할인 계약 방식입니다. 단, 약정한 기간 동안은 사용하지 않더라도 그 비용 만큼을 지불해야 하는 약정 할인이지요. 즉, 서비스 규모가 갑자기 감소할 위험만 없으면 SP 계약을 통하여 On-demand 대비 최대 72%까지 비용 절감이 가능합니다. 그런데, SP 는 적용 대상이 ECS, EKS, EMR Cluster 등에 포함된 EC2 인스턴스와 Fargate 등 Computing Instance에만 한정이 되어 있습니다. 즉, RDS 와 같은 데이터베이스 인스턴스는 대상이 되지 않습니다. 그렇다면, RDS 는 RI 계약을 통하여 비용 절감을 노려볼 수 있는데, RI 는 할인을 받는 대신 약정 기간 동안 타입과 사양의 변경이 불가능한 계약 방식입니다. 즉, 매달 25% 씩 RDS 비용이 증가하고 있는 상황을 봐서는 RDS 스케일업이나 NoSQL DB 로 변경 등의 변화가 있을 수 있기 때문에 이 상황에서 RI 계약은 좀 더 비즈니스 변화에 연계해서 검토해 봐야 합니다.
물론, 저희는 이러한 데이터 패턴을 분석해서 실제 고객사와 같이 미팅을 하면서 저희의 가설을 설명드리고, 고객사의 상황을 들으면서 비용 절감 실행 방안을 같이 구체화하게 됩니다.
저희가 미팅에서 설명드린 절감 규모는 7월 예상 비용 USD 20,006, 비용 절감 방안을 수행했을 경우 예상되는 7월 비용은 USD 11,446 으로 절감 금액이 USD 8,560, 약 48.3%까지 비용을 절감할 수 있다고 설명드렸습니다.
SP, RI 외에도 자원 최적화 (Resource Optimization)도 병행하여 진행하게 됩니다. 자원 최적화는 미사용 자원을 찾아내어 삭제하거나 정지하고, 각 자원들 중에 oversized 된 자원이나 mordernized 필요한 자원을 찾아서 실행하는 활동입니다.
아래 캡처된 이미지와 같이 현재 미사용되고 있는 자원의 리스트와 낭비되고 있는 비용이 얼마인지 확인을 할 수 있습니다. OpsNow에서는 해당 고객사의 리소스들을 검사하여 263 개의 EBS 중에서 143 개가 일정 기간 동안 데이터 읽기/쓰기가 없고, EC2 에서 Unattached 되어 있는 상태로 확인하고 Unused 로 판정을 하게 되었습니다. 이렇게 사용되지 않는 자원들 찾아서 삭제함으로 잘감할 수 있는 비용도 매우 큽니다. 6월 기준 USD 17,705 중에서 약 27%에 해당하는 USD 4,826 이 미사용 자원으로 판정되고 있습니다.
아래 캡처된 이미지는 Right Sizing 분석 결과 입니다. 물론, 총 합계 외에도 각 리소스별로 Upsize, Downsize, Modernize, Idle 을 알려줍니다. EC2의 경우 Downsize 대상은 3개의 인스턴스로 분석이 되었는데, 30개의 인스턴스가 Modernize 대상으로 판정되고, 전체의 43.3%에 해당하는 45개의 인스턴스가 Idle 상태인 것으로 분석되었습니다. Idle 상태의 리소스는 사실상 Stop 을 시켜두었다가 필요할 때 Start 시키는 것으로 간단하게 비용을 절감할 수 있습니다. Idle 상태의 EC2 를 Stop 함으로써 절감할 수 있는 월 비용은 6월 기준 17,705 중에서 약 13% 에 해당하는 USD 2,293 이었습니다.
간락하게 클라우드 비용의 발생 패턴과 절감할 수 있는 방안에 대한 사례 한가지를 정리해 보았습니다. 여러 다양한 비용 발생 패턴들을 보여 드리며, 각각 절감 가능 금액이 얼마나 되었는지 계속 공유해 보도록 하겠습니다.
"Cloud 관리를 위한 FinOps" - 전체 내용 보기 (https://brunch.co.kr/@cebi750/17)