Amazon Keyspaces의 읽기/쓰기 용량 모드 - Amazon Keyspaces(Apache Cassandra용)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Keyspaces의 읽기/쓰기 용량 모드

Amazon Keyspaces에는 테이블에서 읽기 및 쓰기 처리를 위한 두 가지 읽기/쓰기 용량 모드가 있습니다.

  • 온디맨드(기본값)

  • 프로비저닝됨

선택하는 읽기/쓰기 용량 모드는 읽기 및 쓰기 처리량에 대한 청구 방식과 테이블 처리량 용량 관리 방식을 제어합니다.

온디맨드 용량 모드

Amazon Keyspaces(Apache Cassandra용) 온디맨드 용량 모드는 용량 계획 없이 초당 수천 개의 요청을 처리할 수 있는 유연한 청구 옵션입니다. 이 옵션은 읽기 및 쓰기 요청에 대한 pay-per-request 요금을 제공하므로 사용한 만큼만 비용을 지불하면 됩니다.

온디맨드 모드를 선택하면 Amazon Keyspaces는 테이블의 처리량 용량을 이전에 도달한 트래픽 수준까지 즉시 확장하고 애플리케이션 트래픽이 감소할 때 다시 축소할 수 있습니다. 워크로드의 트래픽 수준이 새로운 피크를 기록할 경우에는 서비스가 신속하게 조정을 수행하여 테이블의 처리량 용량을 증가시킵니다. 새 테이블과 기존 테이블 모두에 대해 온디맨드 용량 모드를 활성화할 수 있습니다.

온디맨드 모드는 다음 중 하나에 해당되는 경우에 유용한 옵션입니다.

  • 알 수 없는 워크로드를 포함하는 테이블을 새로 만들 경우

  • 애플리케이션 트래픽이 예측 불가능한 경우

  • 사용한 만큼에 대해서만 지불하는 요금제를 사용하려는 경우

온디맨드 모드를 시작하려면 콘솔을 사용하거나 몇 줄의 Cassandra 쿼리 언어(CQL) 코드를 사용하여 온디맨드 용량 모드를 사용하도록 새 테이블을 만들거나 기존 테이블을 업데이트하면 됩니다. 자세한 정보는 을 참조하세요.

읽기 요청 단위 및 쓰기 요청 단위

온디맨드 용량 모드 테이블을 사용하면 애플리케이션에서 미리 사용할 것으로 예상되는 읽기 및 쓰기 처리량을 지정할 필요가 없습니다. Amazon Keyspaces에서는 읽기 요청 단위(RRU) 및 쓰기 요청 단위(WRU)의 측면에서 테이블에서 수행하는 읽기 및 쓰기에 대해 요금이 부과됩니다.

  • RRU 1은 최대 4KB 크기의 행에 대한 LOCAL_QUORUM 읽기 요청 1회 또는 LOCAL_ONE 읽기 요청 2회를 나타냅니다. 4KB보다 큰 행을 읽어야 하는 경우 읽기 작업에 추가 RRU가 사용됩니다. 필요한 총 RRU 수는 행 크기, LOCAL_QUORUM 또는 LOCAL_ONE 읽기 일관성을 사용하려는지 여부에 따라 다릅니다. 예를 들어 8KB 행을 읽으려면 LOCAL_QUORUM 읽기 일관성을 사용하는 2RRU가 필요하고 LOCAL_ONE 읽기 일관성을 선택한 경우 1RRU가 필요합니다.

  • WRU 1은 최대 1KB 크기의 행에 대한 1회의 쓰기를 나타냅니다. 모든 쓰기는 LOCAL_QUORUM 일관성을 사용하며 간단한 트랜잭션(LWT) 사용에 대한 추가 비용은 없습니다. 1KB보다 큰 행을 써야 하는 경우 쓰기 작업에 추가 WRU가 사용됩니다. 필요한 WRU의 총 수는 행 크기에 따라 달라집니다. 예를 들어 행 크기가 2KB인 경우 쓰기 요청 하나를 수행하려면 2WRU가 필요합니다.

지원되는 일관성 수준에 대한 자세한 내용은 Amazon Keyspaces에서 지원되는 Apache Cassandra 일관성 수준 섹션을 참조하세요.

피크 트래픽 및 크기 조정 속성

온디맨드 용량 모드를 사용하는 Amazon Keyspaces 테이블은 애플리케이션의 트래픽 볼륨에 따라 자동으로 조정됩니다. 온디맨드 용량 모드의 테이블은 이전 피크 트래픽의 최대 2배 용량을 즉시 수용합니다. 예를 들어 애플리케이션의 트래픽 패턴은 초당 5,000~10,000회 LOCAL_QUORUM 읽기 사이에서 다양할 수 있으며 이때 초당 10,000회 읽기가 이전 트래픽 피크입니다.

