Envisioning

클라우드인데 비용이 왜 안 줄어들까?

ka1lua 2021. 9. 20. 11:00

 

 

클라우드가 앞으로 더욱 IT 시장의 주류가 될 것이라는 전망을 의심하는 사람은 없을 것입니다. 클라우드는 시장과 고객의 변화에 신속하게 대응하기 위한 방안으로써 기업의 IT 운영과 유지 관리에서 실질적으로 중추적인 역할을 하고 있습니다. 많은 기업이 클라우드로 이동하고 있습니다. 2020년에는 코로나 팬데믹으로 인해 이전보다 빠른 속도로 클라우드 사용량이 많아졌습니다. 갑자기 높아진 클라우드 지출이 예산을 초과함에 따라 향후 지출을 정확하게 예측하기 어려운 상황이 되었습니다. 이에 많은 기업이 비용을 절약하는 방법으로 기존의 클라우드 사용을 최적화하는 것을 최우선 과제로 두고 있습니다[그림 1].

 

 

[그림 1] 클라우드 도입 우선순위 과제 (출처: Flexera 2021 State of the Cloud Report[1])

 

클라우드를 검토하는 기업은 대부분 같은 목표를 가지고 있을 것입니다. 기업이 클라우드를 도입하고자 하는 가장 큰 이유는 비용 절감일 것입니다. 클라우드로 전환하면 비용을 절감할 수 있다고 합니다. IT 인프라와 애플리케이션의 일부 또는 전체를 클라우드로 전환하여 운영 비용을 절감하고자 하는 것입니다.
 
하지만, 비용 절감이라는 초기의 목표와 달리 현실에서는 지출을 낭비하는 현상이 발생하고 있습니다. 안타깝게도 기업이 클라우드로 전환할 때 클라우드 비용에 대한 절감 효과가 바로 나타나지 않을 수도 있습니다. 실제로 일부 기업에서는 클라우드 모델을 적용했지만, 온프레미스 시스템보다 월별 지출이 더 많아진 경우가 있었습니다. 클라우드가 확장함에 따라 클라우드 낭비도 확대되고 있었습니다. Accenture에 의하면, 평균적으로 기업들은 클라우드 지출의 30%를 낭비하는 것으로 나타났습니다[2]. 최근 1년 간 클라우드 사용량이 급격히 증가하고 현실적으로 지출이 증가하면서 클라우드 비용 최적화는 핫한 주제가 되었습니다.

 

 

클라우드 낭비가 발생하는 원인

 

클라우드를 이용하는 가장 큰 장점은 확장성입니다. 필요한 리소스를 구매한 후, 실질적으로 사용한 만큼 지불합니다. 최소의 비용으로 최대의 성능을 발휘할 수 있도록 하는 것이 클라우드의 핵심입니다. 향후에 필요하지도 않을 리소스를 미리 구매할 필요가 없습니다. 필요 이상의 리소스를 사용하지 않는 것입니다. 하지만 필요한 사용량을 정확하게 예측하기가 어렵기에 적정 규모의 리소스를 선택하는 것 또한 어렵습니다. 다음의 사례처럼, 필요하지 않은 상황인데 실행 중인 상태로 운영하거나, 워크로드가 과도하게 프로비저닝되거나, 사이징이 잘못된 경우 등에서 클라우드 낭비가 발생합니다.
 


 사용하지 않는 인스턴스
클라우드는 개발 속도에 중점을 두고 있기 때문에 새로운 인스턴스를 생성하거나 가동 중인 인스턴스를 계속 실행하도록 내버려 두기가 매우 쉽습니다. 즉, 가상머신과 스토리지를 유휴 상태로 두는 경우가 많습니다. 주로 스테이징, 테스팅, QA 등에 사용하는 개발 환경이 이에 해당합니다. 연결되지 않은 스토리지, 사용하지 않는 스냅샵, 사용되지 않지만 실행 중인 리소스 등으로 인해 비용을 지불하고 있습니다. 유휴 리소스가 운영되고 있다면 유휴 비용이 발생한다는 것입니다.
 
