가상화ㆍ컨테이너 / 클라우드

“쿠버네티스에 핀옵스 더하기” 오픈코스트 활용한 비용 관리법

Simon Bisson | InfoWorld 2023.05.15
쿠버네티스를 애저의 기반 서비스로 삼기로 한 마이크로소프트의 결정이 마이크로소프트뿐만 아니라 쿠버네티스 생태계 전체적으로 도움이 되고 있다. 마이크로소프트가 자체 프로젝트보다 더 많은 엔지니어와 자금을 쿠버네티스에 투자하면서 업스트림 툴과 기능 개발에 적극 기여하고 있기 때문이다. 이런 투자는 사용자 관점에서 생태계를 개선하는 효과가 있는 것은 물론, 동시에 클라우드 네이티브 애플리케이션을 더 경제적으로 실행할 수 있도록 보장하는 것이기도 하다.
 
ⓒ Getty Image Bank

실제로 쿠버네티스에 대한 마이크로소프트의 투자가 집중된 영역이 바로 비용 관리 툴이다. 기본적으로 쿠버네티스는 오케스트레이터이며 수요에 따라 컴퓨팅 사용을 확장하고 축소한다. 이 과정에서 여러 가지 가상 서버와 비용 청구 방식을 혼용하고 메모리와 네트워킹, 스토리지 수요가 계속 변화하므로, 퍼블릭 클라우드에서는 쿠버네티스 실행 비용을 예측하기가 매우 까다롭다. 애플리케이션에서 한도를 설정할 수 있지만, 결과적으로 이는 비용 절감 측면에서 큰 도움이 안 된다.
 

쿠버네티스에 핀옵스 더하기 

더구나 엔지니어는 일반적으로 비용에 크게 신경을 쓰지 않는다. 대부분 엔지니어가 만들고 실행하는 것에 대한 비용은 다른 누군가가 처리해야 할 문제이기 때문이다. 데브옵스와 데브섹옵스가 등장하기 전까지는 운영과 보안도 마찬가지였다. 이때 클라우드 서비스를 사용하면 애플리케이션 성능 모니터링과 같은 방법으로, 갈수록 중요해지는 핀옵스(FinOps)를 활용해 비용을 모니터링할 수 있다. 새로운 분야인 핀옵스는 코드 실행에 드는 비용에 대한 새로운 시야, 그리고 이러한 비용이 적절한 부서로 청구되도록 하는 새로운 방법을 제공한다. 핀옵스 툴을 사용하면 모든 비용을 IT 운영비 하나로 뭉뚱그리지 않고 코드와 청구서를 직접적으로 연결할 수 있다.  

오픈소스인 오픈코스트(OpenCost) 툴이 이 부분에서 빛을 발한다. 클라우드 네이티브 컴퓨팅 파운데이션(Cloud Native Computing Foundation)이 후원하는 오픈코스트는 쿠버네티스 애플리케이션의 비용을 측정하고 할당하는 툴로, 비용을 적절히 관리하는 데 도움이 되는 여러 기능을 제공한다. 오픈코스트에 기여하는 업체는 뉴 렐릭(New Relic), 그라파나 랩스(Grafana Labs)와 같은 모니터링 업체부터 거대 클라우드 업체인 AWS, 구글 클라우드, 애저에 이르기까지 광범위하다. 마이크로소프트는 애저의 관리형 쿠버네티스 플랫폼인 애저 쿠버네티스 서비스(AKS)에서 오픈코스트를 지원한다. 

오픈코스트를 사용하면 쿠버네티스 설치와 운영을 세부적으로 분석해 가장 큰 비용을 쓰는 컨테이너와 포드, 배포 등을 찾을 수 있다. 이와 같은 실시간 비용 할당을 통해 단순히 성능 위주로 애플리케이션을 튜닝하는 데서 더 나아가 비용을 최적화할 수 있다. 이 방법을 사용하면 비용을 적절히 통제하면서 사용자가 최선의 성능을 얻는 지점을 찾을 수 있다. 제대로 균형을 맞추기 위해서는 얼마간의 시간이 필요하지만 또다른 매력적인 애플리케이션 튜닝 포인트인 것은 분명하다.
 

AKS의 오픈코스트

오픈코스트의 AKS 프로덕션 공식 지원은 2023년 5월부터인데, 기업이 이를 시작하는 데 도움이 되도록 쿠브콘(Kubecon) EU를 위한 특별 빌드가 나왔다. 설치 후 몇 가지 구성이 필요하며 애저를 다루기 위한 적절한 권한을 설정해야 한다. 

