본문 바로가기
AWS

S3 URL 접근 방식

by RyanGomdoriPooh 2016. 11. 29.

이번에 S3를 이용해서 업로드한 이미지를 얻어오려고 했습니다.


S3에 올린 Contents를 사용하기 위해서 접근해보니까 두가지의 URL 방식이 있었습니다.


두 가지 URL이 있었는데 이 URL을 가지고 버킷에 접근을 합니다.


S3는 RESTful 아키텍처를 지원합니다. 무슨 이야기인가 하면 이미지를 불러올 수 있는 고유한 URI를 연결해놓으면,


URI를 호출해서 이미지를 불러올 수 있게 해주는 것입니다.



Amazon S3는 URI 형식으로 불러오는 방식을 두 가지로 지원합니다.


1) 가상 호스팅 방식 URL


2) 경로 방식 URL



1) 가상 호스팅 방식 URL에서 버킷 이름이 도메인 이름의 일부로 들어갑니다.


ex) https://[bucket name].s3-[aws-region].amazonaws.com


2) 경로 방식 URL에서 버킷 이름은 resource path로 들어갑니다.


ex) https://s3.[aws-region].amazonaws.com/[bucket name]



* 두 방식의 차이점

두 방식을 어떤 경우에 사용하는 가를 알아야합니다.


S3는 모든 리전에서 버킷 액세스에 대해 1) 가상 호스팅 방식 2) 경로 방식 액세스 를 지원합니다.


하지만 차이점은 2) 경로 방식 액세스를 사용할 경우 버킷에 엑세스할 때 리전별로 다른 엔드포인트를 사용해야합니다.


예를 들면, 아시아(서울) 에 mybucket이라는 버킷을 생성하고 파일명이 puppy.jpg이면,


* 참고 : 서울 리전 표기 방식 (ap-northeast-2)입니다.


올바른 URI 사용은 https://s3.ap-northeast-2.amazonaws.com/mybucket/puppy.jpg 입니다.



여기까지 S3 URL 접근 방식이었습니다.


댓글3

  • aws 공부중 2021.05.01 19:37

    1번 방식에서 ex)https://[bucket name].s3-[aws-region].amazonaws.com

    aws-region 이 자동으로 변경되는 일은 없죠?
    답글

    • 안녕하세요.
      가상호스팅 방식으로 사용하는 것과 관계없이 리전에 대한 표기는 지금까지 변경된 적은 없구요.
      앞으로 바뀔 지에 대해서는 저도 잘 모르겠네요.
      아마 안바뀔거라고 생각됩니다.
      https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
      참고하시면 좋을 것 같네요.

  • kkk 2021.10.04 22:03

    안녕하세요. 안드로이드에서 개발중인데 s3에 올라온 이미지와 텍스트를 불러와야하는데 url을 이용해서 glide에서 개발하고있습니다.
    하지만 일일이 이미지의 url을 복붙할수는 없어서 그러는데 s3의 url을 얻어오는 법이 있을까요?
    답글