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

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

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

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

  • 온디맨드 (기본값)

  • 프로비저닝됨

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

온디맨드 용량 모드

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

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

온디맨드 모드는 다음 중 하나가 true일 경우 좋은 옵션입니다.

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

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

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

온디맨드 모드를 시작하려면 콘솔이나 Cassandra 쿼리 언어 (CQL) 코드 몇 줄을 사용하여 새 테이블을 만들거나 기존 테이블을 업데이트하여 온디맨드 용량 모드를 사용할 수 있습니다. 자세한 내용은 테이블을 참조하세요.

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

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

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

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

지원되는 일관성 수준에 대한 자세한 내용은 단원을 참조하십시오Amazon 키스페이스에서 지원되는 아파치 카산드라 일관성 수준.

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

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

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

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

예를 들어 애플리케이션의 트래픽 패턴이 매우 일관된 초당 읽기 수가 5,000~10,000개 사이라고 가정해 보겠습니다. 여기서 초당 20,000회 읽기는 이전에 도달한 트래픽 피크에 도달한 수치입니다. 이 경우 서비스에서는 초당 최대 40,000개의 읽기를 실행하기 전에 트래픽 증가를 최소 30분 이상 간격을 두는 것이 좋습니다.

계정의 기본 할당량과 할당량을 높이는 방법에 대해 자세히 알아보려면 단원을 참조하십시오Amazon Keyspaces (Apache Cassandra용) 에 대한 할당량.

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

온디맨드 용량 모드가 활성화된 상태로 새 테이블을 만들거나 기존 테이블을 온디맨드 용량 모드로 처음으로 전환하면 이전에 온디맨드 용량 모드를 사용하여 트래픽을 처리하지 않았더라도 테이블은 다음과 같은 이전 피크 설정을 갖게 됩니다.

  • 온디맨드 용량 모드로 새로 생성된 테이블: 이전 최고점은 2,000개의 WRU와 6,000개의 RRU입니다. 이전 피크의 최대 두 배까지 즉시 주행할 수 있습니다. 이렇게 하면 새로 생성된 온디맨드 테이블에서 최대 4,000회 WRU 및 12,000회 RRU를 제공할 수 있습니다.

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

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

프로비저닝된 처리 용량 모드를 선택하는 경우 애플리케이션에 필요한 초당 읽기 및 쓰기 횟수를 지정합니다. 이를 통해 Amazon Keyspaces 사용을 관리하여 정의된 요청 속도 이하로 유지하여 가격을 최적화하고 예측 가능성을 유지할 수 있습니다. 프로비저닝된 처리량의 자동 조정에 대해 자세히 알아보려면 을 참조하십시오Application Auto Scaling으로 Amazon Keyspaces 처리 용량.

다음 중 하나에 해당하는 경우 프로비저닝된 처리량 용량 모드를 사용하는 것이 좋습니다.

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

  • 트래픽이 일정하거나 점진적으로 증가하는 애플리케이션을 실행합니다.

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

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

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

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

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

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

    필요한 총 WCU 수는 행 크기에 따라 달라집니다. 예를 들어 행 크기가 2KB인 경우 초당 하나의 쓰기 요청을 처리하려면 2개의 WCU가 필요합니다.

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

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

  • 초당 최대 48KB (읽기 처리량의 두 배) 의LOCAL_ONE 읽기를 수행합니다.

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

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

예를 들어, 처리 용량이 충분하지 않은 읽기 요청은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 Keyspace에서 테이블과 파티션의 구조를 몇 가지 변경합니다. 이 프로세스는 몇 분 정도 걸릴 수 있습니다. 전환 기간 동안 테이블은 이전에 프로비저닝된 WCU 및 RCU 양과 동일한 처리량을 제공합니다.

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

참고

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