brunch

You can make anything
by writing

C.S.Lewis

by 김영욱 Feb 28. 2021

기업용 클라우드 비용을 최적화하자.

불확실성의 시간에 비용 최적화를 통해 기업의 경쟁력 극대화에 집중하자.

이 글은 제가 NIA [한국지능정보사회진흥원]의 < 디지털서비스 이슈리포트 > 2021년 2월호에 기고한 글입니다. 원본 글  02 기업용 클라우드 비용을 최적화하자 을 이곳 브런치에서도 함께 공유합니다.


Information is the resolution of uncertainty.

0. 불확실성의 올바른 이해

많은 IT기업에서 소프트웨어 프로덕트/서비스를 제공할 때 사용자의 요구사항, 시장의 흐름, 경쟁제품의 동향을 빠르고 스마트하게 반영하기 위해 사용하는 개발 방법론 중에 애자일이란 프로세스가 있다. 기존에 정해 놓은 순차적대로 움직이는 워터폴 (Waterfall) 방식이 아닌, 순간 순간 기민하게 상황에 맞추면서 최고의 품질을 가진 프로덕트/서비스 제공하기 위한 방법이다. 그런데 그러한 선진 IT기업에서도 기존의 워터폴 모델방식을 고수하는 대표적인 워크플로우가 있으니 그것이 바로 예산과 그 집행과정이다. 회계연도 초에 최고 경영진으로부터 부서 예산이 할당되면 그것에 따라 1년동안 조정을 거치면서 집행을 하고 보고를 한다. 상황변화로 큰 조정이 필요한 경우 그 조정 비용에 걸맞은 회의가 열려야 결정이 된다. 사업 계획을 세우고 목표를 세울 때는 항상 어느 정도 불확실성이 존재한다. 고객이 제품에 어떤 반응을 보일지, 아니면 판매 예측이 정확한지 알 수 없다. 그러나 기술 시스템을 얼마나 효율적으로 운영하는지, 그 기술 시스템이 비즈니스 사용자에게 얼마나 잘 서비스되고 있는지는 분석하고 제어할 수 있다. 오늘날, 일반적인 비즈니스 불확실성에 글로벌 불확실성이 더해져 기존의 기술 리소스를 현명하게 활용하고 현재 보유 중인 리소스를 최대한 활용하는 것이 더욱 중요하다. 많은 기업의 디지털 트랜스포메이션의 대표적인 방법이 안정적이고도 유연하게 확장 가능한 클라우드 플랫폼, 서비스로의 이동이다. 기업 내부의 자산 뿐만 아니라, 기업의 경쟁력이 되는 상품도 클라우드 플랫폼을 이용하여 서비스하고 있다. 클라우드로 전환하면 글로벌 규모로 혁신을 지원하고, 시장 출시 기간을 단축할 수 있으며, 고객의 요구에 신속하게 대응하여 경쟁 우위를 확보할 수 있다. 원론적으로 말하면, 클라우드 리소스를 더 많이 활용할 수 있게 되면 더 많은 고객에게 서비스를 제공하고, 더 많은 문제를 해결하며, 전체 비즈니스에 대한 더 많은 적응력을 확보할 수 있다. 클라우드 리소스를 보다 효율적으로 사용하면 팀과 비즈니스가 이러한 새로운 현실에 적응하고 최대한 효과적으로 대응할 수 있다.

기업에게 있어 불확실성 중 가장 치명적인 부분은 비용 통제가 매우 어려운 때이다. 그러기에 그 비용을 책임지는 부서에서는 워터폴이라는 정해진 순서대로 비용도 집행되고 운영되기를 바라는데, 클라우드의 기본개념이 이것과 원론적으로 맞지 않는다. 사용한 만큼 지불하고, 필요하면 늘려서 사용하고 사용자가 많아지면, 그것에 따라서 즉각적 대응이 필요한데, 이 부분을 계획하고 수정하고 무작정 늘릴 수도 없기 때문이다. 궁극적인 목표는 비용을 최적화하면서 비즈니스 가치를 극대화하는 동시에 클라우드 리소스의 가장 효과적이고 효율적인 사용을 늘 염두에 두는 것이다.

