Amazon Redshift Serverless에 대한 청구 - Amazon Redshift

Amazon Redshift Serverless에 대한 청구

요금

요금에 대한 자세한 내용은 Amazon Redshift 요금을 참조하세요.

컴퓨팅 용량에 대한 결제

기본 용량 및 결제에 미치는 영향

쿼리가 실행되면 지정된 기간 동안 사용된 용량에 따라 초 단위 RPU 시간으로 요금이 청구됩니다. 실행 중인 쿼리가 없으면 컴퓨팅 용량에 대한 요금이 청구되지 않습니다. 또한 저장된 데이터 양에 따라 Redshift 관리형 스토리지(RMS)에 요금이 청구됩니다.

작업 그룹을 만들 때 컴퓨팅의 기본 용량을 설정할 수 있는 옵션이 있습니다. 작업 그룹 수준에서 워크로드의 가격/성능 요구 사항을 충족하려면 기존 작업 그룹의 기본 용량을 더 높이거나 낮게 조정하세요. 작업 그룹 구성에서 작업 그룹을 선택하고 제한 탭을 선택하여 콘솔을 사용하여 기본 용량을 변경합니다.

쿼리 수가 증가하면 Amazon Redshift Serverless가 일관된 성능을 제공하기 위해 자동으로 확장합니다.

최대 RPU 시간 사용량 한도

Amazon Redshift Serverless에 대한 비용을 예측 가능한 상태로 유지하도록, 일별, 주별 또는 월별 사용량인 최대 RPU 시간(Maximum RPU hours)을 설정할 수 있습니다. 콘솔 또는 API를 사용하여 설정할 수 있습니다. 한도에 도달하면 로그 항목이 시스템 테이블에 기록되도록 지정하거나 알림을 받거나 사용자 쿼리를 끌 수 있습니다. 최대 RPU 시간을 설정하면 비용을 제어하는 데 도움이 됩니다. 최대 RPU 시간 설정은 데이터 웨어하우스의 데이터에 액세스하는 쿼리와 외부 데이터(예: Amazon S3의 외부 테이블)에 액세스하는 쿼리를 실행할 때 모두 작업 그룹에 적용됩니다.

다음은 그 예제입니다.

매주 100시간으로 한도를 설정한다고 가정해 보겠습니다. 콘솔에서 설정하려면 다음을 수행합니다.

  1. 작업 그룹을 선택한 다음 한도 탭에서 사용량 한도 관리를 선택합니다.

  2. 사용량 한도를 추가하고 빈도는 주별, 기간은 100시간을 선택한 다음 사용자 쿼리 끄기로 동작을 설정합니다.

이 예시에서는 일주일에 100RPU 시간 한도에 도달하면 쿼리가 꺼집니다.

작업 그룹의 최대 RPU 시간을 설정해도 작업 그룹의 성능이나 컴퓨팅 리소스가 제한되지는 않습니다. 쿼리 처리에 영향을 주지 않고 언제든지 설정을 조정할 수 있습니다. 최대 RPU 시간은 가격 및 성능 요구 사항을 충족하는 데 도움이 되도록 설정하는 것이 목표입니다. 서버리스 결제에 대한 자세한 내용은 Amazon Redshift 요금을 참조하세요.

Amazon Redshift Serverless의 비용을 예측 가능한 상태로 유지하는 또 다른 방법은 AWS Cost Anomaly Detection을 사용하여 예상치 못하게 비용이 청구될 가능성을 줄이고 더 높은 제어력을 확보하는 것입니다.

참고

Amazon Redshift 요금 계산기는 가격을 추정하는 데 유용합니다. 필요한 컴퓨팅 리소스를 입력하면 비용을 미리 볼 수 있습니다.

최대 용량을 설정하여 컴퓨팅 리소스 비용 통제

