여러가지/Docker & AWS

[섹션 1] 서버리스 정적 웹사이트 호스팅 및 성능 가속화

15June 2023. 11. 23. 20:37

개요

: 서버 없이 구성 가능한 정적 웹 사이트를 호스팅하고, 콘텐츠 전송 네트워크(CDN) 서비스를 이용하여 웹 사이트의 성능 향상

 

 

AWS 서비스

- Amazon S3 (Simple Storage Service)

- Amazon CloudFront

 

 

아키텍쳐 다이어그램

 

-> 웹 페이지 로딩 속도 테스트 및 비교하기 위해 Seoul 리전이 아닌, Virginia 리전 사용

 

ㄱ. S3: 클라우드 객체 스토리지, HTML, 그림, 동영상 저장

ㄴ. CDN(콘텐츠 전송 네트워크): 더 빠른 속도로 정적 및 동적 콘텐츠를 사용자에게 전송 가능하게 함

-> 캐싱 서버에 저장, 사용자와 가까운 캐싱 서버에서 사용자에게 웹 서비스 제공

 

 

구현 순서

 

ㄱ. S3 Bucket 생성 및 정적 웹사이트 호스팅

1) S3 Bucket 생성

2) Object(File, 웹 사이트) 업로드

- mycar.html

- car.jpg

3) 정적 웹 사이트 호스팅 기능 활성화

4) Bucket과 Object에 대한 액세스 정책 설정

5) 웹 브라우저에서 웹 사이트 작동 확인

 

ㄴ. CloudFront를 통한 웹사이트 성능 가속화

1) CloudFront Distribution 생성

- Origin, Cache behavior 등

2) 웹 브라우저에서 CloudFront Distribution 작동 확인

3) 웹 사이트 성능 테스트

- S3 정적 웹 사이트 호스팅을 통한 콘텐츠 로드 속도

- CloudFront를 통한 콘텐츠 로드 속도

 

 

● 구현

ㄱ. S3 Bucket 생성 및 정적 웹사이트 호스팅

1) S3 Bucket 생성

2) Object(File, 웹 사이트) 업로드

- mycar.html

- car.jpg

3) 정적 웹 사이트 호스팅 기능 활성화

lab-s3-web-hosting-june > 속성

 

-> 인덱스 문서 = 기본 페이지

-> 정적 웹 사이트 호스팅은 활성화 되었으나, 외부 인터넷을 통한 사용자에게 Bucker, Object에 접근할 수 있는 권한 아직 없기 때문

4) Bucket과 Object에 대한 액세스 정책 설정

a. lab-s3-web-hosting-june > 권한

b. 버킷 정책 편집 > 정책 생성기

Select Type of Policy: S3 Bucket Policy

Principal: *

Actions: Get Object

ARN: 버킷 ARN (붙여넣기)/*

> Add Statement > Generate Policy (복사)

 

5) 웹 브라우저에서 웹 사이트 작동 확인

http://lab-s3-web-hosting-june.s3-website-us-east-1.amazonaws.com (속성 > 정적 웹 사이트 호스팅)

 

ㄴ. CloudFront를 통한 웹사이트 성능 가속화

1) CloudFront Distribution 생성

- Origin, Cache behavior 등

2) 웹 브라우저에서 CloudFront Distribution 작동 확인

-> 배포 도메인 이름으로 웹 사이트 작동 확인

3) 웹 사이트 성능 테스트

< F12 > + 새로고침

- S3 정적 웹 사이트 호스팅을 통한 콘텐츠 로드 속도: 292ms

- CloudFront를 통한 콘텐츠 로드 속도: 105ms