과도한 컴퓨팅 리소스
RightScale 조사에 따르면, 평균 클라우드 고객 청구서의 35% 가량이 낭비되는 것으로 보고 있습니다[3]. 클라우드 환경에서 애플리케이션을 운영하기 위해 CPU, 메모리 등을 할당하고 관리하는 것은 매우 일반적입니다. 하지만 클라우드 리소스가 과도하게 할당되거나 예약한 리소스를 제대로 사용하지 않는 경우에도 비용이 발생할 수 있습니다. 실제로 필요한 리소스 이상으로 리소스를 높게 잡는 경우가 종종 발생합니다. 이는 사용하지 않는 리소스에 대해서도 비용을 지불해야 합니다. 인스턴스의 40% 정도가 워크로드에서 필요로 하는 리소스보다 한 사이즈 크게 잡혀 있다고 합니다. 만일을 대비한 과잉 프로비저닝 습관은 곧바로 고치기 어려울 수 있습니다. 이외에도 비효율적인 컨테이너, 활용도가 낮은 데이터베이스 등으로 인해 클라우드 낭비가 발생하기도 합니다.
 
 스토리지 서비스 I/O
클라우드 스토리지는 기본적으로 할당 공간에 대한 비용을 지불합니다. 그런데 클라우드에서 작업할 때 읽기/쓰기 비용이 발생한다는 것을 간과하기 쉽습니다[4]. 즉, 다른 지역으로 데이터를 전송하거나 클라우드 외부로 데이터를 전송하는 등 스토리지 파일에 대한 I/O 작업 시에도 비용이 발생합니다.

 

 

클라우드 낭비를 줄이는 방법

 

클라우드가 비즈니스에 어떤 이익을 가져다 줄 것인지 이해하는 것이 중요합니다. Flexera 조사에 의하면, 기업의 92%는 멀티 클라우드, 82%는 하이브리드 클라우드 전략을 가지고 있습니다. 특정 클라우드 서비스가 비즈니스에 적합한 솔루션이 아닐 수도 있으며, 니즈에 맞는 모델이 다를 수도 있습니다.
 
클라우드 낭비는 관리의 필요성을 인식하지 못하는 기업에게는 심각한 문제가 될 수 있습니다. 클라우드를 도입할 때 여러 관점에서 비용을 절감할 수 있는 방법을 고려하겠지만, 도입 시점의 1회성 검토가 아니라 중장기적으로 클라우드 비용을 관리하기 위한 전략이 필요합니다. 이에 대한 실행 방안으로는 클라우드 서비스에 대한 설치, 구성, 관리를 자동화할 수 방법을 이용할 수 있으며, 배포, 백업, 보안 등 자동화를 통해 사람의 개입을 최소화함으로써, 인적 오류를 줄일 수도 있습니다. 또한 클라우드 비용 절감 프레임워크를 통해 클라우드에 적용할 수 있는 구체적인 비용을 분석할 수 있으며, 지출을 최적화할 수 있는 모든 방법을 검토해 볼 수 있습니다[그림 2].

 

 

[그림 2] 클라우드 비용 절감 프레임워크 (출처: TechTarget[5])

 

효과적인 클라우드 비용 최적화를 위해서는 설계 원칙이 중요합니다[6].

 

첫째, 클라우드 기반의 소비 모델과 유형을 정확하게 이해합니다. 클라우드는 기본적으로 수요에 따라 리소스를 확장과 축소할 수 있는 기능을 제공하며 사용한 만큼만 비용을 지불하면 됩니다.
둘째, 전반적인 효율성을 측정하고 리소스에 대한 가시성을 확보합니다. 클라우드에서 가시성은 효과적인 비용 관리를 위한 중요한 요소입니다.
셋째, 거버넌스 정책을 수립합니다. 클라우드의 온디맨드 특성과 셀프서비스 특성을 수용하고, 비즈니스 요구사항의 변경에 따라 적절하게 적용될 수 있게 합니다.

 

 