451 리서치의 조사 에 의하면, 그림 1과 같이 상위20%정도의 기업을 제외하고는 클라우드 비용에 대한 최적화 접근법이 기존의 IT비용을 운영하는 방법과 같거나, 스프레드시트와 같은 수작업에 의존하고 있는 것으로 나와있다. 또한 조사대상자의 약 45%는 ”기업내에서 이런 비용최적화 접근법이 디지털 혁신을 방해할 우려를 만들 수도 있기에 클라우드 비용에 대해 더 많은 조치를 하지 않았다” 라고 답변했다.

그림 1. 기업의 클라우드 비용운영 현황 (출처: 451 리서치)

이 조사 결과는 클라우드 비용 최적화에 대해서 아직은 기업문화가 성숙단계가 아니라는 것을 의미한다. 하버드 비즈니스 리뷰에 의하면. 역사상 지난 3번의 불황을 분석한 결과, 비용 절감과 혁신 투자의 올바른 적용에 초점을 맞춘 기관들은 강한 불경기를 만났을때, 그들이 불경기 전보다 8배가 강한 모습으로 불경기를 벗어났다라는 보고가 있다. 지금과 같은 불확실성 시대에 꼭 참고해 볼만한 사례이다. 이 글에서는 클라우드 비용을 최적화 하는 도구는 어떤것들이 있으며, 최적화를 접근하는 모범사례에 대해서 알아보고자 한다.



1. 클라우드 비용 최적화 도구(Cloud Cost Optimization Tools)

클라우드 성능과 비용 최적화를 지원하는 도구들은 최근 수년간 급속도로 완성도가 높아졌다. 몇년전까지만 해도 매우 적은 수의 툴로서 표면적이고 광역적 관리만 할 수 있었는데, 이제는 특정 범주별로 모두 최적화 문제에 접근할 수 있다. 각 범주에 대해서 살펴보자.


1) 클라우드 관리 도구 (Cloud Management Tools)

이 범주의 도구는 클라우드 환경의 대부분을 관리하도록 설계되었다.

주요 기능으로는 프로비저닝, 조정, 인벤토리 관리, 모니터링, 분석, 워크로드 최적화, 비용 관리, 클라우드 마이그레이션, 백업, 재해 복구, 보안이 있다. 이 범주에 포함되는 기능의 워낙 많기에, 구현 시간이 길어질 수 있다. 최근까지 이러한 종류의 도구는 순수 비용 최적화 도구만큼 기능이 풍부하지 않았으나 최근의 클라우드 기업간의 인수 합병으로 인해 이러한 클라우드 관리 솔루션이 다른 최고의 비용 최적화 솔루션과 기능적으로 별 차이가 없어졌다. 

사용 추천대상: 단일 및 다중 클라우드 환경에서 워크로드와 비용을 파악하고자 하는 조직은 이 도구가 이점이 있다. 또한 클라우드 전반에 걸쳐 적절한 워크로드에 적합한 인스턴스를 구축하려는 경우에도 이 도구가 적합하다.


2) 클라우드 비용 최적화 도구 (Cloud Cost Optimization tools)

클라우드 비용 절감에 중점을 두고 있는 도구이다. 이러한 유형의 솔루션은 주요 퍼블릭 클라우드 환경(AWS, GCP 및 Azure)을 지원하며 사용되지 않는 리소스의 올바른 크기 조정, 위치 사용하지 않는 리소스 찾기 및 폐기(decommissioning), 비용 절감 방법에 대한 제안 과 인스턴스 예약 관리를 제공한다. 

