
S3 정적 호스팅( Static Hosting )
。S3 Bucket을 사용해서 정적컨텐츠를호스팅하는 기능
▶ 주로React를 구성하는정적 파일을AWS S3 Bucket에 저장하여 서비스
。정적 웹 사이트 호스팅이활성화된 경우외부에서버킷으로 접근가능한엔드포인트가 노출.
。S3은웹사이트의정적 파일 호스팅용도로 자주 사용.
▶프론트엔드 빌드파일을AWS S3 버킷에 저장 후배포
。React등의웹 정적 컨텐츠를호스팅하는 경우 자체적으로도메인 주소 설정/HTTPS 설정이 불가능
▶Route53 / CloudFront와 연동하여주소 변경및HTTPS를 구현할 수 있음.
。웹 정적 호스팅시DNS설정을 위한Route53 Record와 연결 시버킷명과도메인주소명이 동일해야한다.
S3 정적 호스팅특징
고가용성 / 장애 내구성확보
。S3 서비스자체는 이미고가용성 / 장애 내구성이 확보됨
Serverless
。별도 서버없이S3 Bucket을웹 서버처럼 활용
▶서버의잉여자원없이 사용한 만큼만비용을 지불이 가능
。별도 서버없이웹서버를호스팅가능
S3 버킷의정적 호스팅
。S3 버킷의정적 호스팅기능 활성화 및 내부에정적 컨텐츠를 작성 후업로드
▶ 이후정적 호스팅 주소로 접근하여웹사이트 구동확인
Amazon S3 -> 버킷에서S3 버킷생성
。정적 컨텐츠를 외부익명 사용자에게 공개해야하므로,퍼블릭 액세스 차단해제
▶ 따로외부에서 접근할 수 있도록 추가적으로버킷 정책을 통해퍼블릭 액세스를 허용해야한다.{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::[버킷명]/*" } ] }▶
모든 사용자에게 해당버킷에 접근 시 내부객체 조회를 허용
S3 버킷에정적 웹 사이트 호스팅허용하기
。Amazon S3 -> 버킷 -> 속성 -> 정적 웹 사이트 호스팅 편집에서정적 웹 사이트 호스팅 활성화하기
▶인덱스 문서를 설정해서웹 사이트의기본 페이지를 지정
。이후활성화된 경우 다음처럼버킷 웹 사이트 엔드포인트를 통해S3 버킷에 접근 가능
▶브라우저가엔드포인트로 접근 시 해당S3 버킷내정적 웹 컨텐츠 파일(React 프로젝트등 )을 기반으로브라우저에렌더링
- 해당
S3 버킷에정적 컨텐츠를업로드하기
。해당버킷내프론트엔드 프로젝트와 관련된정적 웹 컨텐츠 파일(HTML / CSS / JS)을업로드
정적 호스팅의엔드포인트로 접근 시 다음처럼호스팅중인S3 버킷내객체를 조회
。해당S3 버킷이호스팅중인정적 컨텐츠를 기반으로브라우저로렌더링한웹사이트가 도출
。S3 버킷에서정적 호스팅중인웹 사이트는엔드포인트를 통해외부 익명사용자에 의해 접근 가능
▶ 추가적으로 해당S3 버킷의정적 호스팅 엔드포인트에 대해DNS와HTTPS를 적용하기 위해서는CloudFront와Route53을 사용