S3 사용을 위해
build.gradle에
// AWS S3 사용을 위한 의존성 주입
implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-aws', version: '2.2.6.RELEASE'
이 의존성을 추가해준 후,
애플리케이션 로딩 시
2023-05-17 14:20:07.417 WARN 14680 --- [ main] com.amazonaws.util.EC2MetadataUtils : Unable to retrieve the requested metadata (/latest/meta-data/instance-id). Failed to connect to service endpoint:
com.amazonaws.SdkClientException: Failed to connect to service endpoint:
at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:100) ~[aws-java-sdk-core-1.11.792.jar:na]
(생략)
Caused by: java.net.SocketTimeoutException: connect timed out
at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method) ~[na:na]
위와 같은 오류가 발생하였다 ..
해당 오류는 InstanceMetadataServiceResourceFetcher 클래스의 readResource를 호출하면서 발생한 에러다. 서비스의 endpoint를 연결하지 못해 발생하는 에러인데, 이건 EC2의 메타데이터를 읽다가 발생하는 에러로써, EC2인스턴스가 아닌 곳에서는 의미가 없는 에러다.
게다가 에러 문구만 뜨는것이 아니라 애플리케이션 로딩 시마다 aws 환경에 연결하기 위해 계속 로딩이 지연되는 현상이 발생한다 ... 애플리케이션 실행하는 것에는 문제는 없지만, 로컬 환경에서는 필요 없는 것이므로 지워보자 !

대략 11~12초라는 긴 시간이 걸린다 ..ㅜㅜ
IntelliJ 기준, Run - Edit Configurations 로 들어가

VM options 에 아래와 같이 추가한다.
만약 VM options 칸이 보이지 않을 경우, Modify options 를 클릭해 add VM options를 클릭하면 칸이 생긴다.
-Dcom.amazonaws.sdk.disableEc2Metadata=true
OK를 누르면 설정 끝 !
이제 다시 애플리케이션을 실행해보자.
2023-05-17 14:29:50.896 WARN 33388 --- [ main] com.amazonaws.util.EC2MetadataUtils : Unable to retrieve the requested metadata (/latest/meta-data/instance-id). EC2 Instance Metadata Service is disabled
com.amazonaws.AmazonClientException: EC2 Instance Metadata Service is disabled
의도한대로 "EC2 Instance Metadata Service is disabled" 라는 문구를 볼 수 있다.