사용 추천대상: 단일, 다중 또는 하이브리드 클라우드 환경에서 워크로드와 클라우드 리소스 간에 정확한 적합성을 찾을 때는 이 도구가 도움이 된다. 또한 가시성뿐만 아니라 비용 절감을 위한 지침과 지능형 제안을 원하는 경우 사용한다. 이러한 도구는 일반적으로 단순한 인스턴스 크기 조정 수준을 넘어, 현장 인스턴스, 예약된 인스턴스 구매 계획, 특정 시스템 설정(코어 수, RAM 양 등), 가동 시간, 다운타임 등을 평가할 수 있도록 지원한다.


3) 인프라 스트럭쳐 구성 조정/최적화 도구 (Infrastructure Configuration Tuning/Optimization tools)

비교적 새로운 솔루션인데, 기본 인프라 내의 구성이 특정 애플리케이션에 최적화되도록 하는 데 초점을 맞춰주는 도구이다. 이러한 도구는 인공 지능을 사용하여 구성 설정을 변경하고 애플리케이션이 올바르게 동작할 때까지 지속적으로 조정하면서 지속적으로 반응을 관찰한다. 이런 제품은 새로운 배포가 이루어질 때마다 최적화 튜너를 실행한다.

이 사용법에서 숙지해야 할 중요한 한 가지는 구축 외부에서 워크로드가 변경될 경우 더 이상 워크로드를 최적으로 지원하지 않는다는 것이다. 워크로드 조정(Workload Orchestration) 솔루션은 애플리케이션의 지원 인프라 최적화 (특히 활용률에 따라 서버의 크기를 적절히 조정)에 초점을 맞추고 있지만, 인프라 및 애플리케이션 구성 조정 솔루션은 올바른 애플리케이션에 적합한 구성이 설정되도록 하는 데 초점을 맞춘다.

사용 추천대상: 수많은 기존(legacy) 애플리케이션과 최신 애플리케이션을 보유한 비교적으로 큰 기업 조직은 이러한 도구가 큰 이점을 가져다 줄 수 있다.


4) 워크로드 조정 도구(Workload Orchestration Tools)

이 종류의 도구는 현재 사용 중인 클라우드 리소스와 프로비저닝된 클라우드 리소스를 모두 살펴보고 사용 중인 서비스를 최적화하는데 사용한다. 예를 들어 사용률이 특정 임계 값 미만일 경우 컴퓨팅 인스턴스의 크기를 자동으로 줄이는 것이 이 도구의 특성이다.

기존 기본 리소스를 조정하여 가용성과 비용 균형을 보장하는 것이 이 도구의 큰 이점이 된다. 그러나 이미 위에서 이야기한 도구를 사용하여 클라우드 환경을 합리적으로 활용하고 있는 경우라면 성능 및 비용 개선에 있어서 다른 도구들에 비해서는 미미한 개선 효과가 있다.

사용 추천대상: 탄력적인 환경에 최적화된 애플리케이션을 사용하여 탄력적인 인프라를 운영하는 기업 조직에 가장 적합합니다. 단일, 다중 또는 하이브리드 클라우드 환경을 모두 지원한다.


5) 실시간, 연속 최적화 도구 (Real-time, Continuous Optimization tools)

이 도구는 성능과 비용 최적화 과제에 접근하는 방법이 완전히 다르고 새롭다. 이 방법은 구성이나 자원 선택에 초점을 맞추는 대신, 애플리케이션의 요구에 완벽하게 맞도록 운영 체제와 커널을 자동으로 업데이트한다. 운영 체제의 작동 방식을 평가하고 업데이트하는 새로운 배포에 의존하지 않고 운영 체제를 지속적으로 실시간으로 커스터마이즈 한다. 이를 통해 트래픽 및 환경 변화에 지속적으로 적응할 수 있도록 함으로써 모든 워크로드가 항상 최고의 성능을 제공할 수 있도록 한다. 이 도구는 자율적이고 지능적인 에이전트를 사용함으로써 관리 감독을 거의 받지 않고 작동한다. 이 접근 방식을 통해 보통 2주내에 최적화 효과를 볼 수 있다. 이 도구의 가장 큰 장점은 조직의 비용 최적화 성숙도와 관계없이 30-60%의 비용 절감과 동시에 성능개선을 제공한다는 사실이다. 따라서 이제 막 전환 단계에 접어든 기업 뿐만 아니라 최신 비용 및 성능 최적화 솔루션을 구축한 기업에서도 상당한 이점을 얻을 수 있다.

