

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

# Amazon Keyspaces 오토 스케일링으로 처리량 용량 자동 관리
<a name="autoscaling"></a>

대부분의 데이터베이스 워크로드는 원래 주기적으로 반복되거나 미리 예측하기가 어렵습니다. 낮 시간 동안에는 대부분의 사용자가 활성 상태인 소셜 네트워킹 앱을 예로 들어 보겠습니다. 이러한 데이터베이스에서는 주간 활동을 처리할 수 있어야 하지만, 밤에는 동일한 수준의 처리량이 필요 없습니다.

빠른 속도로 도입 중인 새로운 모바일 게임 앱을 또 다른 예로 들 수 있습니다. 이 게임의 인기가 높아지면 사용 가능한 데이터베이스 리소스 양을 초과하여 성능이 느려지고 고객 불만이 발생할 것입니다. 이러한 종류의 워크로드는 대개 사용량 변화에 따라 수동 개입을 통해 데이터베이스 리소스의 규모를 늘리거나 줄여야 합니다.

Amazon Keyspaces(Apache Cassandra용)는 실제 애플리케이션 트래픽에 따라 처리량 용량을 자동으로 조정하여 가변 워크로드에 대한 처리량 용량을 효율적으로 프로비저닝할 수 있도록 지원합니다. Amazon Keyspaces는 Application Auto Scaling 서비스를 사용하여 자동으로 테이블의 읽기 및 쓰기 용량을 늘리거나 줄입니다. Application Auto Scaling에 대한 자세한 내용은 [Application Auto Scaling 사용 설명서](https://docs.aws.amazon.com/autoscaling/application/userguide/)를 참조하세요.

**참고**  
Amazon Keyspaces Auto Scaling의 사용을 신속하게 시작하려면 [Amazon Keyspaces 오토 스케일링 정책 구성 및 업데이트](autoscaling.configure.md) 섹션을 참조하세요.

## Amazon Keyspaces Auto Scaling 작동 방식
<a name="autoscaling.HowItWorks"></a>

아래 그림에는 Amazon Keyspaces Auto Scaling이 테이블의 처리량 용량을 관리하는 방법이 간단히 소개되어 있습니다.

![\[사용자가 Amazon Keyspaces 테이블을 변경할 때 관련된 다양한 서비스를 보여주는 다이어그램입니다. 이 서비스는 사용자의 읽기 또는 쓰기 사용량에 따라 용량을 변경하기 위해 ALTER TABLE 문을 실행하는 Amazon CloudWatch, Amazon SNS, 애플리케이션 오토 스케일링입니다.\]](http://docs.aws.amazon.com/ko_kr/keyspaces/latest/devguide/images/keyspaces_auto-scaling.png)




테이블에 대해 Auto Scaling을 활성화하기 위해 *규모 조정* 정책을 만듭니다. 이 규모 조정 정책을 통해 읽기 용량이나 쓰기 용량(또는 둘 다)을 조정할 것인지 여부와 테이블에 대해 할당된 용량 단위의 최댓값 및 최솟값 설정을 지정할 수 있습니다.

규모 조정 정책은 *목표 사용률*도 정의합니다. 목표 사용률이란 특정 시점에 프로비저닝된 용량 단위에 대한 소비된 용량 단위의 비율을 백분율로 나타낸 값입니다. Auto Scaling은 *목표 추적* 알고리즘을 사용하여 실제 워크로드에 따라 테이블의 프로비저닝된 처리량을 확대 또는 축소합니다. 이렇게 하면 실제 용량 사용률을 목표 사용률과 비슷하게 유지할 수 있습니다.

 읽기 및 쓰기 용량에 대해 20%와 90% 사이에서 Auto Scaling 목표 사용률 값을 설정할 수 있습니다. 기본 목표 사용률은 70% 입니다. 트래픽이 빠르게 변하고 용량을 더 빨리 스케일 업하려는 경우 목표 사용률을 낮게 설정할 수 있습니다. 애플리케이션 트래픽이 더 느리게 변하고 처리량 비용을 줄이려는 경우 목표 사용률을 더 높게 설정할 수도 있습니다.

규모 조정 정책에 대한 자세한 내용은 [애플리케이션 오토 스케일링 사용 설명서](https://docs.aws.amazon.com/autoscaling/application/userguide/)**의 [애플리케이션 오토 스케일링을 위한 타겟 추적 규모 조정 정책](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)을 참조하세요.

확장 정책을 만들면 Amazon Keyspaces가 사용자를 대신하여 두 쌍의 Amazon CloudWatch 알람을 생성합니다. 각 쌍은 프로비저닝되고 사용된 처리량 설정의 상한값과 하한값을 나타냅니다. 테이블의 실제 사용률이 일정한 시간 동안 목표 사용률을 벗어나면 이러한 CloudWatch 경보가 트리거됩니다. Amazon CloudWatch에 대한 자세한 내용은 [Amazon CloudWatch 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)를 참조하세요.

CloudWatch 경보 중 하나가 트리거되면 Amazon Simple Notification Service(SNS)에서 알림을 보냅니다(알림을 활성화한 경우). CloudWatch 경보를 받으면 크기 조정 정책을 평가하기 위해 Application Auto Scaling이 간접적으로 호출됩니다. 그러면 Amazon Keyspaces에 Alt Table 요청이 전송되어 테이블의 프로비저닝된 용량을 적절히 확장하거나 축소합니다. Amazon SNS 알림에 대한 자세한 내용은 [Amazon SNS 알림 설정](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)을 참조하세요.

Amazon Keyspaces는 테이블의 프로비저닝된 처리량 용량이 목표 사용률에 근접하도록 동적으로 확장하거나 축소함으로써 Alter Table 요청을 처리합니다.

**참고**  
Amazon Keyspaces 오토 스케일링은 실제 워크로드가 일정 시간(분) 동안 높게(또는 낮게) 유지되는 경우에 한해 프로비저닝된 처리량 설정을 수정합니다. 의 목표 추적 알고리즘은 목표 사용률을 장기적으로 사용자가 선택한 값 안팎으로 유지되도록 합니다. 짧은 기간 동안 갑자기 급증하는 활동은 테이블에 기본 제공되는 버스트 용량으로 처리합니다.

## 다중 리전 테이블에 대한 오토 스케일링 작동 방식
<a name="autoscaling.multi-region"></a>

프로비저닝된 용량 모드에서 모든 다중 리전 테이블 AWS 리전 의 모든 테이블 복제본에 대해 항상 충분한 읽기 및 쓰기 용량이 있도록 Amazon Keyspaces Auto Scaling을 구성하는 것이 좋습니다.

오토 스케일링과 함께 프로비저닝된 모드에서 다중 리전 테이블을 사용하는 경우 단일 테이블 복제본에 대한 오토 스케일링을 비활성화할 수 없습니다. 그러나 여러 리전에 대해 테이블의 읽기 오토 스케일링 설정을 조정할 수 있습니다. 예를 들어 테이블이 복제되는 각 리전에 대해 서로 다른 읽기 용량과 읽기 오토 스케일링 설정을 지정할 수 있습니다.

지정된 리전에서 테이블 복제본에 대해 구성하는 읽기 오토 스케일링 설정은 테이블의 일반 오토 스케일링 설정을 덮어씁니다. 하지만 쓰기 용량은 모든 테이블 복제본에서 동기화된 상태로 유지하여 모든 리전에서 쓰기를 복제할 수 있는 충분한 용량이 있는지 확인해야 합니다.

Amazon Keyspaces 오토 스케일링은 해당 리전의 사용량에 따라 각 AWS 리전 기반 테이블의 프로비저닝된 용량을 독립적으로 업데이트합니다. 따라서 오토 스케일링이 활성화되면 다중 리전 테이블의 각 리전에 프로비저닝된 용량이 다를 수 있습니다.

Amazon Keyspaces 콘솔 AWS CLI, API 또는 CQL을 사용하여 다중 리전 테이블 및 해당 복제본의 Auto Scaling 설정을 구성할 수 있습니다. 다중 리전 테이블에 대한 오토 스케일링 설정을 생성 및 업데이트하는 방법에 대한 자세한 내용은 [Amazon Keyspaces에서 다중 리전 테이블에 대한 프로비저닝된 용량 및 오토 스케일링 설정 업데이트](tables-mrr-autoscaling.md) 섹션을 참조하세요.

**참고**  
다중 리전 테이블에 오토 스케일링을 사용하는 경우 항상 Amazon Keyspaces API 작업을 사용하여 오토 스케일링 설정을 구성해야 합니다. Application Auto Scaling API 작업을 직접 사용하여 Auto Scaling 설정을 구성하는 경우 다중 리전 테이블 AWS 리전 의를 지정할 수 없습니다. 이로 인해 지원되지 않는 구성이 발생할 수 있습니다.

## 사용 노트
<a name="autoscaling.UsageNotes"></a>

Amazon Keyspaces Auto Scaling을 사용하려면 먼저 다음 내용을 이해해야 합니다.
+ 중동(UAE) 리전에서는 Amazon Keyspaces Auto Scaling을 사용할 수 없습니다.
+ Amazon Keyspaces Auto Scaling은 Auto Scaling 정책에 따라 필요한 만큼 자주 읽기 용량이나 쓰기 용량을 늘릴 수 있습니다. 모든 Amazon Keyspaces 할당량은 [Amazon Keyspaces(Apache Cassandra용)에 대한 할당량](quotas.md)에서 설명한 것처럼 효력이 유지됩니다.
+ Amazon Keyspaces Auto Scaling은 프로비저닝된 처리량 설정을 사용자가 수동으로 수정하는 것도 허용합니다. 이러한 수동 조정은 규모 조정과 관련된 기존의 CloudWatch 경보에는 영향을 주지 않습니다.
+ 콘솔을 사용하여 프로비저닝된 처리량 용량이 있는 테이블을 생성하는 경우 Amazon Keyspaces Auto Scaling이 기본적으로 활성화됩니다. 언제든지 Auto Scaling 설정을 변경할 수 있습니다. 자세한 내용은 [테이블에 대한 Amazon Keyspaces 오토 스케일링 끄기](autoscaling.turnoff.md) 단원을 참조하십시오.
+  CloudFormation 를 사용하여 조정 정책을 생성하는 경우 스택이 스택 템플릿과 동기화 CloudFormation 되도록에서 조정 정책을 관리해야 합니다. Amazon Keyspaces에서 조정 정책을 변경하면 CloudFormation 스택이 재설정될 때 스택 템플릿의 원래 값으로 덮어씁니다.
+ CloudTrail을 사용하여 Amazon Keyspaces Auto Scaling을 모니터링하는 경우, 구성 검증 프로세스의 일부로 Application Auto Scaling에서 이루어진 호출에 대한 알림이 표시될 수 있습니다. 이러한 알림을 필터링하려면 이러한 유효성 검사를 위한 `application-autoscaling.amazonaws.com`을 포함하는 `invokedBy` 필드를 사용합니다.

# Amazon Keyspaces 오토 스케일링 정책 구성 및 업데이트
<a name="autoscaling.configure"></a>

콘솔, CQL 또는 AWS Command Line Interface (AWS CLI)를 사용하여 신규 및 기존 테이블에 대한 Amazon Keyspaces 자동 조정을 구성할 수 있습니다. 오토 스케일링 설정을 수정하거나 오토 스케일링을 비활성화할 수 있습니다.

 스케일 인 및 스케일 아웃 휴지 시간 설정과 같은 고급 기능의 경우 CQL 또는 AWS CLI 를 사용하여 Amazon Keyspaces 조정 정책을 관리하는 것이 좋습니다.

**Topics**
+ [Amazon Keyspaces 오토 스케일링에 대한 권한 구성](autoscaling.permissions.md)
+ [오토 스케일링을 사용하여 새 테이블 만들기](autoscaling.createTable.md)
+ [기존 테이블에서 오토 스케일링 구성](autoscaling.configureTable.md)
+ [테이블의 Amazon Keyspaces 오토 스케일링 구성 보기](autoscaling.viewPolicy.md)
+ [테이블에 대한 Amazon Keyspaces 오토 스케일링 끄기](autoscaling.turnoff.md)
+ [Amazon CloudWatch에서 Amazon Keyspaces 테이블에 대한 오토 스케일링 활동 보기](autoscaling.activity.md)

# Amazon Keyspaces 오토 스케일링에 대한 권한 구성
<a name="autoscaling.permissions"></a>

시작하려면 위탁자에게 오토 스케일링 설정을 생성하고 관리할 수 있는 적절한 권한이 있는지 확인합니다. AWS Identity and Access Management (IAM)에서 AWS 관리`AmazonKeyspacesFullAccess`형 정책은 Amazon Keyspaces 조정 정책을 관리하는 데 필요합니다.

**중요**  
 테이블에서 자동 크기 조정을 비활성화하려면 `application-autoscaling:*` 권한이 필요합니다. 테이블을 삭제하려면 먼저 테이블의 오토 스케일링을 꺼야 합니다.

Amazon Keyspaces 콘솔 액세스 및 Amazon Keyspaces 오토 스케일링을 위해 IAM 사용자 또는 역할을 설정하려면 다음 정책을 추가합니다.

**`AmazonKeyspacesFullAccess` 정책 연결**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

1. IAM 콘솔 대시보드에서 **사용자**를 선택한 후 목록에서 해당 IAM 사용자 또는 역할을 선택합니다.

1. **요약** 페이지에서 **권한 추가**를 선택합니다.

1. **기존 정책 직접 첨부**를 선택합니다.

1. 정책 목록에서 **AmazonDynamoDBFullAccess**를 선택한 후 **다음: 검토**를 선택합니다.

1. **권한 추가**를 선택합니다.

# 오토 스케일링을 사용하여 새 테이블 만들기
<a name="autoscaling.createTable"></a>

새 Amazon Keyspaces 테이블을 만들 때 테이블의 쓰기 또는 읽기 용량에 대한 오토 스케일링을 자동으로 활성화할 수 있습니다. 이렇게 하면 Amazon Keyspaces가 사용자를 대신하여 애플리케이션 오토 스케일링에 연결하여 테이블을 확장 가능한 대상으로 등록하고 프로비저닝된 쓰기 또는 읽기 용량을 조정할 수 있습니다.

멀티 리전 테이블을 만들고 테이블 복제본에 대한 다양한 오토 스케일링 설정을 구성하는 방법의 자세한 내용은 [Amazon Keyspaces에서 오토 스케일링을 사용하는 프로비저닝된 모드에서 다중 리전 테이블 생성](tables-mrr-create-provisioned.md) 섹션을 참조하세요.

**참고**  
Amazon Keyspaces Auto Scaling을 사용하려면 사용자 대신 Auto Scaling 작업을 수행하는 서비스 연결 역할(`AWSServiceRoleForApplicationAutoScaling_CassandraTable`)이 있어야 합니다. 이 역할은 자동으로 생성됩니다. 자세한 내용은 [Amazon Keyspaces에 대해 서비스 연결 역할 사용](using-service-linked-roles.md) 단원을 참조하십시오.

------
#### [ Console ]

**콘솔을 사용하여 오토 스케일링이 활성화된 새 테이블 생성**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) Amazon Keyspaces 콘솔을 엽니다.

1. 탐색 창에서 **테이블**을 선택한 다음 **테이블 생성**을 선택합니다.

1. **테이블 세부 정보** 섹션의 **테이블 생성** 페이지에서 키스페이스를 선택하고 새 테이블의 이름을 입력합니다.

1. **열** 섹션에서 테이블의 스키마를 생성합니다.

1. **프라이머리 키** 섹션에서 테이블의 프라이머리 키를 정의하고 선택적 클러스터링 열을 선택합니다.

1. **테이블 설정** 섹션에서 **설정 사용자 지정**을 선택합니다.

1. **읽기/쓰기 용량 설정**을 계속합니다.

1. **용량 모드**에서 **프로비저닝됨**을 선택합니다.

1. **읽기 용량** 섹션에서 **자동 규모 조정**이 선택되어 있는지 확인합니다.

   이 단계에서는 테이블의 최소 및 최대 읽기 용량 단위와 목표 사용률을 선택합니다.
   + **최소 용량 단위** - 테이블이 항상 지원할 준비가 되어 있어야 하는 최소 처리량 수준 값을 입력합니다. 값은 1에서 계정에 대해 초당 최대 처리량 할당량(기본값 40,000) 사이여야 합니다.
   + **최대 용량 단위** - 테이블에 프로비저닝하려는 최대 처리량을 입력합니다. 값은 1에서 계정에 대해 초당 최대 처리량 할당량(기본값 40,000) 사이여야 합니다.
   + **목표 사용률** — 목표 사용률을 20% \$1 90% 사이로 입력합니다. 트래픽이 정의된 목표 사용률을 초과하면 용량이 자동으로 스케일 업됩니다. 트래픽이 정의된 목표 미만으로 떨어지면 자동으로 다시 스케일 다운됩니다.
**참고**  
계정의 기본 할당량 및 할당량을 높이는 방법에 대한 자세한 내용은 [Amazon Keyspaces(Apache Cassandra용)에 대한 할당량](quotas.md) 섹션을 참조하세요.

1. **쓰기 용량** 섹션에서 읽기 용량에 대해 이전 단계에서 정의한 것과 동일한 설정을 선택하거나 용량 값을 직접 구성합니다.

1. **테이블 생성**을 선택합니다. Auto Scaling 파라미터로 테이블이 생성됩니다.

------
#### [ Cassandra Query Language (CQL) ]

**CQL을 사용하여 Amazon Keyspaces 오토 스케일링으로 새 테이블 생성**

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

정책에는 다음 요소가 포함됩니다.
+ `AUTOSCALING_SETTINGS` - Amazon Keyspaces가 사용자를 대신하여 처리량 용량을 조정할 수 있도록 허용할지를 지정합니다. 다음 값은 필수입니다.
  + `provisioned_write_capacity_autoscaling_update`:
    + `minimum_units`
    + `maximum_units`
  + `provisioned_read_capacity_autoscaling_update`:
    + `minimum_units`
    + `maximum_units`
  + `scaling_policy` - Amazon Keyspaces는 대상 추적 정책을 지원합니다. 대상 추적 정책을 정의하려면 다음 파라미터를 구성합니다.
    + `target_value` - Amazon Keyspaces 오토 스케일링은 프로비저닝된 용량 대비 소비된 용량의 비율을 이 값 또는 그 수준으로 유지하도록 합니다. `target_value`를 백분율로 지정합니다.
    + `disableScaleIn`: (선택 사항) 테이블에 `scale-in`을 비활성화 또는 활성화할지 여부를 지정하는 `boolean`입니다. 이 파라미터는 기본적으로 비활성화되어 있습니다. `scale-in`을 켜려면 `boolean` 값을 `FALSE`로 설정합니다. 즉, 사용자를 대신하여 테이블의 용량이 자동으로 스케일 다운됩니다.
    + `scale_out_cooldown` – 스케일 아웃 활동은 테이블의 프로비저닝된 처리량을 늘립니다. 스케일 아웃 활동을 위한 휴지 기간을 추가하려면 `scale_out_cooldown`에 대한 값(초)을 지정합니다. 값을 지정하지 않을 경우 기본값은 0입니다. 대상 추적 및 휴지 기간에 대한 자세한 내용을 알아보려면 *애플리케이션 오토 스케일링 사용 설명서*의 [대상 추적 조정 정책](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)을 참조하세요.
    + `scale_in_cooldown` – 스케일 인 활동은 테이블의 프로비저닝된 처리량을 줄입니다. 스케일 인 활동을 위한 휴지 기간을 추가하려면 `scale_in_cooldown`에 대한 값(초)을 지정합니다. 값을 지정하지 않을 경우 기본값은 0입니다. 대상 추적 및 휴지 기간에 대한 자세한 내용을 알아보려면 *애플리케이션 오토 스케일링 사용 설명서*의 [대상 추적 조정 정책](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)을 참조하세요.

**참고**  
`target_value`의 용도를 자세히 이해하기 위해 쓰기 용량 단위 200으로 할당 처리량을 설정한 테이블을 예로 들어 보겠습니다. 이 테이블에 대해 `target_value`가 70퍼센트인 확장 정책을 만들려고 합니다.  
테이블에 대한 쓰기 트래픽을 시작했더니 실제 쓰기 처리량이 150 용량 단위였다고 가정해 보겠습니다. 사용 용량 대 할당 용량의 비율은 150/200으로 75퍼센트입니다. 이 비율은 목표를 초과하므로 오토 스케일링은 프로비저닝된 쓰기 용량을 215로 늘려 비율이 (150/215) 또는 69.77%(`target_value`를 초과하지 않지만 최대한 가깝게)가 되게 합니다.

*mytable*의 경우 읽기 및 쓰기 용량 모두에 대한 `TargetValue`를 50%로 설정합니다. Amazon Keyspaces 오토 스케일링은 테이블의 프로비저닝된 처리량을 용량 단위 5\$110의 범위 내에서 조정하여 사용 용량과 프로비저닝된 용량 간의 비율이 50% 수준으로 유지되도록 합니다. 읽기 용량의 경우 `ScaleOutCooldown`과 `ScaleInCooldown`의 값을 60초로 설정합니다.

다음 문을 사용하여 오토 스케일링이 활성화된 새 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
            }  
        }  
    }
};
```

------
#### [ CLI ]

**를 사용하여 Amazon Keyspaces Auto Scaling으로 새 테이블 생성 AWS CLI**

프로그래밍 방식으로 테이블에 대한 오토 스케일링 설정을 구성하려면 Amazon Keyspaces 오토 스케일링에 대한 파라미터를 정의하는 `autoScalingSpecification` 작업을 사용합니다. 파라미터는 테이블의 프로비저닝된 처리량을 조정하도록 Amazon Keyspaces에 지시하는 조건과 수행해야 할 추가 선택적 작업을 정의합니다. 이 예시에서는 *mytable*의 오토 스케일링 설정을 정의합니다.

정책에는 다음 요소가 포함됩니다.
+ `autoScalingSpecification` - Amazon Keyspaces가 사용자를 대신하여 용량 처리량을 조정할 수 있도록 허용할지를 지정합니다. 읽기 및 쓰기 용량에 오토 스케일링을 별도로 활성화할 수 있습니다. 그런 다음 `autoScalingSpecification`에 대한 다음 파라미터를 지정해야 합니다.
  + `writeCapacityAutoScaling` - 최대 및 최소 쓰기 용량 단위입니다.
  + `readCapacityAutoScaling` – 최대 및 최소 읽기 용량 단위입니다.
  + `scalingPolicy` - Amazon Keyspaces는 대상 추적 정책을 지원합니다. 대상 추적 정책을 정의하려면 다음 파라미터를 구성합니다.
    + `targetValue` - Amazon Keyspaces 오토 스케일링은 프로비저닝된 용량 대비 소비된 용량의 비율을 이 값 또는 그 수준으로 유지하도록 합니다. `targetValue`를 백분율로 지정합니다.
    + `disableScaleIn`: (선택 사항) 테이블에 `scale-in`을 비활성화 또는 활성화할지 여부를 지정하는 `boolean`입니다. 이 파라미터는 기본적으로 비활성화되어 있습니다. `scale-in`을 켜려면 `boolean` 값을 `FALSE`로 설정합니다. 즉, 사용자를 대신하여 테이블의 용량이 자동으로 스케일 다운됩니다.
    + `scaleOutCooldown` – 스케일 아웃 활동은 테이블의 프로비저닝된 처리량을 늘립니다. 스케일 아웃 활동을 위한 휴지 기간을 추가하려면 `ScaleOutCooldown`에 대한 값(초)을 지정합니다. 기본값은 0입니다. 대상 추적 및 휴지 기간에 대한 자세한 내용을 알아보려면 *애플리케이션 오토 스케일링 사용 설명서*의 [대상 추적 조정 정책](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)을 참조하세요.
    + `scaleInCooldown` – 스케일 인 활동은 테이블의 프로비저닝된 처리량을 줄입니다. 스케일 인 활동을 위한 휴지 기간을 추가하려면 `ScaleInCooldown`에 대한 값(초)을 지정합니다. 기본값은 0입니다. 대상 추적 및 휴지 기간에 대한 자세한 내용을 알아보려면 *애플리케이션 오토 스케일링 사용 설명서*의 [대상 추적 조정 정책](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)을 참조하세요.

**참고**  
`TargetValue`의 용도를 자세히 이해하기 위해 쓰기 용량 단위 200으로 할당 처리량을 설정한 테이블을 예로 들어 보겠습니다. 이 테이블에 대해 `TargetValue`가 70퍼센트인 확장 정책을 만들려고 합니다.  
테이블에 대한 쓰기 트래픽을 시작했더니 실제 쓰기 처리량이 150 용량 단위였다고 가정해 보겠습니다. 사용 용량 대 할당 용량의 비율은 150/200으로 75퍼센트입니다. 이 비율은 목표를 초과하므로 오토 스케일링은 프로비저닝된 쓰기 용량을 215로 늘려 비율이 (150/215) 또는 69.77%(`TargetValue`를 초과하지 않지만 최대한 가깝게)가 되게 합니다.

*mytable*의 경우 읽기 및 쓰기 용량 모두에 대한 `TargetValue`를 50%로 설정합니다. Amazon Keyspaces 오토 스케일링은 테이블의 프로비저닝된 처리량을 용량 단위 5\$110의 범위 내에서 조정하여 사용 용량과 프로비저닝된 용량 간의 비율이 50% 수준으로 유지되도록 합니다. 읽기 용량의 경우 `ScaleOutCooldown`과 `ScaleInCooldown`의 값을 60초로 설정합니다.

복잡한 오토 스케일링 설정이 있는 테이블을 생성할 때는 JSON 파일에서 오토 스케일링 설정을 로드하는 것이 유용합니다. 다음 예제의 경우, [auto-scaling.zip](samples/auto-scaling.zip)에서 오토 스케일링 예제 JSON 파일을 다운로드하고 파일 경로를 메모하여 `auto-scaling.json`을 추출할 수 있습니다. 이 예제에서는 JSON 파일이 현재 디렉터리에 위치합니다. 다양한 파일 경로 옵션에 대해서는 [파일에서 매개변수를 로드하는 방법](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html#cli-usage-parameters-file-how)을 참조하세요.

```
aws keyspaces create-table --keyspace-name mykeyspace --table-name mytable 
            \ --schema-definition 'allColumns=[{name=pk,type=int},{name=ck,type=int}],partitionKeys=[{name=pk},{name=ck}]' 
            \ --capacity-specification throughputMode=PROVISIONED,readCapacityUnits=1,writeCapacityUnits=1 
            \ --auto-scaling-specification file://auto-scaling.json
