Elasticsearch Service: 데이터 전송 및 스냅샷 저장 가격 정책
지난 2018년 8월, Elastic에서는 배포 템플릿, 새로운 인스턴스 유형, 핫-웜 아키텍처 지원과 같은 다양한 새로운 기능을 출시하면서 Elasticsearch Service 가격을 대폭 인하한다고 발표했습니다. 이 가격 정책 발표에서 사용량과 지출을 보다 효율적으로 제어할 수 있도록 스냅샷 저장 및 데이터 전송 비용을 구분하여 부과하기 시작할 것이라는 점도 언급했습니다. 프로모션 기간에는 이러한 새로운 요금이 전액 할인되어 월별 청구서에 무료 제공 항목으로 표시됩니다.
데이터 전송 및 스냅샷 저장 비용의 프로모션 기간은 2019년 2월 28일에 종료됩니다. 이 블로그 게시물에서는 이러한 요금에 대해 자세히 설명하고 사용자가 요금을 제어할 수 있는 방법에 대한 몇 가지 팁과 조언을 제공합니다.
스냅샷 저장 가격 정책
스냅샷 저장 비용은 백업 스냅샷을 기본 IaaS 객체 저장소(예: AWS의 S3 또는 Google Cloud의 GCS)에 저장하는 비용과 관련이 있습니다. 이러한 저장 비용은 Elasticsearch 인덱스를 유지하는 디스크 저장 공간에 대한 비용이 아닙니다. 해당 비용은 클러스터(현재는 일반적으로 ‘배포’라고 함) 비용에 이미 포함되어 있습니다.
다른 클라우드 서비스 제공자에서 흔히 볼 수 있는 것처럼 Elastic에서는 다음과 같은 두 가지 차원을 사용하여 스냅샷 저장 비용을 측정하고 청구합니다.
- 저장 공간 크기(GB/월)
- 저장 공간 API 요청(요청 1,000건/월)
저장 공간 크기는 계정에 연결된 모든 배포의 모든 스냅샷이 차지하는 저장 공간(GB)을 측정하여 계산합니다. 모든 리전에 동일한 단가가 적용됩니다. 청구할 요금을 계산하기 위해 시간 단위로 저장 공간의 양을 측정하여 해당 월의 평균 크기(GB)를 산출합니다. 이 평균 크기를 사용하여 결제 주기(역월로 1개월) 내에 사용된 월별 GB 요금을 계정에 청구합니다.
예를 들어 2019년 4월에 10일 동안 100GB의 저장 공간과 나머지 20일 동안 130GB의 저장 공간이 사용되었다면, 평균 저장 공간은 (100*10 + 130*20)/30으로 계산되어 월별 120GB가 됩니다.
저장 공간 API 호출 비용은 계정에 연결된 모든 배포가 수행한 백업 또는 복원 스냅샷 호출의 총수를 세어 계산합니다. 저장 공간 크기와 달리 이 차원은 누적되어 결제 주기 전체에 걸쳐 합산되며, 요청 1,000건당 요금이 청구됩니다.
이 문서 작성 시점(2019년 2월 1일)을 기준으로 이 두 가지 차원에 대한 요금은 다음과 같습니다.
- 저장 공간 크기 – 월별 GB당 $0.033
- 저장 공간 API 요청 – API 호출 1,000건당 $0.0018
모든 계정 배포 전체에 걸쳐 모든 계정에 월별 100GB의 무료 사용량을 제공합니다. 측정된 저장 공간 사용량 중 100GB까지는 비용이 청구되지 않습니다. 월별 100GB의 임계값을 초과하는 경우 월별 100GB의 무료 사용량을 초과하여 사용되는 저장 공간에 대한 요금이 청구됩니다.
또한, 모든 계정 배포 전체에 걸쳐 모든 계정에 매월 API 요청 100,000건의 무료 사용량을 제공합니다. 이 임계값을 초과하는 경우 무료 사용량을 초과하여 사용하는 API 요청에 대해서만 요금이 부과됩니다.
참고: 단일 스냅샷 작업이 단일 API 호출을 의미하지는 않습니다. 서로 다른 파일이 작성, 삭제, 수정되는 등 단일 스냅샷 작업에 연결된 API 호출은 수천 건이 될 수 있습니다. 명시된 가격은 1,000건의 API 호출에 해당합니다. 즉, API 호출 1,000건당 $0.0018 또는 1백만 건당 $1.8입니다.
데이터 전송 가격 정책
데이터 전송 비용은 Elasticsearch 배포에서 송수신되거나 배포 내에서 전송되는 데이터 볼륨(페이로드)에 적용됩니다.
다음과 같은 세 가지 차원을 사용하여 데이터 전송 비용을 측정하고 청구합니다.
- 데이터 수신(무료)
- 데이터 송신
- 배포 내 데이터 전송
데이터 수신은 클러스터로 들어오는 모든 트래픽을 말합니다. 여기에는 데이터 페이로드가 포함된 인덱스 요청과 클러스터로 전송된 쿼리가 포함됩니다(일반적으로 후자의 바이트 크기가 훨씬 작음).
데이터 송신은 클러스터에서 나가는 모든 트래픽을 말합니다. 여기에는 검색 결과뿐만 아니라 클러스터로 전송된 모니터링 데이터도 포함됩니다. 데이터의 목적지가 다른 리전이든, 인터넷이든, 같은 리전이지만 다른 계정이든 관계없이 동일한 요금이 적용됩니다.
배포 내 데이터 전송은 배포 구성 요소 간에 전송된 모든 트래픽을 말합니다. 여기에는 여러 가용 영역에 분산된 클러스터 노드 간 데이터 동기화가 주로 포함되며, 이러한 동기화는 Elasticsearch 클러스터 샤딩에 의해 자동으로 관리됩니다. 또한, 클러스터의 여러 노드에 걸쳐 실행되는 검색 쿼리와 관련된 데이터도 포함됩니다. 단일 노드 Elasticsearch 클러스터에서도 Kibana 노드 또는 다른 노드(기계 학습, APM 등)와 주고받은 데이터에 대해 클러스터 내 데이터 전송 요금이 발생할 수 있습니다. 이러한 경우에는 요금이 더 낮을 것으로 예상됩니다.
데이터 전송 사용량은 저장 공간 API 요청과 유사하게 계산되어 결제 주기 내에 누적된 양이 합산됩니다.
이 문서 작성 시점(2019년 2월 1일)을 기준으로 이 세 가지 차원에 대한 요금은 다음과 같습니다.
- 데이터 수신 – 전송된 GB당 $0. 이 차원은 무료입니다.
- 데이터 송신 – 전송된 GB당 $0.032
- 배포 내 데이터 전송 – 전송된 GB당 $0.016
Elastic에서는 월별 100GB의 무료 사용량을 제공하며, 계정의 모든 배포에 걸쳐 데이터 송신과 배포 내 데이터 전송에 각각 적용됩니다. 이 임계값을 초과하면 월별 100GB의 무료 사용량을 초과하여 사용된 모든 데이터 전송에 대해 요금이 부과됩니다.
FAQ
스냅샷 저장 및 데이터 전송 비용은 어디에서 확인할 수 있나요?
스냅샷 저장 및 데이터 전송의 온디맨드 비용을 쉽게 추적할 수 있도록 Elastic에서는 사용자 콘솔에서 다운로드할 수 있는 청구서에 개별 항목을 추가했습니다. 또한, 다음 청구 금액을 더 정확하게 추정할 수 있도록 사용자 콘솔에 누적 비용에 대한 월간 누계 보기를 추가할 예정입니다.
청구서 예시:
새로운 가격 정책은 언제 어떻게 적용됩니까?
새로운 요금은 2019년 1월 사용 요금에 대한 2019년 2월 1일 자 청구서에 표시됩니다. 그러나 이 요금은 전액 공제될 것입니다. 이 요금을 다음 달 데이터 전송 및 저장 공간 요금에 대한 추정치로 사용하면 됩니다. 동일한 방식으로 2019년 2월 사용 요금에 대한 2019년 3월 1일 자 청구서에서도 이 요금이 공제됩니다. 실제 청구를 위한 측정은 2019년 3월 1일에 시작되어 2019년 4월 1일 자 청구서에 표시됩니다.
스냅샷 저장 비용을 제어하려면 어떻게 해야 하나요?
Elasticsearch에서 스냅샷은 각 스냅샷 이벤트에서 데이터를 증분식으로 저장하는 방식으로 작동합니다. 즉, 실질적인 스냅샷 크기는 현재 인덱스 크기보다 클 수 있습니다. 클러스터에서 더 많은 데이터가 사용되고 데이터가 자주 변경(레코드 추가/삭제/수정)될수록 크기가 더 커집니다. 데이터의 변경 사항을 적용(항상 실용적인 것은 아님)하는 것 이상의 제어가 가능하도록 Elastic Cloud 사용자 콘솔에서 [Snapshot count]라는 스냅샷 하위 메뉴에 고급 파라미터를 추가했습니다. 현재 기본값인 스냅샷 100개(롤오버)를 그대로 유지했지만, 2에서 100 사이의 값으로 변경할 수 있도록 했습니다.
경고: 스냅샷 수를 줄이면 사실상 인덱스 보존 기간이 줄어듭니다. 즉, 최근 복원 지점만 존재하며 빠르게 만료될 수 있습니다.
API 요청의 경우 스냅샷이 생성되거나 복원될 때마다 이러한 작업이 실행됩니다. 일반적으로 복원은 빈번하게 사용되는 옵션은 아니지만, 최신 복원 지점을 유지하기 위해 기본적으로 30분마다 스냅샷을 생성합니다. 최대 24시간까지 변경할 수 있는 스냅샷 간격이라는 새로운 파라미터를 추가했으므로 API 호출 수를 줄일 수 있습니다.
경고: 스냅샷 간격을 줄이면 이전 스냅샷의 복원 작업이 마지막 스냅샷 이후로 변경된 모든 데이터를 반영하지 못하므로 부분적인 데이터 손실이 발생할 수 있습니다.
마지막으로, Elasticsearch API를 사용하여 스냅샷을 생성/복원하는 로직을 구현한 경우 이 프로세스를 다시 검토하여 과도한 비용을 방지하는 것이 좋습니다.
데이터 전송 비용을 제어하려면 어떻게 해야 하나요?
배포에서 데이터 송신 및 클러스터의 노드 간 데이터 전송은 클러스터에서 사용하는 사용 사례의 기능이며 항상 조정할 수 있는 기능이 아니라 제어하기가 더 어렵습니다. 해당하는 경우, 빈번한 간격으로 실행되는 배치 쿼리의 일부 사례를 다시 검토해 볼 수 있습니다.
새로운 가격 정책이 청구서에는 어떤 영향을 미칠까요?
Elasticsearch를 사용하는 다양한 사용 사례를 고려할 때 계정의 정확한 스냅샷 저장 및 데이터 전송 비용을 예측하기는 어렵습니다. 따라서 Elastic에서는 두 번의 ‘유예’ 청구서를 적용하여 청구되는 금액은 보여주면서 실제로는 해당 비용을 공제하는 기간을 두었습니다. 비용을 더 정확하게 예측하고 변경 사항에 대비하는 데 도움이 되시길 바랍니다.
저는 연간 골드/플래티넘 고객입니다. 구독 티어가 청구서에 영향을 미칠까요?
연간 구독형 스탠다드, 골드, 플래티넘 티어 계약을 체결한 기존 고객의 경우 2019년 1월 1일부터 시행되는 새 약관에 따라 계약을 갱신하기 전까지는 추가 비용이 발생하지 않습니다. 모든 신규 연간 고객은 신규 월간 고객과 마찬가지로 새로운 가격 정책에 따라 비용이 청구됩니다.
GCP에 배포한 경우에도 새로운 가격 정책이 적용되나요?
예. 이 블로그 게시물을 작성한 시점을 기준으로 스냅샷 저장 및 데이터 전송 비용은 모든 클라우드 서비스 제공자에게 적용되며 동일한 요금이 적용됩니다.