

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

# 오토 스케일링을 사용하여 새 테이블 만들기
<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
```

------