1. Amazon S3와 Amazon CloudFront

 

서버리스 정적 웹 사이트 호스팅 = Amazon S3 활용성능 가속화 = Amazon CloudFront 활용

 

서버리스 정적 웹 사이트 호스팅이란?

서버리스란? 서버리스는 클라우드 컴퓨팅의 모델 중 하나로 사용자가 서버를 직접 관리할 필요가 없는 것이다.

서버(저장하는 공간)가 없다는 것은 아니다. 서버는 반드시 필요한데 사용자가 서버의 가용성을 관리할 필요가 없다는 것이다.

 

Amazon S3란? 서버 측 처리 또는 db 기능이 필요하지 않은 웹사이트인 정적 웹사이트를 호스팅하는데 사용할 수 있다.

 

 

 

 

Amazon CloudFront란?  AWS에서 제공하는 콘텐츠 전송 네트워크(CDN)이다. 오리진 서버(S3 등)가 있다. 하지만 서버로 부터 이미지 로딩 속도가 느릴 수 있다.이러한 문제를 해결하기 위해 정적인 콘텐츠를 더욱 빠르게 배포하기 위한 것을  찾기 시작햇다.그 주변에 전 세계 Edge Server(Location)을 두고 클라이언트에 가장 가까운 Edge Server를 찾아 Latency를 최소화시켜 빠른 데이터를 제공한다.즉, 유저 -> AmazonS3를 바로 접근하는게 아니라유저 -> amazon cloudfront(빠르게 배포) -> AmazonS3 하여 속도를 향상시키는 것이다.

 

 

 

2. 구성

 

유저 <-> 인터넷 <-> cloudfront(캐싱) <- > S3

 

 

S3 버켓에 html 파일, 그림, 동영상과 같은 콘텐츠를 업로드하고 저장해서 정적 웹사이트 호스팅 기능을 설정하게 되면 웹사이트 처럼 작동할 수 있도록 구성한다.
S3만으로도 버킷에 저장되어 있는 콘텐츠들을 통해서 웹포스팅이 가능하지만 콘텐츠가 저장된 서버가 멀리 떨어져 있거나 콘텐츠의 크기가 크면 그만큼 로딩이 지연된 현상이 발생할 수 있다.

이를 개선하는것이 바로 AWS의 콘텐츠 전송 네트워크 Amazon CloudFront이다.

S3의 컨텐츠들은 전 세계의 cloudfront에 캐싱 서버에 저장이 되고 사용자의 요청이 있을 때 사용자와 가까운 캐싱 서버로부터 콘텐츠가 제공되어 빠르게 전달 가능하다.

 

 

 

 

3. 순서

S3 버킷 생성 및 정적 웹사이트 호스팅 순서

 

1. S3 버킷을 만든다.

2. S3 버킷에 업로드한 오브젝트 즉 파일들을 이용해서 웹사이트를 호스팅한다.

- html 파일과 jpg 파일 업로드

3. 그리고 정적 웹사이트를 호스팅하기 위해서 S3 버킷의 정적 웹사이트 호스팅 기능을 활성화한다.

4. S3 버킷의 콘텐츠로 웹페이지를 로드할 수 있도록 버킷과 오브젝트에 대한 액세스 정책을 설정한다.

5. 마지막으로 웹브라우저에서 정상적으로 웹사이트가 작동하는지 테스트한다.

 

 

클라우드 프론트를 통한 웹사이트 성능 가속화 순서

1. S3 버킷의 콘텐츠를 배포할 수 있도록 Origin, Cache Behavior 등을 설정하여 클라우드 프론트 디스트리뷰션을 생성한다.

2. 클라우드 프론트 디스트리뷰션의 URL을 이용하여 웹브라우저에서 정상적으로 S3 정적 웹사이트 호스팅과 동일한 웹사이트가 정상적으로 로드가 되는지 테스트한다.

3. 로드가 된 웹사이트의 콘텐츠 로딩 속도를 비교해서 실제로 웹사이트의 성능이 향상되는지 측정한다.

 

 

4. 실습

 

aws에서 s3를 검색해서 들어간 후  버킷생성을 누른다.

그리고 버킷을 생성해준다.

 

 

 

그리고 버킷에 파일을 업로드해준다.(html, jpg파일)

 

 

1. S3 버켓의 웹 호스팅 기능을 활성화하기(정적 웹사이트 호스팅)

 

S3 버킷 클릭하고 속성탭을 누른다.

 

 

 

맨 아래로 내리면 정적 웹사이트 호스팅 속성이 있다. 편집을 누른다.

호스팅을 활성화 상태로 바꾸어주고 저장을 누른다.

 

 

하단을 내려가보면 버킷 웹사이트 엔드 포인트가 있다.

바로 정적 웹사이트를 호스팅 할 수 있는 웹 주소인데 아직 웹사이트에서 웹페이지가 정상적으로 열리지 않는다.

 

 

 

그 이유는 웹hosting 기능은 활성화가 되었지만 외부 인터넷을 통한 사용자가 버켓 그리고 버켓에 있는 오브젝트 즉 파일에 액세스할 수 있는 권한이 아직 없기 때문이다.

 

 

 

 

 

 

2. 외부 인터넷을 통해 S3 버켓과 오브젝트의 퍼블릭하게 접속할 수 있도록 액세스 권한을 변경하

 

이번에는 상단 권한 탭에 들어간다.

 

퍼블릭 액세스 차단이 기본적으로 활성화되어 있는데 비활성화로 바꿔준다.

 

 

 

그럼 퍼블릭에서 접근할 수 있는 환경이 만들어진다.

퍼블릭에서의 액세스가 허용이 됐으면 버켓에 있는 오브젝트 파일을 읽을 수 있어야 유저가 웹브라우저에서 정상적으로 웹페이지를 열 수가 있다.

 

아래 버켓에 있는 오브젝트에 대한 정책을 생성을 해야한다.

편집을 누른다.

정책 생성기를 누른다.

 

정책을 생성해준다.

 

만든 정책을 복사붙여넣기 해주고 저장을 누르면 마무리된다.

 

 

그럼 아까 웹사이트가 정상적으로 보이는 것을 확인할 수 있다.

 

 

 

 

 

 

 

'자격증 > aws' 카테고리의 다른 글

1. EC2 Instance 접속을 위한 PuTTY 사용 방법  (0) 2024.02.15

+ Recent posts