"Local secondary indexes must be specified at table creation" — 테이블 생성 시 로컬 보조 인덱스를 지정해야 합니다.
TL;DR — LSI(로컬 보조 인덱스)는 테이블이 생성되는 순간에만 생성될 수 있습니다. 나중에 추가, 변경 또는 제거할 수 없습니다. UpdateTable에는 LSI에 대한 작업이 없으므로 라이브 테이블에 LSI를 추가하려는 시도는 유효성 검사에 실패합니다. 새로운 LSI를 얻으려면 (LSI가 포함된) 새 테이블을 생성하고 데이터를 마이그레이션하거나 온라인으로 추가할 수 있는 글로벌 보조 인덱스(GSI)를 사용해야 합니다.
무엇을 의미하는가
ValidationException: One or more parameter values were invalid: Local secondary
indexes can only be created when a table is createdLSI는 파티션 키를 기본 테이블과 공유하고 대체 정렬 키를 추가합니다. DynamoDB는 쓰기 시 이를 항목의 파티션과 같은 위치에 배치합니다. 이러한 물리적 결합으로 인해 LSI는 테이블의 첫 번째 쓰기부터 존재해야 합니다. UpdateTable는 GSI 추가/제거를 지원하지만 no LSI 매개변수가 전혀 없으므로 개조를 위해 보낼 수 있는 요청도 없습니다. 정확한 메시지는 경로에 따라 다르지만(SDK/CLI 호출은 클라이언트 측에서 매개변수 검증에 실패할 수 있으며, IaC 도구는 자체 문구를 표시함), 서비스 측 형식은 HTTP 400 ‐ 1 이며 재시도할 수 없습니다. 즉, 작업이 기존 테이블에서 지원되지 않습니다.
왜 발생하는가
- 라이브 테이블에 LSI 추가 —
UpdateTable를 호출(또는 CloudFormation/Terraform 템플릿 편집)하여 이미 존재하는 테이블에 새LocalSecondaryIndexes항목을 도입합니다. - 기존 LSI 변경 - 해당 키 스키마 또는 프로젝션은 생성 시 고정됩니다. 수정사항이 거부됩니다.
- 재생성 및 업데이트를 비교하는 IaC 차이점 — 도구는 DynamoDB가 생성 시에만 허용하는 LSI 변경 사항을 그대로 업데이트하려고 시도합니다.
어떻게 해결하는가
미리 정의된 LSI를 사용하여 새 테이블을 생성한 다음 데이터를 마이그레이션합니다(스캔 및 쓰기 또는 주문형 내보내기/가져오기).
액세스 패턴이 허용하는 경우 대신 GSI를 사용하세요 — GSI는 온라인으로 기존 테이블에 추가할 수 있으며 동일한 파티션 키가 필요하지 않습니다.
aws dynamodb update-table --table-name <Table> \ --attribute-definitions AttributeName=gsi_sk,AttributeType=S \ --global-secondary-index-updates '[{"Create":{"IndexName":"gsi1", ...}}]'모델링 중 LSI 계획 — 대체 정렬 키는 개조할 수 없으므로 테이블이 존재하기 전에 결정합니다.
먼저 GSI에서 액세스 패턴을 모델링합니다. 쿼리가 다른 파티션 키를 사용하는 GSI에서 작동하는 경우 테이블 재구축이 완전히 방지됩니다.
DynoTable에서 크기 확인
LSI용 테이블을 다시 작성하기 전에 DynoTable에서 액세스 패턴을 검증하십시오. ⌘K로 테이블을 열고 GSI 쿼리가 동일한 요구 사항을 충족하는지 테스트하십시오. Query Builder은 새 인덱스가 제공해야 하는 KeyConditionExpression를 생성합니다.
pricing calculator를 사용하여 LSI 쓰기 증폭을 GSI 대안과 비교합니다. ⌘P로 프로필을 전환합니다. Connect to AWS 및 Install를 참조하세요.
출처
- Local secondary indexes (2026-07-13 검증)
- UpdateTable — Amazon DynamoDB API Reference (2026-07-13 인증)
관련 오류
- Attempting to modify a GSI that is being created — 인덱스가 구축되는 동안 GSI 변경이 차단되었습니다.
- Requested resource not found / index not found — 존재하지 않는 인덱스 이름을 쿼리하는 중입니다.
- ValidationException (overview)
- 학습: GSI vs LSI · Indexes overview
참고 자료
- Local secondary indexes — Amazon DynamoDB Developer Guide
- UpdateTable — Amazon DynamoDB API Reference
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.