사용 추천대상: 비용최적화 성숙도 수준과 상관없이 모든 조직에서 이점을 얻을 수 있다. 그러나 이러한 솔루션을 구현하기 전에 기본적인 가시성 및 측정 기능을 갖추는 것이 좋다. 단일, 다중 및 하이브리드 클라우드 환경에게 모두 동작한다.


6) 클라우드 플랫폼 제공자의 최적화, 비용관리 도구

모든 플랫폼 제공자는 비용 관리 및 최적화를 지원하는 기본 툴을 제공하지만, 단일 클라우드 제공자만 사용하고 있는 조직은 사용 가능한 비용 관리면에서 그다지 높은 결과를 얻기는 어렵다.

구글은 ‘구글빌링(Google Billing)'이라는 이름으로 비용관리 도구 서비스를 제공한다. 마이크로소프트 애저는 비용 관리 및 어드바이저 서비스를 포함한 많은 서비스를 제공한다. 이름에서 보듯 ‘애저 어드바이저(Azure Advisor)’는 워크로드에 따라 올바른 인스턴스 크기에 대해서 지속적인 지침을 제공한다. 마찬가지로 아마존 AWS의 ‘트러스티드 어드바이저(Trusted Advisor)’ 서비스는 서비스 사용량을 기준으로 비용 최적화 옵션을 평가하고 알려준다. 또한 AWS가 최근에 도입한 세이빙플랜(Saving Plan)은 기존의 예약 인스턴스보다 비용절감에 더 큰 유연성을 제공한다.


7) 표준 인프라스트럭쳐 및 운영 도구

클라우드 비용 최적화 전문 도구는 아니지만, 표준 인프라스트럭쳐 및 운영도구에는 비용 절감 효과가 있는 도구가 기본적으로 탑재되어 있다. 이런 도구를 잘 사용하는 것으로도 비용 절감 효과를 볼 수 있다.

인프라스트쳐 감시와 종속성 매핑 (Infrastructure monitoring and dependency maping)도구: 클라우드 환경에서 고립된 리소스를 식별하여 알려준다.

 AIOps 도구: 다운타임을 줄이고 서비스 문제의 근본 원인을 파악하는 데 중점을 두고 있다는 점에서 기존 인프라 모니터링 솔루션과 유사하다. 또한 성능 문제의 잠재적 원인을 식별하여 알려준다.

애플리케이션 성능관리(APM: Application Performance Management) 도구: 애플리케이션 아키텍처 내의 병목 현상을 식별하여 성능을 개선할 수 있는 위치를 파악하여 알려준다. 

그렇다면 현재 클라우드를 도입한 기업들은 어떤 벤더의 툴을 사용하여 비용 최적화에 노력하고 있는지 그 상황을 보자. 그림 2와같이 빅 쓰리 (AWS, Azure, GCP) 벤더가 상위를 점유하고 있고 그 다음으로는 여러가지 툴들을 복합적으로 사용하고 있는 것이 추세이다.

그림 2. 기업의 비용최적화 도구 벤더별 현황 (출처: 핀옵스 파운데이션)

클라우드의 비용을 최적화한다고 해서 클라우드의 업무 성능을 저하시키고 희생시킬 수는 없다. 위에서도 이야기했듯 이런 비용최적화 추진이 디지털 혁신을 방해한다고 오해를 만들수도 있기 떄문이다. 지금까지 소개한 모든 도구는 그것을 사용하는 요리사의 칼과 같은 의미로 사용해야 한다. 여러가지 도구를 사용하면서, 전반적인 성능과 비용 모두를 최적화하는 것이 중요하다. 밑의 그림3의 정리된 결과를 참고하여 최적화 도구를 꾸준히 익히는 기업 문화가 필요하다.