최대 용량 설정은 Amazon Redshift Serverless가 스케일 업할 수 있는 RPU 상한 역할을 합니다. 컴퓨팅 리소스 비용을 통제하는 데 도움이 됩니다. 기본 용량이 사용 가능한 컴퓨팅 리소스의 최소량을 설정하는 것과 유사하게 최대 용량은 RPU 사용량의 상한을 설정합니다. 이렇게 하면 계획에 맞게 지출하는 데 도움이 됩니다. 최대 용량은 구체적으로 각 작업 그룹에 적용되며 이로 인해 항상 컴퓨팅 사용량이 제한됩니다.

최대 용량과 RPU 시간 사용량 한도의 차이

최대 RPU 시간 한도와 최대 용량 설정의 목적은 모두 비용을 통제하는 것입니다. 하지만 두 설정은 서로 다른 방법을 통해 비용 통제를 수행합니다. 차이점은 다음과 같습니다.

  • 최대 용량 - 이 설정은 Amazon Redshift Serverless가 크기 조정 목적으로 사용하는 최대 RPU 수를 설정합니다. 자동 컴퓨팅 크기 조정이 필요한 경우 최대 용량 값을 높이면 쿼리 처리량을 높일 수 있습니다. 최대 용량 한도에 도달하면 작업 그룹은 리소스를 더 이상 스케일 업하지 않습니다.

  • 최대 RPU 시간 사용량 한도 - 최대 용량과 달리 이 설정은 용량 상한을 설정하지 않습니다. 하지만 비용을 제한하는 데 도움이 되는 다른 작업을 수행합니다. 여기에는 로그에 항목 추가, 알림, 원하는 경우 쿼리 실행 중지 등이 포함됩니다.

최대 용량을 배타적으로 사용할 수도 있고, 최대 RPU 시간 사용량 한도에 따른 조치로 보완할 수도 있습니다.

최대 용량 사용 사례

작업 그룹마다 최대 용량을 다르게 설정할 수 있습니다. 이는 예산 요구 사항을 적용하는 데 도움이 됩니다. 작동 방식을 설명하기 위해 다음과 같은 상황을 가정하겠습니다.

  • 기본 용량이 256RPU로 설정된 작업 그룹이 있습니다. 매월 대부분 256RPU를 약간 넘는 안정적인 워크로드를 유지합니다.

  • 최대 용량은 512RPU로 설정되어 있습니다.

임시 통계 보고서를 작성하기 위해 3일 동안 사용량이 예상치 못하게 많아졌다고 가정해 보겠습니다. 이 경우 컴퓨팅 비용이 512RPU에 대한 비용을 초과하지 않도록 최대 용량이 설정되어 있습니다. 이렇게 하면 컴퓨팅 용량이 이 상한을 초과하지 않도록 할 수 있습니다.

최대 용량에 대한 사용 참고 사항

다음 참고 사항은 최대 용량을 적절하게 설정하는 데 도움이 될 수 있습니다.

  • Amazon Redshift Serverless 작업 그룹마다 최대 용량을 다르게 설정할 수 있습니다.

  • 일정 기간 동안 리소스를 매우 많이 사용하고 최대 용량을 낮은 RPU 수준으로 설정하면 워크로드 처리가 지연되어 사용자 경험이 최적화되지 않을 수 있습니다.

  • 최대 용량 설정을 구성하더라도 RPU 사용량이 많은 시간에도 쿼리 실행에 방해가 되지 않습니다. 쿼리 실행이 중단될 수 있는 사용량 한도와는 작동 방식이 다릅니다. 이 설정은 작업 그룹에서 사용할 수 있는 컴퓨팅 리소스만 제한합니다. Amazon Redshift Serverless 대시보드에서 일정 기간 동안 사용된 용량을 볼 수 있습니다. 요약 데이터를 보는 방법에 대한 자세한 내용은 대시보드에서 Amazon Redshift Serverless 요약 데이터 확인을 참조하세요.

  • 최대 용량 설정은 5632RPU입니다.

최대 용량 설정 방법

