AWS

S3 버킷 개념과 버킷 정책 만들어보기, S3로 웹사이트 호스팅해보기

S_N_Y 2024. 3. 5. 03:30

 

S3를 이용해보기 전에 S3를 언제 쓰는지 짚고 넘어가보자

...

#0 S3는 언제쓸까?🤷 - 버킷이란

 

1. 백업과 저장소로 활용되는데 파일을 저장할 수 있고 디스크 역할도 한다.

2. 또한 재해복구를 위해 한 region 안에 있는 데이터를 옮겨야할 수도 있다.

3. 저렴하게 보관용으로도 쓰이기도 하며(아카이브에 두었다가 나중에 쓸 수도 있다..!)

4. 온프레미스 스토리지를 쓰고 있는데 클라우드로 확장하고 싶으면 사용할 수 있다.

5. 어플리케이션, 미디어 즉 비디오 파일이나 이미지 같은걸 호스팅할 수 있다.

6. 또 소프트웨어 업데이트용으로나 정적 웹사이트 호스팅을 위해서도 사용된다.

7. 마지막으로 빅데이터 분석을 위해 큰 용량의 데이터를 저장하기 위한 데이터 레이크를 만들 수 있다.

...

그렇다면 S3는 파일을 어디에 저장할까? => 버킷의 개념 등장🗑️🌠

 

<S3 Buckets(버킷 🗑️ )>

S3는 파일을 버킷에 저장하는데 버킷은 최상위 디렉토리같은 것이라고 보면 된다.

S3 버킷에 저장되는 파일을 '오브젝트'라고 부른다..! 나중에 만들 때 깨닫겠지만 이 버킷들은 사용자 계정 안에서 생성되어지게 되는데 버킷의 이름은 서비스 전역적으로 고유한 유니크 이름이어야만 만들 수 있다.

+) 헷갈리는 부분 : 버킷은 region 단위로 정의가 되는데 S3가 이름 짓는 거 때문에 전역적인 서비스같아보이지만 버킷은 특정 region 안에서 생성된다.

버킷 이름을 지을 때 글자, 숫자, 하이픈만 입력하면 뭐든 괜찮다.

 

#1 버킷 만들기 🌈🗑️

우리가 생성한 버킷은 단 하나의 region에만 위치한다. 

버킷 이름은 AWS 전체 서비스 내에서 절대 겹치치 않는 유니크한 이름을 지어야 한다.

 

일단 다 default로 세팅되어 있는 값으로 버킷을 만들건데 버킷에 들어있는 이미지나 파일을 퍼블릭으로 공개하고 싶으면 여기서 체크를 풀어도되고 일단 차단되어있는 채로 만들었다가 풀어도 좋다!

 

파란색 줄 url로 접근하려고 하면 접근이 거절되고 노란색 체크 표시 되어있는 열기를 누르면

아래처럼 내가 올린 파일이 웹 브라우저상에 보이는데

url을 보면 url이 엄첨엄청 긴 것을 볼 수 있다. 개인이 확인하는 용으로 AWS가 프라이빗하게 열어놓은 url이기 때문에 다른 사람은 확인이 불가능하다. (나중에 이미지를 퍼블릭으로 오픈하면 다른 사람도 해당 이미지를 볼 수 있다)

 

#2 버킷 정책 만들기 📜 - 이미지 퍼블릭으로 공개해보기

 

퍼블릭 액세스 차단에서 편집 클릭
체크되어있던 체크 표시 비활성화

이걸 해제할 때는 반드시 버킷 정책을 퍼블릭으로 설정하는 게 확실할 때에만 체크박스를 풀어주는 것 명심해야 한다.

( 실수로라도 회사의 중요한 데이터가 유출될 수도 있기 때문에..!)

 

<버킷 정책 만들기>

현재에는 아무것도 없는 정책 ->  편집 클릭
정책 생성기를 통해 편하게 JSON으로 변환시키기

1. S3 버킷 정책을 만들기 설정

2. 보안 정책엔 '*' 를 입력해야 모두가 접근할 수 있다.

3. 버킷에 있는 오브젝트를 읽을 것이니 GetObject 클릭

4. 아마존 리소스 이름은 반드시 버킷 이름을 슬래시(/)를 붙이고 아마존 버킷 ARN이름을 복사한다.

예)  /arn:aws:s3:::hellomybuckets/* => /* 의미 :

이 액션, GetObject 액션이 적용되는 오브젝트는 버킷 안에 있는 오브젝트 경로는 슬래시 다음에 있고 별표가 버킷 내 모든 오브젝트를 의미한다.

만들기를 누르면 이런 식으로 만들어지는데 자신이 만든 JSON형태의 정책을 그대로 복사하여 버킷 정책에 붙여넣기 하면 된다!

 

#3 이미지를 정적 웹 사이트로 호스팅해보기🛜

S3에 업로드한 이미지 컨텐츠를 정적 웹사이트로 호스팅해보겠다💁

아직 정적 웹 사이트 호스팅이 비활성화된 상태

'정적 웹 사이트 호스팅'은 '비활성화'에서 '활성화'로 바꿔주고 '인덱스 문서'는 호스팅했을 때 보이는 홈 페이지 화면을 세팅해줘야 하는데 내가 홈 페이지로 보여지고 싶은 html 파일을 업로드해주고 변경사항을 저장해주면 해당 url이 웹 브라우저 상에서 호스팅 된 것을 확인할 수 있다.

+) 이미지 상에서도 나왔지만 S3에 올라와있는 모든 콘텐츠들을 전부 읽기가 가능한 상태로 설정해야 한다..! 명심해두자

 

✅짤막한 개념 정리

액세스 키는 AWS CLI 또는 AWS API에 대한 프로그래밍 방식 요청에 서명하는 데 사용된다.

버킷 정책은 Amazon S3 리소스에 권한을 부여하기 위한 JSON 문서이다.

수명 주기 규칙을 사용하여 S3 객체를 다른 스토리지 클래스로 전환해야 하는 시점 또는 일정 시간 후 객체를 삭제해야 하는 시점을 정의할 수 있다.

Amazon S3 Standard-Infrequent Access로 자주 액세스하지 않는 데이터를 저장하고 필요할 때 신속하게 액세스할 수 있으며 내구성이 높으며 재해 발생 시 데이터 손실을 방지하기 위해 여러 가용 영역에 저장됩니다. 재해 복구, 백업 등을 위해 데이터를 저장하는 데 사용할 수 있다.