이 패턴을 사용하면 온디맨드 용량 모드는 초당 최대 20,000회 읽기의 지속적인 트래픽을 즉시 수용할 수 있습니다. 애플리케이션이 초당 20,000회 읽기 트래픽을 지속하는 경우 해당 피크가 새로운 이전 피크가 되어 후속 트래픽은 초당 최대 40,000회 읽기에 도달할 수 있습니다.

테이블에서 이전 피크의 2배 이상이 필요한 경우 Amazon Keyspaces가 트래픽 볼륨이 증가함에 따라 자동으로 추가 용량을 할당합니다. 이렇게 하면 테이블에 추가 요청을 처리하기에 충분한 처리량 용량을 확보할 수 있습니다. 하지만 30분 이내에 이전 피크의 두 배를 초과하면 처리량 용량 부족 오류가 발생할 수 있습니다.

예를 들어 애플리케이션의 트래픽 패턴이 초당 5,000~10,000회의 강력히 일관된 읽기 사이에서 다양하다고 가정합니다. 이때 초당 20,000회 읽기는 이전에 도달한 트래픽 피크입니다. 이 경우 서비스에서는 초당 최대 40,000회의 읽기 횟수를 늘리기 전에 최소 30분 이상 트래픽 증가 간격을 두는 것이 좋습니다.

테이블의 읽기 및 쓰기 용량 사용량을 추정하는 방법을 알아보려면 을 참조하십시오Amazon Keyspace의 용량 사용량을 추정하는 방법.

계정의 기본 할당량 및 할당량을 높이는 방법에 대한 자세한 내용은 Amazon Keyspaces(Apache Cassandra용)에 대한 할당량 섹션을 참조하세요.

온디맨드 용량 모드의 초기 처리량

온디맨드 용량 모드가 활성화된 새 테이블을 생성하거나 처음으로 기존 테이블을 온디맨드 용량 모드로 전환하는 경우 이전에 온디맨드 용량 모드를 사용하여 트래픽을 처리하지 않았더라도 테이블의 이전 피크 설정은 다음과 같습니다.

  • 온디맨드 용량 모드로 새로 만든 테이블: 이전 피크는 2,000WRU와 6,000RRU였습니다. 이전 피크의 최대 두 배까지 즉시 늘릴 수 있습니다. 이렇게 하면 새로 생성된 온디맨드 테이블에서 최대 4,000WRU와 12,000RRU를 처리할 수 있습니다.

  • 온디맨드 용량 모드로 전환된 기존 테이블: 이전 피크는 테이블에 대해 프로비저닝된 이전 WCU 및 RCU의 절반이거나 온디맨드 용량 모드를 통해 새로 생성된 테이블의 설정 중 더 높은 값입니다.

프로비저닝된 처리량 용량 모드

프로비저닝된 처리량 용량 모드를 선택하는 경우 애플리케이션에 필요한 초당 읽기 및 쓰기 횟수를 지정합니다. 이를 통해 Amazon Keyspaces 사용이 정의된 요청 속도 이하로 유지되도록 관리하여 가격을 최적화하고 예측 가능성을 유지할 수 있습니다. 프로비저닝된 처리량을 위한 자동 크기 조정에 대한 자세한 내용은 Amazon Keyspaces 자동 크기 조정을 통해 처리 용량을 자동으로 관리합니다. 섹션을 참조하세요.

프로비저닝된 처리량 용량 모드는 다음 중 하나에 해당되는 경우에 유용한 옵션입니다.

  • 애플리케이션 트래픽이 예측 가능한 경우

  • 트래픽이 일관되거나 점진적으로 변화하는 애플리케이션을 실행할 경우

  • 용량 요구 사항을 예측하여 가격을 최적화할 수 있습니다.

읽기 용량 단위 및 쓰기 용량 단위

프로비저닝된 처리량 용량 모드 테이블의 경우 읽기 용량 단위(RCU) 및 쓰기 용량 단위(WCU)의 측면에서 처리량을 지정합니다.

  • RCU 1은 최대 4KB 크기의 행에 대해 초당 LOCAL_QUORUM 읽기 1회 또는 초당 LOCAL_ONE 읽기 2회를 나타냅니다. 4KB보다 큰 행을 읽어야 하는 경우 읽기 작업에 추가 RCU가 사용됩니다.

    필요한 총 RCU 수는 행 크기, LOCAL_QUORUM 또는 LOCAL_ONE 읽기를 원하는지 여부에 따라 다릅니다. 예를 들어 행 크기가 8KB인 경우 초당 LOCAL_QUORUM 읽기 1회를 유지하려면 2RCU개가 필요하고, LOCAL_ONE 읽기를 선택하면 1RCU가 필요합니다.

  • WCU 1은 최대 1KB 크기의 행에 대한 초당 1회의 쓰기를 나타냅니다. 모든 쓰기는 LOCAL_QUORUM 일관성을 사용하며 간단한 트랜잭션(LWT) 사용에 대한 추가 비용은 없습니다. 1KB보다 큰 행을 써야 하는 경우 쓰기 작업에 추가 WCU가 사용됩니다.

    필요한 WCU의 총 수는 행 크기에 따라 달라집니다. 예를 들어 행 크기가 2KB인 경우 초당 쓰기 요청 하나를 유지하려면 2WCU가 필요합니다. 테이블의 읽기 및 쓰기 용량 사용량을 추정하는 방법에 대한 자세한 내용은 을 참조하십시오Amazon Keyspace의 용량 사용량을 추정하는 방법.

