생성 중인 GSI를 수정하려고 시도하는 중

TL;DR — 글로벌 보조 인덱스가 구축되는 동안(IndexStatus = CREATING) DynamoDB는 충돌하는 구조 변경을 거부합니다. 초기 리소스 할당 단계에서는 새 인덱스를 수정하거나, 인덱스 또는 테이블의 프로비저닝된 처리량을 변경하거나, 다른 인덱스를 추가 또는 삭제하거나, 테이블을 삭제할 수 없습니다. 채우기가 시작되면 진행 중인 인덱스를 삭제하거나 테이블/GSI 처리량을 다시 변경할 수 있지만 다른 인덱스를 추가하거나 삭제하고 테이블 삭제는 ACTIVE가 될 때까지 차단된 상태로 유지됩니다. GSI를 한 번에 하나씩 변경합니다. UpdateTable당 하나씩 생성하거나 삭제합니다.

무엇을 의미하는가

ValidationException: Attempting to modify a GSI that is being created

채워진 테이블에 GSI를 생성하면 백필이 트리거됩니다. DynamoDB는 백그라운드에서 기존 항목을 새 인덱스로 재생합니다. 해당 단계 전체에서 지수의 IndexStatusCREATING입니다. 채우기 중에 DynamoDB는 빌드의 일관성을 유지하기 위해 인덱스 또는 테이블에 대한 추가 구조적 변경을 거부합니다. 이는 HTTP 400 ValidationException입니다. 인덱스가 완료될 때까지 재시도가 즉시 실패합니다.

왜 발생하는가

  • 중복 인덱스 작업UpdateTable(또는 IaC 적용)은 첫 번째 GSI가 아직 구축 중인 동안 GSI를 수정/삭제하거나 두 번째 GSI를 추가하려고 시도합니다.
  • CloudFormation/Terraform 일괄 처리 — 도구는 단일 업데이트에서 여러 GSI 변경을 시도합니다. DynamoDB는 UpdateTable당 하나의 GSI 생성 또는 삭제만 허용합니다.
  • 리소스 할당 중 처리량 변경 — 새 인덱스가 여전히 리소스(Backfilling: false)를 할당하는 동안에는 해당 인덱스 또는 테이블의 프로비저닝된 처리량을 수정할 수 없습니다. 채우기가 시작되면 이러한 변경 사항이 다시 허용됩니다.
  • 테이블을 너무 빨리 삭제 — 백필을 경주하는 분해입니다.

어떻게 해결하는가

  1. ACTIVE을 기다립니다. DescribeTable을 폴링하고 각 GlobalSecondaryIndexes[].IndexStatus을 확인합니다. ACTIVE일 때만 진행하세요.

    aws dynamodb describe-table --table-name <Table> \
      --query "Table.GlobalSecondaryIndexes[].{Name:IndexName,Status:IndexStatus}"

    인덱스 설명에는 Backfilling 부울(false = 리소스 할당, true = 채우기)도 포함되며 OnlineIndexPercentageProgress CloudWatch 지표는 빌드를 추적합니다. 2. 순서 인덱스 변경UpdateTable당 1회 생성/삭제; 다른 GSI가 구축되는 동안 새 GSI를 추가하지 마세요. 3. CloudFormation/Terraform에서 GSI 추가 사항을 별도의 배포로 분할하여 다음 변경 전에 각 백필이 완료되도록 합니다. 4. 인덱스가 ACTIVE이 될 때까지 다른 인덱스 변경 및 테이블 삭제를 연기하세요. 구제가 필요합니까? 백필이 시작되면 생성 중인 인덱스를 삭제하여 빌드를 취소할 수 있습니다.

DynoTable에서 재시도하기 전에

GSI가 CREATING인 동안 DynoTable에서 테이블을 열고 다른 UpdateTable를 대기열에 추가하기 전에 테이블 세부 정보에서 인덱스 상태를 확인하세요. 탐색할 때 앱이 DescribeTable를 새로 고칩니다. IndexStatusACTIVE로 바뀌면 인덱스가 쿼리 패턴 선택기에 나타나고 시각적 모드나 query builder에서 쿼리할 수 있습니다.

DynoTable에 여전히 CREATING가 표시되는 동안 CloudFormation/Terraform GSI 변경 사항을 한 번에 적용하지 마십시오. 시퀀스 배포; 적용 사이의 실측 상태 패널로 DynoTable을 사용합니다. 백필이 시작된 후 빌드를 취소해야 하는 경우 IaC/CLI에서 해당 인덱스를 삭제한 다음 DynoTable 인덱스 목록에서 사라지는지 확인하세요.

출처

관련 오류

참고 자료

위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.

Console 없이 DynamoDB 작업하기

DynamoDB로는 실행할 수 없는 진짜 SQL(JOINs, GROUP BY, 집계)을 실행하는 빠른 DynamoDB 데스크톱 클라이언트. 시각적 편집과 여러분 자신의 Bedrock 키로 동작하는 AI 에이전트를 제공합니다.

30일 무료 체험, 신용카드 불필요 — 이후 기간 제한 없는 무료 요금제.