Search

Kinesis Agent Error

2025-07-08 07:02:03.422+0000 (sender-0) com.amazon.kinesis.streaming.agent.tailing.AsyncPublisher [ERROR] AsyncPublisher[kinesis:input-stream:/opt/app/app.log]:RecordBuffer(id=2,records=1,bytes=58) Non-retriable send error. Will NOT retry. java.lang.UnsupportedOperationException: Client is immutable when created with the builder. at com.amazonaws.AmazonWebServiceClient.checkMutability(AmazonWebServiceClient.java:1057) ~[aws-java-sdk-core-1.12.390.jar:?] at com.amazonaws.AmazonWebServiceClient.setEndpoint(AmazonWebServiceClient.java:316) ~[aws-java-sdk-core-1.12.390.jar:?] at com.amazon.kinesis.streaming.agent.AgentContext.getKinesisClient(AgentContext.java:194) ~[AWSKinesisStreamingDataAgent-1.1.jar:?] at com.amazon.kinesis.streaming.agent.tailing.KinesisSender.attemptSend(KinesisSender.java:103) ~[AWSKinesisStreamingDataAgent-1.1.jar:?] at com.amazon.kinesis.streaming.agent.tailing.AbstractSender.sendBuffer(AbstractSender.java:39) ~[AWSKinesisStreamingDataAgent-1.1.jar:?] at com.amazon.kinesis.streaming.agent.tailing.SimplePublisher.sendBufferSync(SimplePublisher.java:127) [AWSKinesisStreamingDataAgent-1.1.jar:?] at com.amazon.kinesis.streaming.agent.tailing.AsyncPublisher.access$001(AsyncPublisher.java:34) [AWSKinesisStreamingDataAgent-1.1.jar:?] at com.amazon.kinesis.streaming.agent.tailing.AsyncPublisher$1.run(AsyncPublisher.java:132) [AWSKinesisStreamingDataAgent-1.1.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619) [?:?] at java.lang.Thread.run(Thread.java:1447) [?:?]
Shell
복사

핵심 오류

java.lang.UnsupportedOperationException: Client is immutable when created with the builder.
Shell
복사

트러블 슈팅

최근 SDK 버전 (특히 1.12.x 이상)에서는 builder 패턴을 통해 생성된 클라이언트가 불변(immutable) 이기 때문에 setEndpoint() 호출이 금지되어있다.
{ "cloudwatch.emitMetrics": true, "awsEndpoint": "https://kinesis.ap-northeast-2.amazonaws.com", <-- 이런 라인 지우기 ... }
Shell
복사
해결한 구성파일
{ "cloudwatch.emitMetrics": true, "flows": [ { "filePattern": "/opt/app/app.log", "kinesisStream": "input-stream", "partitionKeyOption": "RANDOM" } ] }
Shell
복사