주요 컨텐츠로 이동
플랫폼

서버레스를 위한 더 스마트한 비용 제어

서버리스 컴퓨팅에 익숙한 비용 제어 기능 도입

작성자: 피유시 싱 , Vijay Raja

  • 서버리스 비용 제어가 이제 인프라 설정을 넘어 워크로드를 실행할 수 있는 사람, 비용이 귀속되는 방식, 지출 가능한 금액까지 관리합니다.
  • 팀은 사용 정책 태그, 청구 시스템 테이블, 액세스 제어 및 예산 알림을 통해 지금 바로 조치를 취할 수 있습니다.
  • 이제 사용 가능한 속도 제한과 (출시 예정인) 공유 예산은 과도한 워크로드를 방지하고 팀 지출을 한도 내로 유지하는 데 도움이 됩니다.

Databricks에서 지난 한 해 동안 서버리스 컴퓨팅 사용량이 3배 이상 증가했으며, 현재 수천 명의 고객이 이를 기반으로 비즈니스 크리티컬한 노트북, 작업(job), 파이프라인을 실행하고 있습니다. 채택이 늘어날수록 모든 플랫폼 팀이 가장 먼저 던지는 질문은 더욱 간절해지고 있습니다. 바로 서버리스 비용에 대한 가시성을 높이고 예산 범위 내에서 비용을 관리할 수 있는 방법입니다.

서버리스 SQL 및 Model Serving을 실행하는 Databricks 고객은 단일 클러스터 설정을 건드리지 않고도 이미 지출을 귀속하고, 액세스를 제어하며, 사용량을 모니터링하고 있습니다. 이제 당사는 노트북, 작업, 파이프라인을 위한 서버리스 컴퓨팅에도 동일한 기능을 제공합니다. 플랫폼 팀이 이미 기대하는 방식으로 서버리스 비용 제어가 작동하도록 만들고 있습니다.

서버리스를 통한 한 단계 진화한 비용 제어

클래식 컴퓨팅에서는 비용 제어가 인프라 내에서 이루어졌습니다. 노드 수, 인스턴스 유형, 자동 확장(autoscaling) 범위, 사용자가 프로비저닝할 수 있는 범위를 제한하는 클러스터 정책 등 머신을 제한하여 지출을 억제했습니다. 이러한 제어가 필요했던 이유는 인프라를 직접 관리해야 했기 때문입니다.

서버리스는 의도적으로 이러한 설정 기능들을 없애버렸습니다. 인프라 프로비저닝, 확장, 적정 규모 산정은 이제 Databricks가 처리하는 플랫폼의 몫이며, 이는 가치의 큰 부분을 차지합니다. 하지만 비용 제어는 어딘가에 존재해야 하므로 한 계층 위로 이동합니다. 머신에 연결되는 대신 사람과 워크로드에 연결됩니다. 누가 서버리스 실행을 허용받는지, 워크로드가 얼마나 빠르게 지출할 수 있는지, 비용이 어디로 귀속되는지가 이제 중요한 질문입니다.

플랫폼 팀은 다음과 같이 세 가지 요구 사항을 설명합니다.

  • 예상치 못한 지출: 제한하는 클러스터 크기나 자동 확장(autoscaling) 상한선이 없기 때문에 제한 없는 단일 노트북 실행으로 하루 만에 수천 달러를 지출할 수 있습니다.
  • 잘못된 사용자: 서버리스는 실행 권한을 제어할 수 없는 권한 부여 없이 프로비저닝해서는 안 되는 사용자를 포함하여 기본적으로 모든 사용자에게 제공됩니다.
  • 책임성 부재: 팀은 클래식 컴퓨팅에서 사용했던 태그 적용 없이는 서버리스를 도입하지 않을 것입니다.

클래식 컴퓨팅은 비용 귀속을 위한 태그, 액세스 제어를 위한 권한 부여, 지출 상한선을 위한 클러스터 크기 제한이라는 세 가지 도구로 이러한 문제를 해결했습니다. 서버리스에도 이와 동일한 세 가지가 필요합니다. 그중 두 가지는 이미 존재하며, 세 번째 기능이 곧 출시될 예정입니다.

서버리스 비용 제어의 세 가지 목표

  1. 비용 귀속: 서버리스 DBU가 속한 팀, 프로젝트 또는 사용자를 파악합니다.
  2. 액세스 제어: 서버리스를 처음 실행할 수 있는 사람과 실행할 수 있는 대상을 결정합니다.
  3. 지출 제한: 사후가 아닌 사전에 워크로드나 팀이 지출할 수 있는 금액과 속도를 제한합니다.

image1.png

