본문으로 건너뛰기
0%

Alchemy 사용량: 투명성과 단순성 향상

작성자: Alchemy Team

마지막 업데이트: 2021년 1월 11일2분 읽기

배경

저희 가격 정책은 "컴퓨트 유닛(compute units)"이라는 개념을 기반으로 합니다. 이는 여러분의 앱이 Alchemy에서 사용하는 총 컴퓨팅 리소스를 측정하는 단위입니다. AWS 사용량에 대해 Amazon에 비용을 지불하는 방식과 비슷하다고 생각하시면 됩니다. 어떤 쿼리는 가볍고 빠르게 실행되고(예: eth_blockNumber) 어떤 쿼리는 더 무겁습니다(예: 대용량 eth_getLogs 쿼리). 저희는 최대한 낮은 비용을 제공하고자 쿼리 수가 아니라 실제 사용된 컴퓨트 양만을 기준으로 과금합니다.

문제점

컴퓨트가 요청마다 측정되면, 컴퓨트 유닛(그리고 그 결과인 월간 사용량)을 예측하기 어려워질 수 있습니다. 일부 메서드는 강도의 편차가 매우 큽니다(예: eth_call). 이런 메서드가 소비하는 컴퓨트 유닛은 최대 100배까지 차이 날 수 있습니다. 이 때문에 사용량을 최적화하거나 월별 비용을 예측하는 일이 필요 이상으로 복잡해집니다.

저희는 모든 고객이 Alchemy에서의 사용량을 측정하고 예측하는 과정을 단순하고 이해하기 쉽게 만들고자 합니다. 이러한 이유로, 그리고 가능한 한 개발자 친화적인 플랫폼을 만들기 위해, 컴퓨트 유닛을 측정하는 방식을 업데이트하기로 결정했습니다.

컴퓨트 유닛 업데이트

새로운 컴퓨트 유닛 모델에서는 각 메서드에 평균 강도를 기반으로 산출된 고정된 컴퓨트 유닛 수가 할당됩니다. 즉, 특정 호출을 하기 전에 그 호출이 몇 개의 컴퓨트 유닛을 소비할지 정확히 알 수 있게 되어, 예측 가능성과 투명성이 크게 높아집니다.

이 업데이트가 개발자 경험을 어떻게 개선하는지 예를 들어보겠습니다. 어떤 사용자가 10,000건의 trace 요청을 하는 경우를 생각해봅시다.

기존 컴퓨트 유닛 방식에서는 사용자가 10,000건의 trace_call 요청을 하더라도, 요청이 완료되기 전까지는 얼마나 많은 컴퓨트 유닛이 사용되었는지 알 수 없었습니다. 블록, 컨트랙트, 호출 시점에 따라 총 750,000 컴퓨트 유닛이 소비될 수도, 1,000,000 컴퓨트 유닛이 소비될 수도 있습니다. 게다가 다음에 다시 10,000건의 trace_call 요청을 하더라도 결과는 달라질 수 있습니다.

새로운 컴퓨트 유닛 모델을 사용하면, 누군가 10,000건의 trace_call 요청을 하고 호출당 75 CU가 소비된다고 할 때, 총 10,000 × 75 = 750,000 CU가 소비되며, 이는 매번 동일합니다.

추측도, 편차도 없이 공정하고 결정론적인 사용량 측정 방식입니다.

메서드별 CU 할당의 전체 목록은 수년간의 벤치마크 사용 데이터를 바탕으로 산출되었으며, 저희 문서에서 확인하실 수 있습니다.

개선된 속도 제한

현재 저희는 초당 쿼리 수(QPS)를 기본 속도 제한 기준으로 사용하고 있습니다. 이는 API에서 흔히 쓰이는 속도 제한 방식이지만, 상대적으로 정밀하지 못한 방식입니다. 이 때문에 저희는 종종 필요 이상으로 신중하게, 더 엄격한 속도 제한을 적용할 수밖에 없었습니다.

새롭게 정의된 컴퓨트 유닛을 통해, 저희는 QPS를 더 나은 측정 방식인 초당 컴퓨트 유닛(CUPS)으로 대체할 수 있게 되었습니다.

CUPS 속도 제한은 사실상 QPS에 가중치를 적용한 버전으로, 각 메서드의 가중치는 해당 메서드의 컴퓨트 강도입니다. 이 방식은 요청의 편차와 호출되는 메서드의 종류를 고려하기 때문에 더 정확한 제한이 됩니다. 이를 통해 모든 고객에게 더욱 넉넉한(많은 경우 기존보다 더 넉넉한!) 제한을 제공하면서도 훨씬 더 안정적인 전반적인 서비스를 제공할 수 있게 됩니다.

요약

전반적으로, 저희는 이번 변경이 고객분들께 큰 개선이 될 것이라고 생각합니다. 저희는 항상 여러분의 피드백을 진지하게 받아들이며, 모두가 최고의 제품을 만드는 데 집중할 수 있도록 개발자 경험을 최선으로 만들기 위해 노력하고 있습니다.

궁금한 점이나 확인이 필요한 사항이 있으면 언제든지 문의해 주시기 바랍니다. 기꺼이 도와드리겠습니다.

Alchemy 뉴스레터

출시 소식을 가장 먼저 받아보세요

뉴스레터 구독하기

Alchemy의 최신 제품 업데이트와 리소스 받기

A
O
D
+
구독자 80,000명 이상

이메일 주소를 입력하면 마케팅 커뮤니케이션 및 제품 업데이트 수신에 동의하게 됩니다. Alchemy는 저희 개인정보 처리방침에 따라 수집한 정보를 처리합니다. 언제든지 구독을 취소할 수 있습니다.