ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클라우드 스토리지 파일 호스팅
    클래스/초급 2022. 3. 6. 17:57
    728x90

    Amazon S3

    이전 글에서 클라우드 스토리지를 만들고 파일을 업로드하는 것까지 알아보았다.

    그럼 파일 업로드가 가능한 클라우드 스토리지가 왜 필요할까?

    간단한 예를 들면 사용자가 어떤 사이트에 가입하고 자신의 프로필 이미지를 업로드한다.

    그러면 프로필 이미지가 업로드 한 이미지로 바뀌는 것이다.

    업로드한 프로필 이미지를 보여줄 수 있어야 한다.

     

    업로드한 이미지를 보여줄 수 있는 방법은 

    URL을 호출하면 이미지가 노출되면 되고 해당 URL을 IMG 태그에 넣어주면 된다.

     

    아래 URL은 아마존 사이트에서 제공하고 있는 이미지의 URL이다.

    https://d1.awsstatic.com/s3-pdp-redesign/product-page-diagram_Amazon-S3_HIW.cf4c2bd7aa02f1fe77be8aa120393993e08ac86d.png

     

    그럼 Html의 img 태그를 사용하여 해당 이미지를 사이트에서 노출할 수 있다.

    <img src="https://d1.awsstatic.com/s3-pdp-redesign/product-page-diagram_Amazon-S3_HIW.cf4c2bd7aa02f1fe77be8aa120393993e08ac86d.png">

     

    결론적으로 클라우드 스토리지에 업로드한 이미지에 대한 Url을 알 수 있으면 쉽게 이미지를 노출할 수 있다.

    이 기능을 파일 호스팅 기능이라고 한다.

    만약에 클라우드 스토리지 없이 이 기능을 만들려면 이미지를 디스크에 업로드하고 이미지를 읽어서 URL을 제공할 수 있는 

    웹서버가 필요하고 웹서버에는 웹에서 접속할 수 있는 공인 아이피나 도메인이 연결되어 있어야 외부에서 접속할 수 있다.

    근데 클라우드 세상에서는 클라우드가 다 제공해준다. 클라우드 스토리지인 S3에서 이 기능을 어떻게 사용하는지 알아보자.

     

    버킷에 업로드 된 이미지

    버킷에 업로드한 이미지 리스트에서 이미지명을 클릭한다.

     

    이미지 정보

    업로드된 이미지의 정보를 볼 수 있다. 정보들 중에 객체 URL 이 있다.

    객체 URL이 사이트에서 이미지를 노출할 수 있는 이미지의 URL이라고 생각하면 된다.

    그럼 복사해서 브라우저에서 정말 이미지가 노출되는지 보자.

     

    브라우저에서 이미지 호출

    근데 업로드된 이미지는 보이지 않고 이상한 XML 형태의 문서가 보인다.

    거기 자세히 보면 Access Denied라는 메시지가 보인다. 에러 메시지인 것 같다.

    접근에 대한 부분인 것을 보니 예상해 보건데 권한 문제인 것 같다.

     

    객체 - 권한

     

    파일의 속성 부분 말고 권한 부분이 탭으로 존재한다.

    권한 부분을 파악해보니 객체의 읽기 쓰기 권한을 파악할 수 있다.

    브라우저에서 파일에 접근하려면 읽기 권한이 있어야 할 것으로 보인다.

    그런데 읽기 권한은 객체 소유자에게만 부여되어 있다. 

    파일을 브라우저에서 호출해서 보기 위해서는 객체 소유자가 아닌 모든 사람에게 읽기 권한이 있어야 한다.

    그래서 파일의 읽기 권한을 모든 사람에게 부여하면 브라우저에서 보기가 가능하다.

    근데 버튼은 막혀있고 이 화면에서는 고칠 수가 없다.

    클라우드 스토리지의 파일에 대한 권한을 주려면 버킷에 먼저 해당 권한이 부여되어 있어야 한다. 

    한마디로 버킷이 파일의 부모 개념이라고 생각하면 된다. 

     

    버킷 - 권한

    역시 버킷에 권한 중에 모든 퍼블릭 액세스 차단이 활성화되어있다.

    해당 권한을 비활성화하면 된다.

     

    퍼블릭 엑세스 차단

    편집 버튼을 클릭하여 보면 모든 퍼블릭 액세스 차단 체크박스가 체크되어 있는데 이 체크박스를 풀어주고 저장해준다.

     

    버킷 - 퍼블릭 엑세스 차단 해제

    그럼 모든 퍼블릭 액세스 차단 비활성으로 바뀐다.

     

    객체 소유권

    그리고 객체 소유권도 변경해야 한다.

     

    버킷 - 객체 소유권 편집

    버킷의 객체 소유권이 ACL 비활성화됨이 되어있다.

    ACL(AccessControlList)를 활성화해야 객체(파일)에 대한 액세스를 조절할 수 있다.

     

    버킷 - 객체 소유권 편집

    ACL 활성화됨을 선택하고 

    "ACL이 복원된다는 것을 확인합니다."에 체크한다. 이 문구의 의미는 ACL을 활성화하면 그전에 설정한 내용이 비활성화된다는 뜻이다.

    변경사항 저장 버튼을 클릭한다.

     

    객체 - 권한

    다시 파일 권한 화면으로 돌아오면 이전에 비활성화되어있던 편집 버튼이 활성화된다.

    이제 모든 사람에게 읽기 권한을 부여하기만 하면 된다.

     

    객체 - 엑세스 제어목록 편집

    이제 이 설정만 하면 이미지 파일을 브라우저에서 볼 수 있다.

    모든 사람에게 읽기 권한 체크박스를 체크하고, 

    "이러한 변경 사항이 이 객체에 미치는 영향을 이해합니다." 부분의 체크박스도 체크한다.

    AWS에서는 변경사항이 중요한 영향을 미칠 수 있다는 것을 알리기 위해 이런 방법을 사용한다.

    그리고 저장을 하고 다시 브라우저에서 파일 URL을 호출하면 된다.

     

    브라우저에서 이미지 호출

    그럼 이렇게 이미지가 잘 노출되는 것을 볼 수 있다.

    728x90

    '클래스 > 초급' 카테고리의 다른 글

    명령줄 인터페이스  (0) 2022.03.11
    비싼 클라우드 프리티어로 이용하기  (0) 2022.03.07
    클라우드 스토리지 사용해보기  (0) 2022.03.03
    인스턴스 고정 IP 지정  (0) 2022.02.23
    인스턴스 정보  (0) 2022.02.22
Designed by Tistory.