이러한 각 항목에 대해 순서대로 자세히 알아보겠습니다.

비용 귀속

귀속은 태그에서 시작됩니다. 클래식 컴퓨팅에서는 클러스터에 태그를 지정했지만, 서버리스에서는 컴퓨팅에 태그를 지정하며 해당 컴퓨팅이 실행하는 모든 DBU는 청구서까지 해당 태그를 유지합니다.

  • 서버리스 컴퓨팅 태그: 서버리스 컴퓨팅 개체에 한 번 태그를 지정하면 그 위에서 실행되는 워크로드가 유지 관리할 별도의 정책 개체 없이 적절한 팀, 프로젝트 또는 비용 센터에 귀속됩니다.
  • 시스템 테이블: 모든 서버리스 DBU는 사용자별, 제품별, 태그별로 분류되어 system.billing.usage에 저장됩니다. 리더십 수준의 "팀별 비용" 뷰는 단일 쿼리이며, 계정 콘솔 비용 대시보드를 통해 SQL을 전혀 작성하지 않고도 이를 렌더링할 수 있습니다.

image2.png

동일한 테이블을 사용하여 누군가의 액세스 권한을 변경하기 전에 확인해야 하는 감사 질문에 답할 수 있습니다. 현재 실제로 서버리스를 실행하고 있는 사람은 누구이며 얼마나 지출하고 있습니까? 이는 사용량별로 순위가 매겨진 또 다른 쿼리이며, 전체 예제는 시스템 테이블 설명서에서 확인할 수 있습니다.

가용성: 귀속을 위한 서버리스 컴퓨팅 태그는 현재 베타 버전으로 제공됩니다.

관측 가능성은 이미 제공되고 있으며 고객은 AWS, Azure 및 Google Cloud의 시스템 테이블을 사용하여 서버리스 비용을 모니터링할 수 있습니다.

지출 추적: 예산, 알림, 대시보드

비용을 귀속하는 동일한 시스템 테이블을 사용하여 비용을 추적할 수도 있습니다. 계정 콘솔 예산 기능은 서버리스 지출이 임계값을 초과할 때 이메일 알림을 생성하며, 비용 관리 대시보드를 통해 제품, 워크스페이스, 태그별로 사용량을 추적할 수 있습니다. 전날의 서버리스 지출에 대한 SQL 알림은 몇 시간 내에 피드백 루프를 완료합니다.

하지만 모니터링은 사후 대응형입니다. 예방하는 대신 다음 날 아침에 비용이 많이 든 날을 보고합니다. 이러한 공백이 다음 두 가지 목표가 존재하는 이유입니다.

가용성: 모니터링은 현재 정식 버전으로 제공됩니다. AWS, Azure 및 Google Cloud에서 예산 및 지출 알림을 설정하세요.

액세스 제어

첫 번째 사전 예방적 제어는 서버리스를 실행할 수 있는 사용자를 결정하는 것입니다. 이 권한 부여는 사용자가 클러스터를 생성하거나 SQL 웨어하우스에 연결할 수 있는 사용자를 기존 권한이 제어하는 것처럼, 어떤 사용유저나 그룹이 서버리스에 액세스할 수 있는지 정의합니다. 서버리스 컴퓨팅 액세스 제어가 이제 정식 버전으로 제공되며, 모든 워크로드에 볼트로 고정된 정책이 아닌 컴퓨팅 개체에 대한 권한을 사용하여 해당 모델로 서버리스를 거버닝할 수 있습니다.

image4.png

서버리스 컴퓨팅 개체는 서버리스의 권한 경계입니다. 모든 워크스페이스에는 기본적으로 두 개가 제공됩니다.

  • 기본 서버리스 대화형 컴퓨팅(Default Serverless Interactive Compute): 노트북 및 Databricks Connect.
  • 기본 서버리스 자동화 컴퓨팅(Default Serverless Automated Compute): 작업(job) 및 Spark Declarative Pipelines.

이러한 개체에 대한 권한은 웨어하우스에서 이미 익숙한 두 가지 권한인 사용 가능(Can Use) 및 관리 가능(Can Manage)입니다. SQL 웨어하우스에 연결할 수 있는 사용자를 파악할 수 있다면 서버리스를 실행할 수 있는 사용자도 파악할 수 있습니다.

