2023년 09월 14일

1. AWS EC2 배포

AWS EC2는 웹 서버 구축 과정이 필요하고, 비용이 S3보다 더 높고, S3보다 많은 설정(운영체제, 보안그룹, 스케일링 관리 등)이 필요하다는 단점이 있지만 그에 따라 많은 제어 또한 가능하다는 장점이 있다. AWS EC2는 웹 서버가 구축되어 있기 때문에 SSR 프로젝트에 적합하다. EC2로 배포하게 된 후 사용자가 접속하면 EC2 인스턴스에 요청이 전달되고 EC2 인스턴스에서 요청을 처리(SSR)하여 HTML 생성 후 응답하게 된다.

2. AWS S3+Cloudfront 배포

AWS S3는 웹 서버 구축 과정이 필요없고 정적인 컨텐츠(build 결과물인 HTML, CSS, Javascript 번들 등)를 배포할 수 있다. EC2에 비해 비용이 상대적으로 저렴하고 배포도 간편하며 보통 AWS CDN 서비스인 Cloudfront(HTTPS 사용, 캐시, 빠른 데이터 제공 등을 위해 사용)와 함께 사용된다. S3로 배포할 프로젝트는 정적 웹페이지로 CSR를 사용하는 프로젝트에 적합하다. S3를 통해 배포한 서비스에 SSR을 구현하기 위해서는 추가적인 작업이 필요하다. S3로 배포하게 된 후 사용자가 접속하면 Cloudfront에 요청이 전달되고 캐시서버에 캐싱 된 데이터가 없다면 S3에 요청을 전달하여 개발자가 업로드한 빌드 결과물을 응답한다. 브라우저는 응답받은 결과물 중 js를 통해 렌더링한다. 그리고 사용자가 다시 접속하게 되면 Cloudfront 캐시서버에 캐싱 된 데이터를 활용하여 응답한다.

3. AWS Amplify 배포

AWS Amplify로 배포하게 되면 업로드 후, 빌드, 배포 과정을 거치기 때문에 SSR 적용이 가능하다.

4. 대표 프론트 배포 방법

(1) Nginx : 정적 콘텐츠를 배포하게 해준다.

(2) AWS EC2 : 웹 서버와 WAS 서버 배포가 가능하다.

(3) AWS S3 + Cloudfront : 정적 콘텐츠(프론트 서버)를 배포하게 해준다.

(4) AWS Amplify : 정적 콘텐츠(프론트 서버)를 배포하게 해줌. S3+ cloudfront 방법보다 간편하게 배포 가능하며 배포 자동화, 그리고 자동으로 S3와 Cloudfront가 구현된다.