콘솔에서 최대 용량을 설정할 수 있습니다. 기존 작업 그룹의 경우 작업 그룹 구성에서 설정을 변경할 수 있습니다. CLI에서 다음 샘플과 같은 명령을 사용하여 설정할 수도 있습니다.

aws redshift-serverless update-workgroup --workgroup-name myworkgroup --max-capacity 512

이렇게 하면 주어진 이름의 작업 그룹에 최대 용량이 설정됩니다. 설정 후 콘솔에서 값을 확인하여 확인할 수 있습니다. CLI를 사용하여 get-workgroup 명령을 실행하여 값을 확인할 수도 있습니다.

다음과 같이 최대 용량 설정을 -1로 설정하여 설정을 끌 수 있습니다.

aws redshift-serverless update-workgroup --workgroup-name myworkgroup --max-capacity -1

Amazon Redshift Serverless 사용량 및 비용 모니터링

Amazon Redshift Serverless의 사용량 및 결제를 예측할 수 있는 방법에는 여러 가지가 있습니다. 시스템 뷰는 쿼리 및 사용 데이터를 포함한 시스템 메타데이터가 적시에 이루어지며 사용자가 이를 쿼리하기 위해 따로 설정하지 않아도 되므로 유용할 수 있습니다. CloudWatch도 Amazon Redshift Serverless 인스턴스의 사용량을 모니터링하는 데 유용할 수 있으며 인사이트를 제공하고 작업을 설정할 수 있는 추가 기능을 제공합니다.

시스템 뷰를 쿼리하여 사용량 시각화

SYS_SERVERLESS_USAGE 시스템 테이블을 쿼리하여 사용량을 추적하고 쿼리 요금을 가져옵니다.

select trunc(start_time) "Day", (sum(charged_seconds)/3600::double precision) * <Price for 1 RPU> as cost_incurred from sys_serverless_usage group by 1 order by 1

이 쿼리는 사용량을 기준으로 Amazon Redshift Serverless에 대해 발생하는 일일 비용을 제공합니다.

사용량 및 비용 결정을 위한 사용 참고 사항
  • 실행하는 워크로드에 대해 초 단위의 RPU 시간 당 비용이 결제되며, 최소 요금 단위는 60초입니다.

  • sys_serverless_usage 시스템 테이블의 레코드는 1분 간격으로 발생한 비용을 보여줍니다. 다음 열을 이해하는 것이 중요합니다.

    charged_seconds 열:

    • 시간 간격 동안 청구된 계산 단위(RPU) 초를 제공합니다. 결과에는 Amazon Redshift Serverless의 최소 요금이 포함됩니다.

    • 트랜잭션 완료 후 컴퓨팅 리소스 사용에 대한 정보가 있습니다. 따라서 트랜잭션이 완료되지 않은 경우 이 열 값은 0이 될 수 있습니다.

    compute_seconds 열:

    • 실시간 컴퓨팅 사용 정보를 제공합니다. 여기에는 Amazon Redshift Serverless의 최소 요금이 포함되지 않습니다. 따라서 간격 동안 청구되는 청구된 초와 어느 정도 다를 수 있습니다.

    • 트랜잭션이 종료되지 않은 경우에도 각 트랜잭션 동안 사용 정보를 표시하므로 제공되는 데이터는 실시간입니다.

  • compute_seconds가 0이지만 charged_seconds가 0보다 크거나 그 반대의 경우가 있습니다. 이는 데이터가 시스템 뷰에 기록되는 방식에 따른 정상적인 동작입니다. 서버리스 사용량 세부 정보를 보다 정확하게 표시하려면 SYS_SERVERLESS_USAGE에서 데이터를 집계하는 것이 좋습니다.

쿼리 모니터링에 대한 자세한 내용은 Amazon Redshift Serverless로 쿼리 및 워크로드 모니터링을 참조하세요.

CloudWatch로 사용량 시각화

