원문 미리보기
Piqama: 핀터레
핀터레스트는 빅데이터 플랫폼과 온라인 서비스 전반에서 발생하는 다양한 자원 임계치를 효율적으로 관리하기 위해 통합 쿼타 관리 에코시스템인 'Piqama'를 구축했습니다. Piqama는 CPU, 메모리 같은 물리적 자원부터 QPS, 네트워크 대역폭 등 서비스 지표에 이르기까지 광범위한 리소스의 생명주기를 관리하며, 실시간 쿼타 전파와 사용량 예측을 통한 최적화 기능을 제공합니다. 이를 통해 조직 내 리소스 활용도를 극대화하는 동시에 시스템의 안정성과 가용성을 동시에 확보하고 있습니다.
통합 쿼타 관리 아키텍처 및 포털
- Piqama는 다양한 플랫폼과 시나리오를 수용할 수 있는 범용 플랫폼으로 설계되어, 서비스별로 고유한 강제 로직을 사용하거나 Piqama의 기본 메커니즘을 선택하여 적용할 수 있습니다.
- REST 및 Thrift API를 지원하는 중앙 집중식 관리 포털을 통해 사용자가 쿼타 설정을 시각화하고 검색할 수 있어 운영상의 실수를 최소화합니다.
- 전체 시스템 아키텍처는 관리 포털, 실시간 업데이트 디스패처, 그리고 오프라인 거버넌스 및 최적화 도구들로 구성되어 유기적으로 동작합니다.
쿼타 생명주기 관리
- 스키마 및 검증: 워크로드 간의 계층적 관계를 포함한 쿼타 스키마를 정의하며, 플러그형 프레임워크를 통해 할당량이 전체 클러스터 용량을 초과하지 않도록 보수적인 검증을 수행합니다.
- 업데이트 승인 및 배포: 소유권 기반의 권한 모델을 통해 안전하게 쿼타를 수정하며, 핀터레스트의 설정 배포 시스템(PinConf) 등을 활용해 변경된 쿼타 값을 지연 시간 없이 각 클라이언트 시스템에 방송합니다.
- 강제 적용 전략: 리소스 사용량이 할당량을 초과할 경우, 데이터 경로에서 즉각적으로 요청을 차단하거나 서비스의 중요도에 따라 차등적인 제재를 가하는 기능을 제공합니다.
거버넌스 및 자동 최적화(Auto-rightsizing)
- 데이터 피드백 루프: Piqama 클라이언트는 실제 사용량 및 강제 적용 통계를 투명하게 수집하며, 이 데이터는 분석을 위해 Amazon S3의 Apache Iceberg 포맷으로 저장 및 사전 집계됩니다.
- 예측 기반 조정: 수집된 통계를 바탕으로 과거 사용 패턴, 유기적 성장, 트래픽 급증 사례를 분석하여 리소스 부족을 방지하고 활용되지 않는 자원을 회수하는 자동 권장 규모 설정 서비스를 운영합니다.
- 비용 관리 연계: 자원 사용량을 실제 비용으로 환산하는 차지백(Chargeback) 시스템을 통해, 예산 범위를 초과한 프로젝트의 자원 우선순위를 자동으로 낮추는 등의 비용 통제 기능을 수행합니다.
실제 적용 사례: 용량 기반 및 속도 제한 쿼타
- 빅데이터 플랫폼(Moka): Apache Yunikorn 스케줄러와 연동하여 각 프로젝트별로 최소 보장 자원(Guaranteed)과 최대 자원(Maximum)을 동적으로 할당하며, 배치 작업의 병렬 실행 수를 제어합니다.
- 온라인 저장 서비스: 실시간 서비스의 안정성을 위해 QPS 및 대역폭 기반의 속도 제한(Rate-limiting) 쿼타를 적용하여 특정 서비스의 폭주가 전체 시스템에 영향을 주지 않도록 관리합니다.
성공적인 쿼타 관리를 위해서는 단순히 상한선을 설정하는 것에 그치지 않고, 실제 사용량 데이터를 기반으로 한 자동화된 우측 최적화(Right-sizing)와 비즈니스 예산을 연계한 거버넌스 체계를 구축하는 것이 중요합니다. Piqama와 같은 통합 에코시스템은 대규모 인프라 운영 환경에서 자원 낭비를 줄이고 운영 효율을 획기적으로 높이는 핵심 도구가 됩니다.