그림 3. 클라우드 비용/성능 최적화 도구 분류


2. 클라우드 비용 최적화 모범 사례 (Best Practices)

클라우드 비용 최적화는 잘못 관리된 리소스를 식별하고, 낭비를 제거하고, 더 높은 할인을 위한 용량을 예약하며, 확장하기 위한 올바른 크기 조정 컴퓨팅 서비스를 통해 전체 클라우드 지출을 줄이는 과정이다. 일반적으로 기업에서는 사용하는 리소스에 대해서만 비용을 청구함으로써 조직에 무제한 확장성을 제공하면서도 동시에 IT 비용을 절감하고 있다고 생각하지만, 많은 클라우드 제공자들은 사용 여부와 관계없이 주문 리소스에 대한 비용을 청구한다. 가트너의 보고서에 의하면, 클라우드 비용의 70%가 낭비되고 있다고 평가한다 . 기업은 다음에 소개하는 6가지 비용 최적화 베스트 프랙티스를 당장 시작해 볼 필요가 있다.


1) 사용되지 않거나 연결되지 않은 리소스 찾기

클라우드 비용을 최적화하는 가장 쉬운 방법은 사용되지 않거나 연결되지 않은 리소스를 찾는 것이다. 종종 관리자나 개발자는 임시 서버를 전환하여 기능을 수행하다가 작업이 완료되면 해제하는 것을 잊어버리는 일이 많다. 또는 관리자가 종료하는 인스턴스에 연결된 스토리지를 제거하는 것을 잊어버릴 수 있다. 이러한 현상은 회사 전체의 IT 부서에서 자주 발생하는데 결과적으로 한 조직의 AWS 및 Azure 청구서에는 한 번 구입했지만 더 이상 사용하지 않는 리소스에 대한 요금이 당연히 포함되어 있다. 클라우드 비용 최적화 전략은 사용되지 않고 완전히 연결되지 않은 리소스를 식별하여 제거하는 것으로 시작해야 한다.


2) 유휴 리소스 식별 및 통합

클라우드 컴퓨팅 비용 최적화의 다음 단계는 유휴 리소스를 해결하는 것이다. 유휴 컴퓨팅 인스턴스의 CPU 사용률은 1 - 5%정도인데 기업이 컴퓨팅 인스턴스의 100%에 대해 청구되는 경우 이는 상당한 낭비가 된다. 클라우드 비용 최적화 전략은 이러한 인스턴스를 식별하고 컴퓨팅 작업을 더 적은 인스턴스로 통합하는 것이다. 클라우드이전의 데이터 센터 시절에, 관리자는 트래픽 급증이나 바쁜 시즌을 보낼 수 있는 여유 공간이 필요했기에 평소에는 낮은 활용률로 운영하기를 원했다. 데이터 센터에서 새 리소스를 추가하는 것은 어렵고 비용이 많이 들고 비효율적인 반면, 클라우드는 자동 확장, 로드 밸런싱 및 온디맨드 기능을 제공하여 언제든지 컴퓨팅 성능을 확장할 수 있다.


3올바른 크기의 컴퓨팅 서비스

올바른 사이징은 컴퓨팅 서비스를 분석하고 가장 효율적인 크기로 수정하는 프로세스이다. 가트너의 또 다른 보고서에 따르면, 클라우드 관리자가 선택할 수 있는 조합이 170만 개 이상일 경우 인스턴스 크기를 올바르게 조정하기가 불가능하다고 한다. 서버 크기 외에도 메모리, 데이터베이스, 컴퓨팅, 그래픽, 스토리지 용량, 처리량 등에 최적화된 서버 옵션이 있다. 올바른 사이징은 단순히 클라우드 비용을 줄이는 것 이상의 기능을 하며, 클라우드 성능최적화에도 물론 도움이 된다. 즉, 비용을 지불하고 있는 리소스로부터 최고의 성능을 얻을 수 있는 것이다.