오픈코스트는 애저 소비 가격표(Azure Consumption Price Sheet) API를 기준으로 해당 계정의 실시간 비용을 산정한다. 따라서 예약된 인스턴스와 같은 적절한 할인까지 반영한다. 이를 설정하려면 오픈코스트가 청구 계정 ID를 통해 서비스 주체로 청구 세부 정보에 액세스할 수 있는 권한을 제공하는 애저 역할을 계정에 추가하면 된다. 이후 오픈코스트에서 사용할 수 있도록 키와 비밀번호를 저장한다. 설치를 구성하는 데 무엇을 사용했는지에 따라 오픈코스트가 YAML 또는 헬름(Helm)을 통해 이 데이터에 액세스하도록 구성한다. 애저에서 맞춤형 가격을 사용 중인 경우 API를 통해 가격에 액세스하려면 제안 ID(offer ID)가 있어야 한다. 

오픈코스트에는 프로메테우스(Prometheus)로 데이터를 전달하는 유용한 기능이 있다. 이를 통해 쿠버네티스의 신호와 오픈코스트의 가격 데이터를 모두 저장할 수 있는 시계열 데이터베이스를 만들 수 있다. 즉, 재무 정보가 관찰가능성 플랫폼의 일부가 되므로 고비용에 해당하는 조건을 감시할 수 있다. 서비스에 대한 오픈코스트 데이터를 쿼리할 수 있는 kubectl 플러그인도 있으므로 과거 비용을 기반으로 작업을 스크립트로 작성하는 것도 가능하다.
 

비용 데이터를 사용해 쿠버네티스 관리하기 

오픈코스트 API를 통한 실시간 데이터를 사용하면 비용 기반의 자동화된 관리 모델을 구현할 수 있다. 예를 들어 비용이 급증하면 이를 쿠버네티스 오토스케일러인 KEDA에 반영해 해당 클러스터를 축소하는 이벤트로 처리하는 식이다. 애저와 같은 제공업체가 사용자에게 실시간 가격을 알려주는 수단으로 오픈코스트를 사용하기도 한다.

사용자가 돈을 더 써야 이득인 마이크로소프트가 이런 툴을 지원하는 이유는 무엇일까? AWS와 구글 클라우드 역시 오픈코스트 프로젝트의 파트너임을 감안하면 어쩔 수 없는 측면도 있는 것이 사실이다. 어떤 이유로든, “마이크로소프트는 고객이 기술에 지출하는 비용으로부터 더 많은 가치를 얻도록 돕는다”는 CEO 사티아 나델라의 최근 성명과도 부합하는 반가운 변화다. 결과적으로 사용자는 쿠버네티스 비용과 사용량을 적절히 조정해 애저 인프라 사용을 실시간으로 최적화할 수 있다.

마이크로소프트 입장에서는 앞으로 새로운 사용자를 유치하는 기회를 얻는 동시에 자체 자본 지출을 통제할 수 있다. 거대한 클라우드 데이터 센터를 운영하는 데는 큰 비용이 들고 신규 용량을 구축하는 데는 더 많은 비용이 든다. 마이크로소프트와 사용자 모두가 비용을 덜 쓰지는 않더라도 최소한 필요에 맞는 적절한 금액만 지출할 수 있게 해주는 하나의 운영 모델을 갖는 것은 양자에게 최선의 이익이다.

애저에서 오픈코스트를 사용하면 마이크로소프트와 사용자 모두 리소스 사용과 비용에 대한 시야를 확보하고 애저에서 사용량을 확장하는 계획을 더 신중하게 고민할 수 있다. 마이크로소프트가 쿠버네티스에 대한 장기 지원을 약속한 만큼 클라우드 네이티브 개발은 앞으로도 계속될 것이고, 다른 모든 엔터프라이즈 플랫폼과 똑같은 지원을 받게 된다. 더 이상 실험이 아니라 실제 비즈니스에 사용할 수 있는 서비스를 구축하는 것이며, 사용자와 애저 모두에 이익이 되려면 예측 가능한 방식으로 작동해야 한다. 

애저의 쿠버네티스에 있어 미래는 큰 변화가 없을 것이다. 어쩌면 지루할 수도 있지만, 이는 당연하다. 쿠버네티스는 인프라이며, 지루함은 기술 성숙과 기업 시장 확산을 위해 치러야 하는 대가다. 오히려 쿠버네티스의 미래에서 흥미로운 부분은 이 인프라로 무엇을 하고 그 위에 무엇을 구축할 것인지다.
editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.