AWS 가 제공하는 다양한 기능 중 Bucket 이란 기능이 있다.
버킷은 데이터를 저장하고 관리하기 위한 클라우드 스토리지 서비스이다.
파일, 이미지, 비디오 등 다양한 유형의 데이터를 객체로 저장할 수 있으며, 객체는 버킷 내에서 고유한 키로 식별된다. 버킷의 용량은 무제한에 가깝다.

버킷은 Amazon S3 에 들어가 만들 수 있다.

이 때 버킷의 이름은 중복될 수 없다.


준비된 css, png 파일과 index html 을 업로드했다.

정적 웹 사이트를 호스팅 하려면 버킷 - 속성 - 정적 웹 사이트 호스팅 을 활성화 해줘야 한다.

버킷 정책도 입력해줘야한다.
버킷 정책은 버킷 정책 생성기로 만들 수 있다.

그럼 요렇게 엔드포인트가 활성화된다 !
엔드포인트 링크를 열어보자

정상적으로 호스팅되는 것을 확인할 수 있다.
호스팅한 웹사이트 내용을 실수로 지우거나 덮어쓰는 것을 방지하기 위해 객체 버전 관리를 켜고 잘 작동하는지 확인해보겠다.
이때, 한 번 킨 버전 관리는 다시 끌 수 없으니 유의하자.
속성 - 버전 관리 - 활성화

그 다음 index.html을 편집하고 재업로드해보자.

다음과 원본이 보존되어 있는 것을 알 수 있다.
이제 업로드한 객체는 안전하게 보존된다.
버전을 올릴 때마다 버킷의 용량은 점점 증가할 것이다.
어떻게 구버전을 관리해야 비용을 최대한 아낄 수 있을까?
오래된 버전은 자동으로 S3 Standard-IA로 옮긴 뒤 나중에 삭제하는 정책을 만들어보겠다.
두 가지를 만들건데, 하나는 30일 주기가 지나면 S3 Standard-IA로 옮기는 정책, 또 하나는 365일 주기가 지나면 영구 삭제하는 정책이다.
관리 -> 수명주기 규칙 생성


이제 30일이 지난 파일은 S3 Standard-IA로 옮겨지고, 365일 지난 파일은 삭제될 것이다.
버전 관리를 통해 데이터를 보존함으로서 안전하게 백업했지만, 또 다른 백업 방법으로 교차 리전 복제가 있다. 교차 리전 복제는 기존 S3 버킷에서 다른 리전에 있는 S3 버킷으로 객체를 자동으로 복제하는 것을 말합니다. 이 기능은 데이터 복원력 강화, 지연 시간 감소, 재해 복구 전략 강화 등의 목적으로 사용된다. 

이전 버킷의 설정을 그대로 복사해 다른 리전의 새로운 버킷을 생성해준다.
이것은 소스 버킷(원본 버킷)을 복제할 대상 버킷이다.

소스 버킷으로 들어가자.
관리 -> 복제 규칙에 들어가 대상 버킷을 대상으로 복제 규칙을 생성해준다.

소스 버킷의 버전을 추가한 뒤 대상 버킷에도 똑같이 버전이 추가되었는지 확인해보자.

대상 버킷에도 안전하게 복제가 된다.
그렇다면 소스 버킷에서 버전을 삭제하면 대상 버킷에서도 삭제가 될까?
-> 삭제되지 않았다.
왜 추가는 복제가 되는데 삭제는 복제가 안될까?
버킷 복제는 기본적으로 실수를 비롯한 재해 복구를 지원하기 위한 정책인데, 삭제가 복제된다면 재해 복구의 의미가 떨어질 것이다. 따라서 소스 버킷에서 버전을 삭제한다 하더라도 복구 가능성을 열어놓기 위해 대상 버킷의 버전은 삭제되지 않는다.
이로써 정적 웹사이트를 호스팅하고, 실수로 인한 재해를 방지하기 위해 버전 관리와 백업을 구현하고, 버킷 용량도 최적화할 수 있는 방법에 대한 포스팅을 마친다.