정적 웹 사이트는 백엔드 처리 없이 static한 컨텐츠를 갖는다. 이러한 컨텐츠에는 HTML, CSS, JS, 이미지 등의 웹 사이트를 렌더링하는 데 필요한 모든 파일이 포함될 수 있다.
컨텐츠를 업로드하고 공개적인 액세스를 허용하여 AWS S3에 손쉽게 정적 웹 사이트를 호스팅할 수 있다. S3를 사용하면 서버가 따로 필요하지 않으며 웹 상 어디에서나 언제든지 원하는 양의 데이터를 저장하고 검색할 수 있다.
본 실습에서는 AWS S3 버킷에 static한 컨텐츠를 업로드하여 정적인 웹 사이트를 호스팅할 예정이다.
S3 버킷 이름은 전 세계에서 유일한 이름을 사용해야 한다. 그리고 본인이 사용할 리전을 잘 맞추어 설정해준다.
버킷에 대한 퍼블릭 액세스는 기본적으로 차단된다. 정적 웹 사이트의 파일은 인터넷을 통해 액세스할 수 있어야 하므로, 퍼블릭 액세스를 허용해야 한다.
위와 같은 설정을 잘 마쳤다면, 생성된 버킷을 아래와 같이 확인할 수 있을 것이다.
버킷의 속성 메뉴에 정적 웹 사이트 호스팅 설정이 있는데, 아래와 같이 설정을 진행해준다.
인덱스 문서와 오류 문서에는 예시에 나와있는 것과 같이 그대로 입력해 주어야 한다.
이후에 버킷에 html, css, js 등의 콘텐츠를 업로드해준다.
정적 웹 사이트 호스팅을 설정하면서 생성된 url을 통해 접속해본다. 현재 버킷 권한을 아직 구성하지 않았기 때문에 403 Forbidden 에러가 표시된다.
AWS S3의 객체를 퍼블릭으로 설정할 수 있는 방법에는 두 가지가 존재한다.
일반적으로 개별 객체를 퍼블릭으로 설정하면 실수로 다른 객체를 공개하는 일이 발생하지 않아 더 안전하다. 그러나 전체 버킷에 민감한 정보가 포함되지 않은 경우에는 버킷 정책을 사용해도 상관없다.
나는 본 실습에서 ACL을 사용하여 버킷의 개별 객체를 퍼블릭으로 설정하였다.
객체를 퍼블릭으로 설정한 이후에 정적 웹 사이트 url에 다시 접속해보자. 그럼 아래와 같이 퍼블릭으로 변경된 객체의 컨텐츠들이 적절하게 호스팅되어 표현되는 것을 확인할 수 있다.