DynamoDB ResourceNotFoundException
TL;DR — DynamoDB는 클라이언트가 가리키는 리전/계정에서 이름을 지정한 테이블(또는 인덱스)을 찾을 수 없습니다. 테이블 이름의 오타, 잘못된 region 또는 다른 계정의 자격 증명을 확인하세요. 테이블이 실제로 사라지는 경우는 거의 없습니다.
무엇을 의미하는가
ResourceNotFoundException: Requested resource not found: Table: <table-name> not found
# on DynamoDB Local:
ResourceNotFoundException: Cannot do operations on a non-existent table첫 번째는 라이브 서비스가 반환하는 것입니다. 즉, 찾은 테이블의 이름을 지정합니다. 두 번째는 DynamoDB Local이 반환하는 것입니다. 이는 AWS가 아닌 에뮬레이터와 통신하고 있다는 확실한 신호입니다. 어느 쪽이든 이 작업은 이 클라이언트의 관점에서 존재하지 않는 테이블 또는 인덱스(테이블 이름 + AWS 리전 + 계정(자격 증명)의 조합)를 대상으로 했습니다. 3명 모두 줄을 서야 합니다. DynamoDB는 HTTP 상태 400을 반환하며 재시도할 수 없습니다. 이름, 리전 또는 자격 증명을 수정할 때까지 동일한 요청이 계속 실패합니다(또는 테이블 생성이 완료될 때까지: 테이블이 너무 일찍 CREATING 상태에 있으면 이 오류가 반환될 수도 있음).
왜 발생하는가
- 지역 불일치 — 테이블은
us-east-1에 있지만 클라이언트의 기본값은us-west-2입니다(또는 지역이 설정되지 않아 SDK가 다른 기본값을 선택합니다). - 잘못된 테이블 이름 — 오타, 잘못된 대소문자(이름은 웹 서비스에서 대/소문자를 구분함) 또는 환경 접두사가 붙은 이름(
prod-Orders대Orders)입니다. - 잘못된 계정 — 자격 증명이 테이블을 소유한 계정과 다른 AWS 계정으로 확인됩니다.
- 존재하지 않거나 아직
ACTIVE가 아닌 인덱스 쿼리(GSI가 여전히 백필 중) — API 참조에서는 "상태가ACTIVE"이 아닐 수 있는 "존재하지 않는 테이블 또는 인덱스"를 호출합니다. - 테이블이 실제로 삭제되었습니다 또는 빈 상태로 시작하는 DynamoDB Local을 가리킵니다.
어떻게 해결하는가
- 클라이언트에서 지역을 명시적으로 고정하고 테이블이 있는 위치와 일치하는지 확인합니다.
- 정확한 테이블 이름 확인 — 해당 영역(
aws dynamodb list-tables --region <r>)의 테이블을 나열하고 이름을 그대로 복사합니다. - 자격 증명을 확인하여 소유 계정(
aws sts get-caller-identity)을 확인합니다. - 통화에
IndexName(DescribeTable→ GSI는ACTIVE이어야 함)를 사용하는 경우 인덱스 이름 + 상태를 확인하세요.
예제
import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
// Pin the region so the client can't silently target the wrong one:
const client = new DynamoDBClient({region: 'us-east-1'});FAQ
DynamoDB에서 ResourceNotFoundException을 어떻게 수정합니까?
테이블 이름, AWS 리전 및 계정(자격 증명)이 모두 정렬되어 있는지 확인합니다. 클라이언트에 리전을 명시적으로 고정하고 해당 리전의 테이블을 나열하여 정확한 이름을 확인한 다음 aws sts get-caller-identity를 사용하여 자격 증명이 소유 계정으로 확인되는지 확인합니다.
ResourceNotFoundException은 내 테이블이 삭제되었음을 의미합니까? 드물게. 이는 일반적으로 클라이언트가 지역 불일치, 테이블 이름의 오타나 대소문자, 다른 계정의 자격 증명 등 잘못된 위치를 찾고 있음을 의미합니다. 또한 존재하지 않거나 아직 ACTIVE가 아닌 인덱스를 쿼리할 때 또는 빈 상태로 시작하는 DynamoDB Local을 가리킬 때도 실행됩니다.
DynoTable 워크벤치
DynoTable은 사이드바에 활성 프로필 및 지역에 대한 테이블을 나열합니다. 만약
테이블이 누락된 경우 ⌘P를 눌러 프로필을 확인하고
탭의 영역 - 여기서 불일치가 이 오류의 가장 일반적인 원인입니다.
앱. ⌘K → 이름으로 테이블 열기를 사용하면 정확한 테이블을 입력할 수 있습니다.
ListTables이 거부되거나 목록이 테이블 접두사로 필터링되는 경우 이름입니다.
DynamoDB Local에 대해 엔드포인트가 http://localhost:8000인 프로필을 추가하고
일치하는 자리 표시자 자격 증명(Connect to DynamoDB Local)
— 로컬은 테이블을 생성할 때까지 비어 있게 시작됩니다.
관련 오류
- ResourceInUseException — 반대: 테이블이 이미 존재합니다.
- 설정에 리전이 없음
- 보안 토큰이 유효하지 않음
- 학습: Running DynamoDB Local — 로컬 시작은 비어 있습니다. 현재 어느 엔드포인트에 있는지 알아보세요.
출처
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide (2026-07-13 인증)
- Query — Amazon DynamoDB API Reference (2026-07-13 인증)
- DynamoDB local usage notes — Amazon DynamoDB Developer Guide (2026-07-13 인증)