DynamoDB는 스트림에 액세스할 수 없습니다. 스트림이 활성화되지 않았습니다.
TL;DR — 소비자(Lambda 이벤트 소스 매핑, Kinesis 어댑터 리더 또는 원시 DescribeStream/GetShardIterator 호출)가 스트림이 꺼진 테이블에서 DynamoDB 스트림을 읽으려고 했거나 스트림이 다시 활성화되기 전의 오래된 스트림 ARN을 사용했습니다. 테이블에서 DynamoDB 스트림을 활성화하고 소비자에게 테이블의 현재 LatestStreamArn를 가리킵니다.
무엇을 의미하는가
Cannot access stream arn:aws:dynamodb:us-east-1:111122223333:table/Orders/stream/... .
Please ensure the ARN is correct and the stream is enabled.
DynamoDB Streams must be enabled on the table.DynamoDB 스트림은 선택 기능입니다. StreamEnabled: true로 StreamSpecification을 설정한 경우에만 테이블에 스트림이 있습니다. 판독기(주로 Lambda 이벤트 소스 매핑)가 활성 스트림이 없는 테이블(또는 더 이상 존재하지 않는 ARN)에 연결된 경우 매핑을 연결할 수 없으며 스트림에 액세스할 수 없다고 보고합니다.
왜 발생하는가
- 테이블에서는 스트림이 활성화되지 않았지만 소비자는 스트림을 기대합니다.
- 스트림이 비활성화되었다가 다시 활성화되었습니다 — 각 활성화는 새로운 스트림 ARN(새로운 타임스탬프 접미사 포함)을 생성합니다. 이전 ARN을 보유한 소비자는 최대 24시간 동안 읽기 가능한 상태로 유지되는 비활성화된 스트림을 읽고 있으며 그 후 해당 기록이 만료됩니다.
- 코드형 인프라 드리프트 — CDK/CloudFormation/Terraform 소비자는 스트림 구성을 전파하지 않은 이름/ARN으로 가져온 테이블을 참조하므로 도구에서는 스트림이 꺼져 있다고 생각합니다.
- 잘못된 스트림 ARN — 실제
LatestStreamArn대신 테이블 ARN 또는.../stream/latest자리 표시자를 사용합니다.
어떻게 해결하는가
- 테이블에서 스트림을 활성화합니다.
UpdateTable, 콘솔 또는 IaC를 통해StreamSpecification{ StreamEnabled: true, StreamViewType: NEW_AND_OLD_IMAGES }(또는 소비자가 필요로 하는 보기 유형)를 설정합니다. - 현재 스트림 ARN을 읽습니다.
DescribeTable을 호출하고LatestStreamArn필드를 사용합니다. 직접 구축하거나 캐시된 ARN은 사용하지 마세요. - 비활성화/활성화 주기 후에 새 ARN에서 소비자를 다시 지정합니다. 이전 스트림에 바인딩된 경우 Lambda 이벤트 소스 매핑을 다시 생성합니다.
- 읽기 권한 부여 — 소비자의 역할에는 스트림 ARN에
dynamodb:DescribeStream,GetRecords,GetShardIterator및ListStreams가 필요합니다. - 테이블 ARN과 스트림 ARN을 혼동하지 마십시오 — 스트림 ARN은
/stream/<timestamp>로 끝나지만 테이블 ARN은 그렇지 않습니다.
콘솔 없이 테이블과 해당 스트림 구성을 검사해야 합니까? 테이블 옆에 DynoTable desktop app 표면 스트림 상태가 표시되어 독자가 테이블을 가리키기 전에 켜져 있는지 확인할 수 있습니다.
DynoTable에서 재시도하기 전에
Lambda 이벤트 소스 매핑을 연결하기 전에 DynoTable에서 테이블을 열고 스트림이 활성화되어 있고 StreamViewType가 설정되어 있는지 확인하세요(테이블 세부 정보). DynoTable은 스키마 옆에 스트림 구성을 표시하므로 AWS 콘솔을 통해 이동할 필요가 없습니다.
Streams를 비활성화했다가 다시 활성화하면 ARN이 변경됩니다. DynoTable의 테이블을 새로 고치고 AWS의 현재 스트림 ID(CLI/DescribeTable를 통해 LatestStreamArn)를 소비자에 복사합니다. 올바른 계정/지역 프로필을 유지하려면 ⌘P를 사용하세요. 일상적인 품목 검사는 DynoTable에서 이루어집니다. 스트림 소비자는 Lambda/Kinesis 도구를 사용합니다. query builder는 스트림 토글 후에도 테이블이 여전히 키 입력 읽기를 제공하는지 확인하는 데 도움이 됩니다.
출처
- Change data capture for DynamoDB Streams (2026-07-13 검증)
- Process Amazon DynamoDB records with Lambda (2026-07-13 인증)
관련 오류
- ResourceNotFoundException — 테이블 또는 스트림 ARN이 전혀 존재하지 않습니다.
- The ARN provided is invalid — 잘못된 스트림 ARN입니다.
- 학습: DynamoDB Streams
참고 자료
- Change data capture for DynamoDB Streams — Amazon DynamoDB Developer Guide
- Process Amazon DynamoDB records with Lambda — AWS Lambda Developer Guide
- StreamSpecification — Amazon DynamoDB API Reference
- DescribeTable — Amazon DynamoDB API Reference
위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.