흰 스타렉스에서 내가 내리지

S3 정적 호스팅 본문

AWS

S3 정적 호스팅

주씨. 2023. 9. 18. 23:43
728x90

# Static vs Dynamic Contents

 

> 정적 컨텐츠 (Static Contents)

- 서버에 저장된 파일이 모든 사용자에게 동일하게 전달되는 컨텐츠

- 매번 서버에 요청할 필요 없이 캐싱 가능

- HTML/Javascript 등으로 구성

- 예 : 이미지, 글 뉴스 등 

 

> 동적 컨텐츠 (Dynamic Contents)

- 시간, 사용자, 입력 등에 따라 내용이 변경되는 컨텐츠

- 매번 서버에 요청하여 내용을 구성하고 전달받아야 함

- PHP, JSP, ASP.net 등으로 서버 처리

- 예 : 로그인이 필요한 내용, 게시판, 댓글 등

 

 

# Amazon S3 Static Hosting

- S3를 사용해서 정적(static) 웹 컨텐츠를 호스팅하는 기능

- 별도의 서버 없이 웹사이트 호스팅 가능

- 고가용성/장애 내구성을 확보

- 사용 사례 : 대규모 접속이 예상되는 사전 예약 페이지, 홍보 페이지, 회사 웹사이트 등 

 

 

# Amazon S3 Static Hosting 과 권한

- 정적 웹 호스팅을 public으로 공개할 경우 : 불특정 다수에게 허용되는 권한 부여 필요

- 불특정 다수가 접속할 수 있는 권한을 확보하려면 

    - S3 Block Public Access 해제 필요

    - Bucket Policy에서 정책 허용 필요 

 

 

# Amazon S3 Static Hosting의 활용

- Route53에서 보유한 도메인으로 연결 가능

    - 단 버킷 명 = 호스팅 주소여야 가능 

    - 예 : test.example.com 으로 호스팅하고 싶다면, 버킷명도 "test.example.com" 필요

- 실전에서는 CloudFront와 연동하여 주로 사용 

 

# Amazon CloudFront와 연동

- 일반적으로 HTTPS 프로토콜 구현을 위해서는 CloudFront와 연동 필요 

    - ACM을 통한 SSL 키 관리가 가장 편함 

    - 보통 Public Hosting의 활성화 대신 그대로 Private 모드로 두고 OAI/OAC 등을 활용해서 보안 강화

 

 

# 아키텍처 (CloudFront)

 

 

 

# 실습

- S3 버킷의 정적 호스팅 기능 활성화하기

- 퍼블릭에 공개할 수 있는 권한 및 설정 적용

- S3 버킷에 샘플 static 웹사이트 파일을 작성해서 업로드하기

- S3 정적 호스팅 웹 주소를 사용해 웹사이트 동작 확인하기 

 

 

1. 버킷 생성

버킷이름은 Route53 도메인과 똑같이 한다. (api.mydomain.com)

Route53에 mydomain.com 만 등록해 놓고 나중에 엔드포인트가 나왔을 때 서브도메인으로 api. 를 붙일 수 있다. 

> 퍼블릭 액세스 차단 체크 해제

> 버킷 만들기

 

> 속성 > 정적 웹 사이트 호스팅 

 

> 권한 > 버킷 정책 편집

>

> 이제 S3 버킷에 '퍼블릭 액세스 가능'이라고 떠야함

 

> 웹 사이트 파일 버킷에 업로드 

> 속성 탭에서 쭉 내리면 정적 웹 사이트 호스팅에 엔드포인트가 있음 

> 접속 가능

 

 

> Route53

> 도메인 > 레코드 생성 > 버킷 명과 일치하는 서브도메인 입력 

> 별칭 > "S3 웹 사이트 엔드포인트에 대한 별칭" > 우리 버킷 엔드포인트 선택

> 연결 완료 > only http

 

> https 는 알아서 따로

 

 

'AWS' 카테고리의 다른 글

이벤트 기반 아키텍처, Lambda - S3 연결 예제  (0) 2023.09.20
디커플링, SQS, SNS  (0) 2023.09.20
Amazon S3 권한 관리  (0) 2023.09.18
Elastic Load Balancer (ELB)  (0) 2023.09.11
EC2 Autoscaling(오토스케일링)  (0) 2023.09.11