CloudWatch에서 사용할 수 있는 지표를 사용하여 사용량을 추적할 수 있습니다. CloudWatch용으로 생성된 지표는 현재 시간(분)에 사용된 총 RPU(초)를 나타내는 ComputeSeconds 및 해당 시간(분)의 총 컴퓨팅 용량을 나타내는 ComputeCapacity입니다. 사용량 지표는 Redshift Serverless 대시보드의 Redshift 콘솔에서도 찾을 수 있습니다. CloudWatch에 대한 자세한 내용은 Amazon CloudWatch란 무엇인가요?를 참조하세요.

스토리지에 대한 결제

기본 스토리지 용량은 Redshift 관리형 스토리지(RMS)로 결제됩니다. 스토리지는 GB/월별로 결제됩니다. 스토리지 결제는 컴퓨팅 용량에 대한 결제와 별개입니다. 사용자 스냅샷에 사용되는 스토리지는 사용량 티어에 따라 표준 백업 결제 요금으로 결제됩니다.

데이터 전송 비용 및 기계 학습(ML) 비용은 프로비저닝된 클러스터와 마찬가지로 별도로 적용됩니다. AWS 리전 간 스냅샷 복제 및 데이터 공유는 요금 페이지에 설명된 전송 요금으로 결제됩니다. 자세한 내용은 Amazon Redshift 요금을 참조하세요.

CloudWatch로 결제 사용량 시각화

스냅샷 스토리지 사용량을 추적하는 지표 SnapshotStorage가 생성되어 CloudWatch로 전송됩니다. CloudWatch에 대한 자세한 내용은 Amazon CloudWatch란 무엇인가요?를 참조하세요.

Amazon Redshift Serverless 무료 평가판 사용

Amazon Redshift Serverless는 무료 평가판을 제공합니다. 무료 평가판을 이용하는 경우 Redshift 콘솔에서 무료 평가판 크레딧 잔액을 확인하고 SYS_SERVERLESS_USAGE 시스템 보기에서 무료 평가판 사용량을 확인할 수 있습니다. 무료 평가판 사용에 대한 청구 세부 정보는 빌링 콘솔에 표시되지 않으므로 유의하십시오. 무료 평가판 사용이 종료된 후에만 빌링 콘솔에서 사용량을 볼 수 있습니다. Amazon Redshift Serverless 무료 평가판에 대한 자세한 내용은 Amazon Redshift Serverless 무료 평가판을 참조하세요.