4AWS 예약 인스턴스(Reverved Instance) 또는 Azure 예약 VM 인스턴스에 투자

장기적으로 클라우드로 모든 디지털 역량을 집중한 기업은 예약인스턴스에 투자해야 한다. 이것은 선불 및 시간 약정에 따른 더 큰 사용 할인혜택인데, 일반적으로 예약인스턴스 절감률은 최대 75%에 이를 수 있으므로 클라우드 비용 최적화에는 반드시 필요하다. RI는 1년, 3년 정도 구매가 가능하기 때문에 과거 사용량을 분석하고 미래를 제대로 준비하는 것이 중요하다.


5)스팟 인스턴스(Spot Instance)활용

스팟 인스턴스는 예약 인스턴스와는 다르지만 지출 비용을 더 절약할 수 있도록 지원한다. 스팟 인스턴스는 경매를 통해 구매하는데, 가격이 적당한 경우 즉시 사용할 수 있다. 대기업에서 일반적으로 수행되는 일괄 처리 작업 및 신속하게 종료할 수 있는 작업과 같은 특정 컴퓨팅 사례에 가장 적합한데, 스팟 인스턴스는 모든 클라우드 비용 최적화 전략에서 항상 먼저 생각되어야 하는 부분이다.


6멀티 클라우드 대 단일 클라우드

많은 기업이 벤더의 종속을 피하기 위해 의도적으로 멀티 클라우드 솔루션을 모색한다. 이는 가용성과 가동 시간을 증가시키는 효과적인 전략이지만, 이러한 조직은 단일 클라우드 벤더의 잠재적인 볼륨 할인 혜택을 받을 수 없다. 또한 멀티 클라우드 전략을 통해 플랫폼 간 전환, 클라우드 간 네트워크 트래픽 비용 지불, 여러 클라우드에서 직원 교육 등의 추가 비용이 발생한다는 점도 간과해서는 안된다.



3. 마무리

클라우드 환경의 주요 이점은 활용률에 대한 가시성이 향상된다는 것이다. 각 클라우드 서비스는 추적되며 독립적으로 측정할 수 있다. 클라우드 비용을 최적화하기 위해서는 어떤 유형의 리소스를 사용할 수 있는지, 언제 리소스를 배치할 것인지에 대한 전사적 표준을 만드는 것이 가장 중요하다. 대부분의 기술 분야와 마찬가지로, 비용 최적화는 기업문화를 학습하는 반복 과정이다. 즉 아무리 훌륭한 표준을 만든다고 하여도 그것을 잘 지키려는 의지가 없다면 원하는 결과는 절대로 나올 수 없기 때문이다. 핀옵스 파운데이션 (finops.org)이 권장하는 프로세스는 그림 4와 같다. 상황을 알리고, 최적화를 시행해보고, 운영하는 반복 프로세스이다. 어디서 많이 본 그림 같지 않은가? 디자인씽킹이나 애자일프로세스와 매우 흡사한 반복 학습/시도 방법으로 불확실성에 지혜롭게 대처하는 방법이다.

그림 4, 클라우드 비용 최적화 프로세스(출처: 핀옵스 파운데이션)

이러한 프로세스를 통해 빠른 속도로 운영하면서 클라우드의 단위 경제성을 개선할 수 있다. 클라우드 비용최적화의 핵심은 비용을 절약하는 것이 아니라 비용을 올바르게 투자하는 것이다. 충분한 정보를 모으고, 올바른 최적화 작업을 수행한 후, 클라우드가 제공하는 모든 것을 최대한 활용하여 기업의 경쟁력 극대화를 실현하는 것이다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari