카산드라 쿼리 언어 (CQL) 를 사용한 Amazon Keyspaces 오토 스케일링 관리 - Amazon Keyspaces(Apache Cassandra용)

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

카산드라 쿼리 언어 (CQL) 를 사용한 Amazon Keyspaces 오토 스케일링 관리

카산드라 쿼리 언어 (CQL) 를 사용하여 Amazon Keyspaces 테이블에 대한 오토 스케일링 설정을 생성하고 관리하려면 다음을 사용할 수 있습니다. cqlsh 이 항목에서는 CQL을 사용하여 프로그래밍 방식으로 관리할 수 있는 Auto Scaling 작업에 대한 개요를 제공합니다.

이 항목에 설명된 CQL 문에 대한 자세한 내용은 을 참조하십시오. Amazon Keyspaces의 DDL 문(데이터 정의 언어)

시작하기 전 준비 사항

시작하기 전에 다음 작업을 수행해야 합니다.

권한 구성

사용자가 Auto Scaling 설정을 생성하고 관리하는 데 적절한 권한을 구성하지 않았다면 이를 수행해야 합니다. AWS Identity and Access Management (IAM) 에서 Amazon Keyspaces 조정 정책을 AWS AmazonKeyspacesFullAccess 관리하려면 관리형 정책이 필요합니다. 자세한 단계는 시작하기 전에: 사용자에게 Amazon Keyspaces Auto Scaling에 대한 권한 부여 단원을 참조하세요.

cqlsh 구성

아직 설치하지 않았다면 설치하고 구성해야 합니다. cqlsh 이렇게 하려면 의 지침을 따르십시오cqlsh-expansion을 사용하여 Amazon Keyspace에 접속. 그런 다음 AWS CloudShell 를 사용하여 다음 섹션의 명령을 실행할 수 있습니다.

CQL을 사용하여 자동 크기 조정이 가능한 새 테이블을 생성합니다.

새 Amazon Keyspaces 테이블을 생성할 때 명령문에서 테이블의 쓰기 또는 읽기 용량에 대해 Auto Scaling을 자동으로 활성화할 수 있습니다. CREATE TABLE 이렇게 하면 Amazon Keyspace가 사용자를 대신하여 Application Auto Scaling에 연락하여 테이블을 확장 가능한 대상으로 등록하고 프로비저닝된 쓰기 또는 읽기 용량을 조정할 수 있습니다.

다중 리전 테이블을 생성하고 테이블 복제본에 대해 다양한 Auto Scaling 설정을 구성하는 방법에 대한 자세한 내용은 을 참조하십시오. 기본 설정 (CQL) 이 포함된 다중 지역 테이블 만들기

참고

Amazon Keyspaces Auto Scaling을 사용하려면 사용자를 대신하여 자동 조정 작업을 수행할 서비스 연결 역할 (AWSServiceRoleForApplicationAutoScaling_CassandraTable) 이 있어야 합니다. 이 역할은 자동으로 생성됩니다. 자세한 설명은 Amazon Keyspaces에 대해 서비스 연결 역할 사용 섹션을 참조하세요.

테이블에 대한 Auto Scaling 설정을 프로그래밍 방식으로 구성하려면 Amazon Keyspaces Auto Scaling의 파라미터가 포함된 AUTOSCALING_SETTINGS 명령문을 사용하십시오. 파라미터는 Amazon Keyspaces가 테이블의 프로비저닝된 처리량을 조정하도록 지시하는 조건과 취해야 할 추가 선택적 조치를 정의합니다. 이 예시에서는 mytable의 자동 스케일링 설정을 정의합니다.

정책에는 다음 요소가 포함됩니다.

  • AUTOSCALING_SETTINGS— Amazon Keyspace가 사용자를 대신하여 처리 용량을 조정할 수 있는지 여부를 지정합니다. 다음 값이 필요합니다.

    • provisioned_write_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • provisioned_read_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • scaling_policy— Amazon Keyspace는 대상 추적 정책을 지원합니다. 대상 추적 정책을 정의하려면 다음 파라미터를 구성합니다.

      • target_value— Amazon Keyspaces Auto Scaling은 프로비저닝된 용량에 대한 소비 용량의 비율이 이 값 또는 그 근방을 유지하도록 보장합니다. target_value를 백분율로 지정합니다.

      • disableScaleIn: (선택 사항) 테이블의 비활성화 또는 활성화 scale-in 여부를 boolean 지정하는 A. 이 매개변수는 기본적으로 비활성화되어 있습니다. scale-in켜려면 boolean 값을 로 설정합니다FALSE. 즉, 사용자 대신 테이블의 용량이 자동으로 축소됩니다.

      • scale_out_cooldown – 스케일 아웃 활동은 테이블의 프로비저닝된 처리량을 늘립니다. 스케일 아웃 활동을 위한 휴지 기간을 추가하려면 scale_out_cooldown에 대한 값(초)을 지정합니다. 값을 지정하지 않는 경우 기본값은 0입니다. 대상 추적 및 휴지 기간에 대한 자세한 내용은 Application Auto Scaling 사용 설명서의 대상 추적 조정 정책을 참조하십시오.

      • scale_in_cooldown – 스케일 인 활동은 테이블의 프로비저닝된 처리량을 줄입니다. 스케일 인 활동을 위한 휴지 기간을 추가하려면 scale_in_cooldown에 대한 값(초)을 지정합니다. 값을 지정하지 않는 경우 기본값은 0입니다. 대상 추적 및 휴지 기간에 대한 자세한 내용은 Application Auto Scaling 사용 설명서의 대상 추적 조정 정책을 참조하십시오.