```

------

# 기존 테이블에서 오토 스케일링 구성
<a name="autoscaling.configureTable"></a>

기존 Amazon Keyspaces 테이블을 업데이트하여 테이블의 쓰기 또는 읽기 용량에 대한 오토 스케일링을 켤 수 있습니다. 현재 온디맨드 용량 모드에 있는 테이블을 업데이트하는 경우 먼저 테이블의 용량 모드를 프로비저닝된 용량 모드로 변경해야 합니다.

멀티 리전 테이블에 대한 오토 스케일링 설정을 업데이트하는 방법에 대한 자세한 내용은 [Amazon Keyspaces에서 다중 리전 테이블에 대한 프로비저닝된 용량 및 오토 스케일링 설정 업데이트](tables-mrr-autoscaling.md) 섹션을 참조하세요.

Amazon Keyspaces Auto Scaling을 사용하려면 사용자 대신 Auto Scaling 작업을 수행하는 서비스 연결 역할(`AWSServiceRoleForApplicationAutoScaling_CassandraTable`)이 있어야 합니다. 이 역할은 자동으로 생성됩니다. 자세한 내용은 [Amazon Keyspaces에 대해 서비스 연결 역할 사용](using-service-linked-roles.md) 단원을 참조하십시오.

------
#### [ Console ]

**기존 테이블에 Amazon Keyspaces 오토 스케일링 구성**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) Amazon Keyspaces 콘솔을 엽니다.

1. 작업할 테이블을 선택하고 **용량** 탭으로 이동합니다.

1. **용량 설정** 섹션에서 **편집**을 선택합니다.

1. **용량 모드**에서 테이블이 **프로비저닝된** 용량 모드를 사용하고 있는지 확인합니다.

1. **자동 규모 조정**을 선택하고 [오토 스케일링을 사용하여 새 테이블 만들기](autoscaling.createTable.md)의 6단계를 참조하여 읽기 및 쓰기 용량을 편집합니다.

1. Auto Scaling 설정이 정의되면 **저장**을 선택합니다.

------
#### [ Cassandra Query Language (CQL) ]

**CQL을 사용하여 Amazon Keyspaces 오토 스케일링으로 기존 테이블 구성**

기존 Amazon Keyspaces 테이블에 대한 `ALTER TABLE` 문을 사용하여 테이블의 쓰기 또는 읽기 용량에 대한 오토 스케일링을 구성할 수 있습니다. 현재 온디맨드 용량 모드인 테이블을 업데이트하는 경우 `capacity_mode`를 프로비저닝됨으로 설정해야 합니다. 테이블이 이미 프로비저닝된 용량 모드에 있는 경우 이 필드를 생략할 수 있습니다.

다음 예제에서 문은 온디맨드 용량 모드에 있는 테이블 *mytable*을 업데이트합니다. 이 문은 테이블의 용량 모드를 오토 스케일링이 활성화된 프로비저닝 모드로 변경합니다.

쓰기 용량은 목표값이 50%인 5\$110개의 용량 단위 범위 내에서 구성됩니다. 읽기 용량 또한 목표값이 50%인 5\$110개의 용량 단위 범위 내에서 구성됩니다. 읽기 용량의 경우 `scale_out_cooldown`과 `scale_in_cooldown`의 값을 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
            }  
        }  
    }
};
```

