본문 바로가기

프로젝트

Java에서 AWS SDK를 사용할 때 발생하는 Warning & Error 로그 제거

AWS SDK 2 Version을 적용했을 때 발생한 Warning & Error

💬 Java Spring Project에 AWS S3 사용을 위하여 의존성을 추가하여 사용하였다. 그 이후부터 아래와 같은 Warning과 Error가 발생하기 시작하였다. 서버를 가동하는 데에는 문제가 없어서 그동안 놔두었는데, 유의미하지 않은 Warning과 Error의 메시지가 계속해서 뜬다면 실제 중요한 로그를 놓칠 수 있다고 판단이 되어 이번 기회에 해결하기로 했다. 

 

✔ Warning 문구

[main] WARN com.amazonaws.util.EC2MetadataUtils - Unable to retrieve the requested metadata (/latest/meta-data/instance-id). Failed to connect to service endpoint:

 

✔ Error 문구

Caused by: java.net.NoRouteToHostException: No route to host

원인

💬 AWS로 인해 발생하는 Waring과 Error는 EC2 Instance의 Metadata정보를 가져오기 위해 내부 EC2에 요청을 보내는데 로컬 환경에서 사용을 할 경우 EC2 환경이 아니기 때문에 Metadata를 가져오지 못해서 발생했다.

 

 의문

💬 AWS SDK를 사용을 할 때 왜 Metadata를 가져오려고 하는 건지 찾아보았지만.. 부족해서인지 알 수 없었다. 기회가 된다면 시간을 더 내어 알아보아야겠다.

Warning & Error 제거 방법

💬 EC2에 대한 Metadata를 가져오는 것에서 문제가 발생하는 것이었기 때문에, 로컬 환경에서 Metadata를 가져오지 않도록 설정하기로 했다. Application이 실행이 되면서 EC2의 Metadata를 가져오지 않도록 설정을 해주었다.
static {
   System.setProperty("com.amazonaws.sdk.disableEc2Metadata", "true");
}​