Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

공부하는 블로그

AWS 관련 기능 로컬에서 테스트 할 때 지역을 못 찾는 경우 본문

트러블슈팅

AWS 관련 기능 로컬에서 테스트 할 때 지역을 못 찾는 경우

동성만능크리너 2024. 10. 10. 19:54

AWS S3을 이용해서 프로필 이미지 업로드 관련 기능을 구현하려고 하던 중, 자꾸 Region을 못 찾겠다는 메세지를 뱉어냈다. 

SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.

 

분명 Bean을 등록할 때 Region을 함께 설정해줬는데 말이다.. 

@Bean
    public S3Client s3Client() {
        AwsBasicCredentials awsBasicCredentials = AwsBasicCredentials.create(accessKey, secretKey);

        return S3Client.builder()
                .region(Region.US_EAST_1)
                .credentialsProvider(StaticCredentialsProvider.create(awsBasicCredentials))
                .build();
    }

 

디버그를 찍어보니 SystemSettingsRegionProvider가 비어있었다. 

 

EC2 인스턴스에 등록돼있는 메타데이터에서 region값을 빼오려고 하는 모양인데 지금은 EC2 환경이 아닌 로컬 환경에서 개발중이라 찾지 못하는 모양이다. 그러고나서 Powershell에서 $env:AWS_REGION="us-east-1" 이런 식으로 환경변수를 추가해서 Get-ChildItem Env:해서 추가된 것을 확인하고 다시 어플리케이션을 재시작하고 해봤지만, 이번에도 환경변수를 가져오지 못했다.

 

찾아보니 이런 식으로 추가한 환경 변수는 현재 PowerShell 세션에서만 유효하기 때문에 PowerShell에서 Env를 세팅하고 애플리케이션을 실행한 게 아니라 PowerShell에서만 추가하고 IntelliJ를 통해서 실행했기 때문에 환경 변수가 제대로 등록이 안 됐던 것 같다. 

 

 

마지막으로 시스템 설정에서 시스템 변수로 추가해서 IntelliJ를 완전 재시작하고 애플리케이션을 구동시켜보니 이제서야 잘 작동이 된다. 

 

 

 

이제 다음은 '미리 서명된 URL' 에 내 AWS ACCESS ID,버킷 이름, 해당 객체 Key가 다 들어있는 문제를 해결해봐야겠다.. 

'트러블슈팅' 카테고리의 다른 글

필터가 중복되는 문제 해결  (0) 2025.02.21
DB 인덱스는 만능일까?  (0) 2024.10.18