애플리케이션이 더 큰 행(1MB의 Amazon Keyspaces 최대 행 크기까지)을 읽거나 쓸 경우 더 많은 용량 단위를 사용합니다. 행 크기를 추정하는 방법에 대한 자세한 내용은 Amazon Keyspaces에서의 행 크기 계산 섹션을 참조하세요. 예를 들어 6RCU 및 6WCU로 프로비저닝된 테이블을 생성한다고 가정하겠습니다. 이렇게 설정하면 애플리케이션에서 다음을 수행할 수 있습니다.

  • 초당 최대 24KB의 LOCAL_QUORUM 읽기 수행(4KB × 6RCU)

  • 초당 최대 48KB의 LOCAL_ONE 읽기 수행(읽기 처리량의 2배)

  • 초당 최대 6KB 쓰기(1KB × 6WCU)

프로비저닝된 처리량은 애플리케이션이 테이블에서 사용할 수 있는 최대 처리량 용량의 양입니다. 애플리케이션이 프로비저닝된 처리량 용량을 초과하는 경우 용량 부족 오류가 발생할 수 있습니다.

예를 들어 처리량 용량이 충분하지 않은 읽기 요청은 Read_Timeout 예외와 함께 실패하고 ReadThrottleEvents 지표에 게시됩니다. 처리량 용량이 충분하지 않은 쓰기 요청은 Write_Timeout 예외와 함께 실패하고 WriteThrottleEvents 지표에 게시됩니다.

CloudWatch Amazon을 사용하여 프로비저닝된 처리량 지표와 실제 처리량 지표와 용량 부족 이벤트를 모니터링할 수 있습니다. 이러한 지표에 대한 자세한 내용은 Amazon Keyspaces 지표 및 차원 섹션을 참조하세요.

참고

용량 부족으로 오류가 반복되면 클라이언트 측 드라이버별 예외가 발생할 수 있습니다. 예를 들어 DataStax Java 드라이버가 a와 함께 실패합니다. NoHostAvailableException

테이블의 처리량 용량 설정을 변경하려면 CQL을 사용한 AWS Management Console 또는 ALTER TABLE 문을 사용할 수 있습니다. 자세한 내용은 ALTER TABLE 섹션을 참조하세요.

계정의 기본 할당량 및 할당량을 높이는 방법에 대한 자세한 내용은 Amazon Keyspaces(Apache Cassandra용)에 대한 할당량 섹션을 참조하세요.

용량 모드 관리 및 보기

Amazon Keyspaces 시스템 키스페이스에서 시스템 테이블을 쿼리하여 테이블에 대한 용량 모드 정보를 검토할 수 있습니다. 또한 테이블이 온디맨드 또는 프로비저닝된 처리량 용량 모드를 사용하는지 확인할 수 있습니다. 테이블이 프로비저닝된 처리량 용량 모드로 구성된 경우 테이블에 대한 프로비저닝된 처리량 용량을 확인할 수 있습니다.

SELECT * from system_schema_mcs.tables where keyspace_name = 'mykeyspace' and table_name = 'mytable';

온디맨드 용량 모드로 구성된 테이블은 다음을 반환합니다.

{ 'capacity_mode': { 'last_update_to_pay_per_request_timestamp': '1579551547603', 'throughput_mode': 'PAY_PER_REQUEST' } }

온디맨드 처리량 용량 모드로 구성된 테이블은 다음을 반환합니다.

{ 'capacity_mode': { 'last_update_to_pay_per_request_timestamp': '1579048006000', 'read_capacity_units': '5000', 'throughput_mode': 'PROVISIONED', 'write_capacity_units': '6000' } }

last_update_to_pay_per_request_timestamp 값은 밀리초 단위로 측정됩니다.

테이블의 프로비저닝된 처리량 용량을 변경하려면 ALTER TABLE를 사용합니다.

용량 모드 변경 시 고려 사항

테이블을 프로비저닝된 용량 모드에서 온디맨드 용량 모드로 전환할 경우 Amazon Keyspaces에서 테이블 및 파티션의 구조가 다양하게 변경됩니다. 이 프로세스는 몇 분 정도 걸릴 수 있습니다. 전환 기간 동안 테이블은 이전에 프로비저닝된 WCU 및 RCU 양과 일치하는 처리량을 제공합니다.

온디맨드 용량 모드에서 프로비저닝된 용량 모드로 다시 전환할 경우 테이블이 온디맨드 용량 모드로 설정되었을 때 도달한 이전 피크와 일치하는 처리량을 제공합니다.

참고

24시간마다 두 번 읽기/쓰기 용량 모드를 전환할 수 있습니다.