

# 글로벌 보조 인덱스를 사용하여 DynamoDB에 최종적으로 일관된 복제본 생성
<a name="bp-indexes-gsi-replica"></a>

글로벌 보조 인덱스를 사용하여 최종적으로 일관된 테이블 복제본을 생성할 수 있습니다. 복제본을 생성하면 다음 작업을 수행할 수 있습니다.
+ **독자마다 각각 다르게 프로비저닝된 읽기 용량을 설정합니다.** 예를 들어, 우선 순위가 높은 쿼리를 처리해야 해서 최고의 읽기 성능이 필요한 애플리케이션과 우선 순위가 낮아서 읽기 작업의 병목 현상이 용인되는 애플리케이션 2개가 있다고 가정하겠습니다.

  두 애플리케이션이 동일한 테이블을 읽는다면, 우선 순위가 낮은 애플리케이션의 과도한 읽기 로드가 해당 테이블에서 사용할 수 있는 읽기 용량을 모두 소비할 수도 있습니다. 이는 우선 순위가 높은 애플리케이션의 읽기 작업을 제한하게 됩니다.

  대신 글로벌 보조 인덱스를 통해 읽기 용량을 테이블과 다르게 설정한 복제본을 생성할 수 있습니다. 그런 후, 낮은 우선 순위의 앱이 테이블 대신 복제본에 쿼리를 하도록 만들 수 있습니다.
+ **테이블 읽기를 완전히 없앱니다.** 예를 들어, 웹사이트에서 대량의 클릭스트림 활동을 캡처하는 애플리케이션이 있는데, 읽기에 방해가 초래되는 위험을 원하지 않는다고 가정하겠습니다. 이 테이블을 격리해 다른 애플리케이션의 읽기를 방지하면서([IAM 정책 조건을 사용하여 세분화된 액세스 제어 구현](specifying-conditions.md)참조), 다른 애플리케이션은 글로벌 보조 인덱스로 생성한 복제본을 읽도록 만들 수 있습니다.

상위 테이블과 키 스키마가 동일하면서, 키를 제외한 속성은 일부(또는 모두)를 인덱스로 가져오는 글로벌 보조 인덱스를 설정해 복제본을 생성할 수 있습니다. 그러면 애플리케이션에서는 읽기 작업 일부 또는 모두를 상위 테이블이 아닌 이 글로벌 보조 인덱스로 보낼 수 있습니다. 그런 후, 상위 테이블의 프로비저닝된 읽기 용량을 변경하지 않은 상태에서 글로벌 보조 인덱스의 프로비저닝된 읽기 용량을 조정할 수 있습니다.

단 항상 상위 테이블에 데이터를 작성한 후 작성된 데이터가 인덱스에 나타날 때까지 짧게 전달 지연이 발생합니다. 다시 말해 애플리케이션은 글로벌 보조 인덱스 복제본이 유일하게 상위 테이블에 *최종적으로 일관된* 복제본이라는 점을 고려해야 합니다.

여러 글로벌 보조 인덱스 복제본을 생성해 여러 읽기 패턴을 지원할 수 있습니다. 단 복제본을 생성할 때, 각 읽기 패턴에 실제 필요한 속성만 반영해야 합니다. 그래야만 애플리케이션이 상위 테이블의 항목을 읽지 않고, 필요한 데이터만 가져오면서, 프로비저닝된 읽기 용량을 더 적게 소비합니다. 이런 최적화 덕분에 시간이 지날수록 많은 비용을 절감할 수 있습니다.