------
#### [ CLI ]

**를 사용하여 Amazon Keyspaces Auto Scaling으로 기존 테이블 구성 AWS CLI**

기존 Amazon Keyspaces 테이블의 경우 `UpdateTable` 작업을 사용하여 테이블의 쓰기 또는 읽기 용량에 대한 오토 스케일링을 켤 수 있습니다.

다음 명령을 사용하여 기존 테이블에 대해 Amazon Keyspaces 오토 스케일링을 켤 수 있습니다. 테이블에 대한 오토 스케일링 설정은 JSON 파일에서 로드됩니다. 다음 예제의 경우, [auto-scaling.zip](samples/auto-scaling.zip)에서 오토 스케일링 예제 JSON 파일을 다운로드하고 파일 경로를 메모하여 `auto-scaling.json`을 추출할 수 있습니다. 이 예제에서는 JSON 파일이 현재 디렉터리에 위치합니다. 다양한 파일 경로 옵션에 대해서는 [파일에서 매개변수를 로드하는 방법](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html#cli-usage-parameters-file-how)을 참조하세요.

다음 예제에서 사용된 오토 스케일링 설정에 대한 자세한 내용은 [오토 스케일링을 사용하여 새 테이블 만들기](autoscaling.createTable.md)을 참조하세요.

```
aws keyspaces update-table --keyspace-name mykeyspace --table-name mytable 
            \ --capacity-specification throughputMode=PROVISIONED,readCapacityUnits=1,writeCapacityUnits=1 
            \ --auto-scaling-specification file://auto-scaling.json
```

------

# 테이블의 Amazon Keyspaces 오토 스케일링 구성 보기
<a name="autoscaling.viewPolicy"></a>

콘솔, CQL 또는 AWS CLI 를 사용하여 테이블의 Amazon Keyspaces 자동 조정 설정을 보고 업데이트할 수 있습니다.

------
#### [ Console ]

****

**콘솔을 사용하여 오토 스케일링 설정 보기**

1. 보려는 테이블을 선택하고 **용량** 탭으로 이동합니다.

1. **용량 설정** 섹션에서 **편집**을 선택합니다. **읽기 용량** 또는 **쓰기 용량** 섹션에서 설정을 수정할 수 있습니다. 이러한 설정에 대한 자세한 내용은 [오토 스케일링을 사용하여 새 테이블 만들기](autoscaling.createTable.md) 섹션을 참조하세요.

------
#### [ Cassandra Query Language (CQL) ]

**CQL을 사용하여 테이블의 Amazon Keyspaces 오토 스케일링 정책 보기**

테이블의 오토 스케일링 구성에 대한 세부 정보를 보려면 다음 명령을 사용합니다.

```
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}}}
```

------
#### [ CLI ]

**를 사용하여 테이블의 Amazon Keyspaces 오토 스케일링 정책 보기 AWS CLI**

테이블의 오토 스케일링 구성을 보려면 `get-table-auto-scaling-settings` 작업을 사용하면 됩니다. 다음 CLI 명령은 그 예입니다.

```
aws keyspaces get-table-auto-scaling-settings --keyspace-name mykeyspace --table-name mytable
```

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

```
{
    "keyspaceName": "mykeyspace",
    "tableName": "mytable",
    "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable",
    "autoScalingSpecification": {
        "writeCapacityAutoScaling": {
            "autoScalingDisabled": false,
            "minimumUnits": 5,
            "maximumUnits": 10,
            "scalingPolicy": {
                "targetTrackingScalingPolicyConfiguration": {
                    "disableScaleIn": false,
                    "scaleInCooldown": 0,
                    "scaleOutCooldown": 0,
                    "targetValue": 50.0
                }
            }
        },
        "readCapacityAutoScaling": {
            "autoScalingDisabled": false,
            "minimumUnits": 5,
            "maximumUnits": 10,
            "scalingPolicy": {
                "targetTrackingScalingPolicyConfiguration": {
                    "disableScaleIn": false,
                    "scaleInCooldown": 60,
                    "scaleOutCooldown": 60,
                    "targetValue": 50.0
                }
            }
        }
    }
}
```

------

# 테이블에 대한 Amazon Keyspaces 오토 스케일링 끄기
<a name="autoscaling.turnoff"></a>

언제든지 테이블의 Amazon Keyspaces 오토 스케일링을 끌 수 있습니다. 더 이상 테이블의 읽기 또는 쓰기 용량을 확장할 필요가 없는 경우 오토 스케일링을 꺼서 Amazon Keyspaces가 테이블의 읽기 또는 쓰기 용량 설정을 계속 수정하지 않도록 하는 것이 좋습니다. 콘솔 CQL 또는 AWS CLI를 사용하여 테이블을 업데이트할 수 있습니다.

오토 스케일링을 끄면 사용자를 대신하여 생성된 CloudWatch 경보도 삭제됩니다.

Application Auto Scaling이 Amazon Keyspaces 테이블에 액세스하는 데 사용하는 서비스 연결 역할을 삭제하려면 [Amazon Keyspaces에 대한 서비스 연결 역할 삭제](using-service-linked-roles-app-auto-scaling.md#delete-service-linked-role-app-auto-scaling)의 단계를 따르세요.

**참고**  
애플리케이션 오토 스케일링에서 사용하는 서비스 연결 역할을 삭제하려면 모든 AWS 리전에 걸쳐 계정의 모든 테이블에서 오토 스케일링을 비활성화해야 합니다.

------
#### [ Console ]

**콘솔을 사용하여 테이블의 Amazon Keyspaces 오토 스케일링 끄기**

**Amazon Keyspaces 콘솔 사용**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) Amazon Keyspaces 콘솔을 엽니다.

1. 업데이트하려는 테이블을 선택하고 **용량** 탭으로 이동합니다.

1. **용량 설정** 섹션에서 **편집**을 선택합니다.

1. Amazon Keyspaces 오토 스케일링을 비활성화하려면 **자동 규모 조정** 확인란의 선택을 취소합니다. 오토 스케일링을 비활성화하면 애플리케이션 오토 스케일링으로 확장 가능한 대상인 테이블의 등록이 취소됩니다.

------
#### [ Cassandra Query Language (CQL) ]

**CQL을 사용하여 테이블의 Amazon Keyspaces 오토 스케일링 끄기**

다음 문은 테이블 *mytable*의 쓰기 용량에 대한 오토 스케일링을 끕니다.

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

------
#### [ CLI ]

**를 사용하여 테이블에 대한 Amazon Keyspaces 자동 조정 끄기 AWS CLI**

다음 명령은 테이블의 읽기 용량에 대한 오토 스케일링을 끕니다. 또한 사용자를 대신하여 생성한 CloudWatch 경보를 삭제합니다.

```
aws keyspaces update-table --keyspace-name mykeyspace --table-name mytable 
            \ --auto-scaling-specification readCapacityAutoScaling={autoScalingDisabled=true}
```

------

# Amazon CloudWatch에서 Amazon Keyspaces 테이블에 대한 오토 스케일링 활동 보기
<a name="autoscaling.activity"></a>

사용량 및 성능에 관한 지표를 생성하는 Amazon CloudWatch를 사용하여 Amazon Keyspaces Auto Scaling이 리소스를 어떻게 사용하는지 모니터링할 수 있습니다. [Application Auto Scaling 사용 설명서](https://docs.aws.amazon.com/autoscaling/application/userguide/monitoring-cloudwatch.html)의 단계에 따라 CloudWatch 대시보드를 생성합니다.