결제 사용량 메모

  • 사용량 기록 - 쿼리 또는 트랜잭션은 트랜잭션이 완료, 롤백 또는 중지된 후에만 측정되고 기록됩니다. 예를 들어 트랜잭션이 2일 동안 실행되는 경우 RPU 사용량은 해당 트랜잭션이 완료된 후 기록됩니다. sys_serverless_usage를 쿼리하여 진행 중인 사용을 실시간으로 모니터링할 수 있습니다. 트랜잭션 기록은 RPU 사용량 변동 사항으로 반영되고 특정 시간 및 일일 사용 비용에 영향을 줄 수 있습니다.

  • 명시적 트랜잭션 작성 - 가장 좋은 것은 트랜잭션을 끝내는 것입니다. 오픈 트랜잭션을 종료하거나 롤백하지 않으면 Amazon Redshift Serverless에서 계속해서 RPU를 사용합니다. 예를 들어 명시적 BEGIN TRAN을 작성하는 경우 해당 COMMITROLLBACK 문이 반드시 있어야 합니다.

  • 취소된 쿼리 - 쿼리를 실행하고 완료되기 전에 취소해도 쿼리가 실행된 시간에 대해선 결제해야 합니다.

  • 확장 - Amazon Redshift Serverless 인스턴스는 일관된 성능을 유지하기 위해 부하가 높은 기간을 처리하도록 확장을 시작할 수 있습니다. Amazon Redshift Serverless 결제에는 기본 컴퓨팅 용량과 확장된 용량 모두가 동일한 RPU 요금으로 포함됩니다.

  • 축소 - Amazon Redshift Serverless는 기본 RPU 용량에서 확장하여 부하가 높은 기간을 처리합니다. 경우에 따라 쿼리 로드가 감소한 후에도 일정 기간 동안 RPU 용량이 높아진 설정으로 유지될 수 있습니다. 예상치 못한 비용을 방지하기 위해 콘솔에서 최대 RPU 시간을 설정하는 것이 좋습니다.

  • 시스템 테이블 - 시스템 테이블을 쿼리할 때 쿼리 시간에 대해 결제해야 합니다.

  • Redshift Spectrum - Amazon Redshift Serverless가 있고 쿼리를 실행하는 경우 데이터 레이크 쿼리에 대해 별도의 요금이 부과되지 않습니다. Amazon S3에 저장된 데이터를 쿼리하는 경우 트랜잭션 시간별 요금은 로컬 데이터에 대한 쿼리와 동일합니다.

  • 연합 쿼리 - 연합 쿼리는 데이터 웨어하우스 또는 데이터 레이크의 쿼리와 동일한 방식으로 특정 시간 간격 동안 사용된 RPU 수를 기준으로 요금이 부과됩니다.

  • 스토리지 - 스토리지의 경우 GB/월별로 별도로 결제해야 합니다.

  • 최소 요금 - 리소스 사용의 최소 요금은 60초이며, 요금은 초 단위로 측정됩니다.

  • 스냅샷 결제 - 스냅샷 결제는 변경되지 않습니다. 스토리지에 따라 요금이 부과되며 GB/월 요금으로 결제해야 합니다. 데이터 웨어하우스를 지난 24시간 내 특정 시점으로 30분 단위로 무료 복원할 수 있습니다. 자세한 내용은 Amazon Redshift 요금을 참조하세요.

결제를 예측 가능하게 유지하기 위한 Amazon Redshift Serverless 모범 사례

다음은 결제의 일관성을 유지하는 데 도움이 되는 모범 사례 및 기본 제공 설정입니다.

  • 각 트랜잭션을 종료해야 합니다. BEGIN을 사용하여 트랜잭션을 시작하는 경우 END를 사용하는 것도 중요합니다.

  • 오류 처리에 대한 모범 사례를 활용하여 오류에 적절하게 대응하고 각 트랜잭션을 종료할 수 있습니다. 진행 중인 트랜잭션을 최소화하면 불필요한 RPU 사용을 방지할 수 있습니다.

  • SESSION TIMEOUT은 진행 중인 트랜잭션과 유휴 세션을 종료하여 이에 도움이 됩니다. 이로 인해 3,600초(1시간) 이상 유휴 또는 비활성 상태로 유지된 세션이 시간 초과됩니다. 이로 인해 21,600초(6시간) 이상 진행 중이고 비활성 상태로 유지된 모든 트랜잭션이 시간 초과됩니다. 이 시간 초과 설정은 장기 실행 쿼리를 위해 세션을 열어 두려는 경우 등을 위해 필요할 때 특정 사용자에 대해 명시적으로 변경할 수 있습니다. CREATE USER 주제에서는 사용자의 SESSION TIMEOUT을 조정하는 방법을 보여줍니다.

    • 대부분의 경우 특별히 필요한 사용 사례가 없는 한 SESSION TIMEOUT 값을 연장하지 않는 것이 좋습니다. 진행 중인 트랜잭션이 있는 채로 세션이 유휴 상태로 유지될 경우 세션이 닫힐 때까지 RPU가 사용될 수 있습니다. 이로 인해 불필요한 비용이 발생합니다.

    • Amazon Redshift Serverless의 최대 쿼리 실행 시간은 86,399초(24시간)입니다. 개방형 트랜잭션의 최대 비활성 기간은 Amazon Redshift Serverless가 트랜잭션과 연결된 세션을 종료하기 전 6시간입니다. 자세한 내용은 Amazon Redshift Serverless 객체 할당량 섹션을 참조하세요.