배포를 할 때마다 구글링한 글을 더듬거리며 한다.
이번에 또 배포를 하는데, EC2와 S3 중 어떤 걸로 해야할지 고민이 되었다.
1. EC2와 S3가 무슨 차이가 있는지 궁금하기도 하고,
2. S3와 같이 활용하는 CloudFront 가 어떤 면에서 도움이 되는지 알아보기 위해 공부해 보았다.
배포 과정 자체는 구글에 검색하면 상위에 나오는 이 사이트를 참고했었다.
예외적인 부분까지 정리가 잘 되어있는 글이다.
https://42place.innovationacademy.kr/archives/9784
EC2와 S3.
EC2 "Elastic Compute Cloud" 는 AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버 개념이다.
간단히 말해, 적은 노력을 통해 클라우드에서 서버를 돌릴 수 있게 해주는 서비스.
EC2의 특징은 아래와 같다.
- 자동 스케일링 그룹의 존재.
EC2 인스턴스에는 자동 스케일링 그룹이 있다.
예컨데 사용자가 몰려서 가상환경의 CPU, RAM이 한계에 도달하고 더 많은 리소스를 필요로 하게 되는 상황이 왔을때,
EC2는 서버 과부하로 사용자들이 에러를 경험하기 전에 부족한 리소스를 유연하게 늘려준다.
- 또한 EC2는 인스턴스들 간에 메모리 사용을 공유하지 않는다. 때문에 한 인스턴스가 과부하 되고 있는 상황이라도 다른 인스턴스에 영향을 미치지 않는 안전성을 제공한다.
- EC2는 실행중일 때만 데이터를 유지한다. 그래서 AWS는 EC2 인스턴스를 더 오래 사용할 수 있도록 Amazon Elastic Block Store(EBS)와 백업을 위해 Amazon S3을 제공한다.
S3는 "Simple Storage Service" 의 약자이다.
S3는 클라우드 공간에 데이터(파일)를 저장하고 사용자에게 제공해 주는 온라인 스토리지 웹 서비스.
정적인 데이터 저장과 데이터 백업에 최적화 되어있다.
- S3는 객체(Object - key : value)라는 기본 단위로 조작
- S3를 이용함으로서, 사용자들은 언제, 어디, 어떤 디바이스에서도 자료를 찾아오고, 저장하고 백업할 수 있다.
- S3는 확장 가능하고, 안전하고, 쉽고 심플한 아마존 S3 console 안의 웹베이스 인터페이스이다.
둘을 분류해보자면, EC2는 클라우드 호스팅 서비스 , S3는 클라우드 스토리지 서비스로 분류가 가능하다.
둘은 다르게 분류되지만, 공통점이 많고 비슷한 용도로, 혹은 서로를 보완하며 함께 사용되기도 하기 때문에
특별하게 언제 어떤 서비스를 사용할 지에 대해 명확한 기준을 찾기 어려웠다.
그럼에도 나눠보자면
EC2의 경우 하나의 작은 컴퓨터이고, S3는 저장소이다.
S3는 사용하기 편리하고 심플한 반면, 복잡한 데이터, server-side session data와 같은 동적인 데이터를 저장 하기에는 알맞지 않다.
그럴 때는 EC2를 사용하면 좋다. 다만 EC2는 실행중일 때만 데이터를 유지 하기 때문에 백업하기 위해 EBS나 S3를 보완책으로 이용해야 하는 점이 있다는 것.
내 경우에는 프론트엔드 배포를 위해 사용하였고 S3를 사용했다.
S3를 사용하려고 하면 CloundFront를 제안받는다.
CloudFront?
CloudFront는 CDN서비스이다.
CDN은 간단히 말하면 콘텐츠는 지리적으로 사용자와 가까운 CDN 서버에 저장되며 컴퓨터에 훨씬 빨리 도달할수 있게 하는 것이다.
클라이언트 - CDN서버 - 서버
CloudFront는 추가로 CDN기능을 넘어서 안전하게 웹사이트를 전송할 수 있게 해준다.
(HTTP → HTTPS : 손쉬운 설정으로 http 로의 접속을 https로 리디렉션 시켜줄 수 있습니다)
https://www.cloudzero.com/blog/ecs-vs-ec2
https://stackshare.io/stackups/amazon-ec2-vs-amazon-s3
'Frontend Study - 2 > 배포' 카테고리의 다른 글
AWS : EC2 프론트 배포 따라하기 (4) | 2022.08.14 |
---|