Spring/Spring err

[Spring err] com.amazonaws.SdkClientException: Failed to connect to service endpoint 에러 -(aws 의존성 주입시 에러)

민돌v 2022. 3. 18. 15:29

전에 만든 팀프로젝트를 보다가, 실행하자마자 나는 에러를 발견하였다.

개발당시에는 시간이 촉박해, 어플리케이션 자체 실행에는 문제가 없어 넘어갔던 부분이다.

error code

  • com.amazonaws.SdkClientException: Failed to connect to service endpoint
  • Caused by: java.net.SocketException: Network is unreachable: connect

 


aws sdk 에러가 나는 이유는, build.gradle에, spring-cloud-starter-aws 의존성 주입시 로컬환경은, aws환경이 아니기때문에 나는 에러라고 한다.

aws환경에서 실행시 아무문제가 없지만, 에러를 하나씩 잡아가면서 테스트를 해보기로 마음먹었기때문에 이것또한 해결해보자!!

 

어플리케이션 실행시 나타나는 오류

 

해결방법은 이렇게 2가지 있는것 같다 (구글링 할 시..ㅎㅎ)

  1. 로그 자체를 안보이게
  2. amazon EC2가 아닌 환경의 시스템 환경변수를 만들어 주는 것

1번같은 경우는 그냥 안보이는 것 뿐, 근본적인 해결은 되지 않다고 생각해서 2번으로 해결해 보자

 


해결 방법

[run]-[configuration]

vm option에 아래 문장 추가

-Dcom.amazonaws.sdk.disableEc2Metadata=true

vm option

그러면 에러가 바뀝니다.

com.amazonaws.AmazonClientException: EC2 Instance Metadata Service is disabled

해당 에러는 EC2 메타데이터를 제외하고 실행한다는 의미로, 어플리케이션 실행 시 딜레이가 없어졌다는 의미입니다!

테스트 환경에서 실행시에는 static 으로 system.properties 를 작성해주어야합니다.

static { 
    System.setProperty("com.amazonaws.sdk.disableEc2Metadata", "true"); 
}

 

 

 

참고

https://earth-95.tistory.com/117