참고

target_value의 용도를 자세히 이해하기 위해 쓰기 용량 단위 200으로 할당 처리량을 설정한 테이블을 예로 들어 보겠습니다. 이 테이블에 대해 target_value가 70퍼센트인 확장 정책을 만들려고 합니다.

테이블에 대한 쓰기 트래픽을 시작했더니 실제 쓰기 처리량이 150 용량 단위였다고 가정해 보겠습니다. 현재 consumed-to-provisioned 비율은 (150/200), 즉 75% 입니다. 이 비율이 목표를 초과하므로 Auto Scaling은 프로비저닝된 쓰기 용량을 215로 늘려 비율을 (150/ 215), 즉 69.77% 로 늘립니다. 즉, 비율과 최대한 비슷하지만 초과하지는 않습니다. target_value

mytable의 경우 읽기 및 쓰기 용량을 모두 50% 로 TargetValue 설정했습니다. Amazon Keyspaces Auto Scaling은 테이블의 프로비저닝 처리량을 용량 단위 5~10개 범위 내에서 조정하여 consumed-to-provisioned 비율이 50% 또는 그 근방을 유지하도록 합니다. 읽기 용량의 경우 값을 1~60초로 설정합니다. ScaleOutCooldown ScaleInCooldown

다음 명령문을 사용하여 자동 크기 조정이 활성화된 새 Amazon Keyspaces 테이블을 생성할 수 있습니다.

CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck)) WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };

CQL을 사용하여 기존 테이블의 자동 크기 조정을 활성화합니다.

기존 Amazon Keyspaces 테이블의 경우 명령문을 사용하여 테이블의 쓰기 또는 읽기 용량에 대해 Auto Scaling을 활성화할 수 있습니다. ALTER TABLE 현재 온디맨드 용량 모드에 있는 테이블을 업데이트하는 경우 필요한 용량보다 더 capacity_mode 높습니다. 테이블이 이미 프로비저닝된 용량 모드에 있는 경우 이 필드를 생략할 수 있습니다.

참고

Amazon Keyspaces Auto Scaling을 사용하려면 사용자 대신 Auto Scaling 작업을 수행하는 서비스 연결 역할(AWSServiceRoleForApplicationAutoScaling_CassandraTable)이 있어야 합니다. 이 역할은 자동으로 생성됩니다. 자세한 설명은 Amazon Keyspaces에 대해 서비스 연결 역할 사용 섹션을 참조하세요.

다음 예제에서 명령문은 온디맨드 용량 모드에 있는 mytable 테이블을 업데이트합니다. 명령문은 테이블의 용량 모드를 Auto Scaling이 활성화된 프로비저닝 모드로 변경합니다.

쓰기 용량은 5~10개 용량 단위 범위 내에서 구성되며, 목표 값은 50% 입니다. 읽기 용량도 5~10개 용량 단위 범위 내에서 구성되며, 목표값은 50% 입니다. 읽기 용량의 경우 값을 scale_out_cooldown scale_in_cooldown 1~60초로 설정합니다.

ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };

CQL을 사용하여 테이블의 Amazon Keyspaces 자동 스케일링 구성을 확인하십시오.

테이블의 Auto Scaling 구성 세부 정보를 보려면 다음 명령을 사용하십시오.

SELECT * FROM system_schema_mcs.autoscaling WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';

이 명령의 출력은 다음과 같습니다.

keyspace_name | table_name | provisioned_read_capacity_autoscaling_update | provisioned_write_capacity_autoscaling_update ---------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mykeyspace | mytable | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}}

CQL을 사용하여 테이블에 대한 Amazon Keyspaces 자동 스케일링을 비활성화합니다.

언제든지 테이블의 Amazon Keyspaces 자동 크기 조정을 해제할 수 있습니다. 더 이상 테이블의 읽기 또는 쓰기 용량을 확장할 필요가 없는 경우 Amazon Keyspaces가 테이블의 읽기 또는 쓰기 용량 설정을 계속 수정하지 않도록 Auto Scaling을 끄는 것을 고려해야 합니다. 명령문을 사용하여 테이블을 업데이트할 수 있습니다. ALTER TABLE

다음 명령문은 mytable 테이블의 쓰기 용량에 대한 자동 스케일링을 끕니다. 또한 사용자 대신 생성된 CloudWatch 경보도 삭제됩니다.

ALTER TABLE mykeyspace.mytable WITH AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'autoscaling_disabled': true } };
참고

Application Auto Scaling에서 사용하는 서비스 연결 역할을 삭제하려면 계정 내 모든 테이블에서 전체 테이블의 자동 크기 조정을 비활성화해야 합니다. AWS 리전