클라우드 비용을 제대로 관리하지 않으면 비용이 계속 증가할 수 있습니다. 비용 최적화를 지속적으로 추진하기 위해 매월 발생하는 비용을 확인하고 분석할 필요가 있습니다. 클라우드 네이티브 모니터링 도구를 사용하거나 라이프사이클 정책을 통한 비용 절감 기술을 활용하거나, 인스턴스의 적절 크기를 조정할 수 있도록 지속적으로 평가합니다[7].
 
클라우드 비용을 최적화하는 가장 효과적인 방법은 다음과 같이 요약할 수 있습니다.
 


○ 사용하지 않는 인스턴스 중지
사용하지 않는 인스턴스는 좀비 인스턴스와 같습니다. 실제로는 사용하지 않았지만, 연중무휴 계속 실행되고 있다면 누구도 모르게 청구서에 포함되어 있을 수 있습니다. 항상 사용하는 인스턴스가 아니라면, 예약 인스턴스를 사용하는 것이 좋은 방법입니다. 최소의 인스턴스를 유지하면서 예약 인스턴스를 통해 리소스를 가동하거나 축소하는 것입니다.

○ 요구사항에 적합한 인스턴스 유형 선택
인스턴스의 유형과 기능을 잘 알지 못해 잘못 선택하는 경우가 많습니다. 잘못된 인스턴스의 사용으로 예상 외의 비용이 발생할 수도 있습니다. 클라우드 벤더가 제공하는 인스턴스를 요구사항에 맞춰 히트맵을 제작해 보면, 인스턴스의 유형을 정확하게 이해하는 데 도움이 됩니다.

○ 중앙 집중식 스토리지 관리
중앙 집중식 관리 방식은 클라우드 사용량을 관리하고 모니터링하기가 더욱 쉬워집니다.

○ 서버리스 서비스 사용
서버리스 기반의 클라우드 서비스가 일련의 배포 과정을 처리하기 때문에, 개발자는 애플리케이션 코드를 작성하기만 하면 됩니다. 말 그대로 개발자들은 클라우드 인스턴스를 직접 구성하거나 관리할 필요가 없기 때문에시간과 비용을 절감할 수 있습니다.

○ 컨테이너 배포
컨테이너는 효율성, 단순성, 유지관리 용이성, 이동성 등의 다양한 장점으로 인해 멀티 클라우드 플랫폼과 같은 환경에서 더욱 강점을 가지고 있습니다. Kubernetes, Docker가 가장 많이 사용되고 있으며, 다른 환경으로 쉽게 마이그레이션, 배포, 관리할 수 있게 합니다.
 


기업은 비용 절감을 목적으로 클라우드를 도입하고 있습니다. 하지만, 비용을 지불하는 과정에서 낭비가 발생하기도 합니다. 많은 기업이 클라우드를 도입할 때 클라우드를 데이터센터인 것처럼 생각하고 계획한다고 합니다[8]. 그렇다 보니 만일에 대비하여 과잉 프로비저닝하는 경우가 많습니다. 과잉 프로비저닝으로 인해 결국 과도한 클라우드 리소스를 유지하게 되고, 이로 인해 실제로는 사용하지 않는 리소스에 대해서도 비용을 지불하게 됩니다. 낭비를 줄이는 데 가장 중요한 것은 클라우드 관점의 사고 방식에 익숙해야 합니다. 클라우드 서비스는 종량제 방식으로 제공합니다. 이에 기업은 비용을 지불하는 모든 리소스를 잘 사용하고 있는지 항상 확인하는 것이 매우 중요합니다.

 

 

References
[1] https://info.flexera.com/CM-REPORT-State-of-the-Cloud
[2] https://www.accenture.com/nl-en/blogs/insights/cloud-trends
[3] https://awsinsider.net/articles/2017/11/20/rightscale-aws-overpay-6-billion.aspx
[4] https://harness.io/blog/cloud-cost-management/reduce-cloud-costs/
[5] https://searchcio.techtarget.com/infographic/How-CIOs-can-achieve-cloud-cost-savings-in-3-steps
[6] https://www.missioncloud.com/blog/aws-cost-optimization-strategies
[7] https://newstar-online.com/blog/7-cloud-cost-optimization-challenges/
[8] https://www.idginsiderpro.com/article/3569769/5-ways-to-avoid-cloud-waste.html