이 모델은 기본적으로 안전합니다. 모든 사용자는 사용 가능(Can Use) 권한으로 시작하므로, 관리자가 조치를 취할 때까지 기능을 켜도 아무것도 변경되지 않습니다. 관리자가 조치를 취할 때의 흐름은 예상되는 바와 같습니다. 컴퓨팅 페이지를 열고 서버리스 탭으로 이동하여 기본 컴퓨팅 개체를 열고 "모든 사용자(All Users)"를 제거한 후 특정 그룹을 추가합니다. 해당 그룹 외부에 있는 사용자는 이제 노트북 컴퓨팅 선택기에서 서버리스가 회색으로 비활성화된 것으로 확인되며, 이미 실행 중이던 작업은 중단되지 않습니다.

image5.png

가용성: 현재 정식 버전으로 제공됩니다. AWS, Azure 및 Google Cloud 문서를 참조하세요.

지출 한도 설정

액세스 제어는 워크로드가 실행될 수 있는지 여부를 결정할 뿐, 실행된 후 얼마나 지출할 수 있는지는 결정하지 않습니다. 이 간격을 좁히는 것이 세 번째 작업인 요율 제한(Rate Limits)이며, 방금 살펴본 동일한 컴퓨팅 개체에 적용됩니다.

  • 자동화된 워크로드에 대한 요율 제한: 티셔츠 크기(S, M, L, XL)로 표현되는 컴퓨팅별 제한으로, 단순히 실행 가능 여부뿐만 아니라 작업이나 파이프라인이 지출할 수 있는 금액이나 속도를 제한합니다. 관리자는 사용자 지정 컴퓨팅 개체를 생성하여 팀별로 공유하고 각 팀에 자체 제한을 부여할 수 있습니다. 이는 서버리스로 이식된 클래식 클러스터 정책 패턴입니다.
  • 대화형용 공유 예산(출시 예정): 많은 "중간(Medium)" 세션이 여전히 누적되기 때문에 세션당 상한선만으로는 팀의 예산을 보호할 수 없습니다. 당사의 방향성은 그룹에 대한 공유 제한을 설정하고, 그 아래의 안전장치로 세션당 최댓값을 설정하는 것입니다.

비용 귀속도 동시에 개선됩니다. 새로운 serverless_compute_id(이)가 system.billing.usage에서 컴퓨팅 객체별 사용 비용을 귀속시키므로 "컴퓨팅 객체별 비용" 계산이 "팀별 비용" 계산만큼이나 쉬워집니다.

DBSQL 티셔츠 크기에 익숙하신 분들을 위한 참고 사항으로, 노트북과 작업의 경우 해당 크기는 고정된 클러스터 크기가 아니라 최대 자동 크기 조절 상한선을 의미합니다. Medium만 필요한 작업에 XL을 선택하더라도 Medium이 할당됩니다.

사용 가능 여부: 이제 베타 버전에서 속도 제한을 사용할 수 있습니다. Databricks 미리 보기 설정에서 속도 제한을 활성화하세요. 자세한 내용은 다음 문서에서 확인하세요: AWS, Azure, Google Cloud.

전체 그림

세 가지 작업을 다시 결합합니다:

  • 비용 귀속: 서버리스 컴퓨팅의 기본 태그와 시스템 테이블의 serverless_compute_id, 예산 및 대시보드에서 사용 가능합니다.
  • 접근 제어: 서버리스 컴퓨팅 객체에 대한 권한 부여입니다.
  • 지출 제한: 그룹 간에 공유되고 워크로드별로 제한되는 속도 제한입니다.

지금 시작하기

오늘부터 서버리스 비용 제어를 구현할 수 있습니다. 시작하는 방법은 다음과 같습니다:

  1. 태그 적용 켜기: 다른 무엇보다 먼저 비용 귀속이 이루어지도록 서버리스 컴퓨팅에 태그를 지정하세요.
  2. 모니터링 구축: system.billing.usage의 비용 대시보드와 서버리스 지출에 대한 예산 알림을 추가합니다.
  3. 현재 서버리스 실행 사용자 감사: 액세스를 변경하기 전에 영향 범위를 파악할 수 있습니다.
  4. 접근 정책 결정: 누가 서버리스 대화형을 실행할 수 있어야 하며, 누가 자동화를 실행해야 하는지 결정하세요.
  5. 서버리스 컴퓨팅 접근 제어 켜기: 선택한 그룹을 위해 빠르고 완전하게 관리되는 컴퓨팅을 활성화합니다.

서버리스 컴퓨팅 접근 제어는 이제 정식 출시되었습니다. 오늘 비용 귀속 및 모니터링에 대해 더 자세히 알아보려면 시스템 테이블(AWS | Azure| GCP) 및 서버리스 태그 지정(AWS | Azure | GCP) 문서를 참고하여 시작하세요.

자세히 알아보기:

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

최신 게시물을 이메일로 받아보세요

블로그를 구독하고 최신 게시물을 이메일로 받아보세요.