[클라우드 서비스] 서버 기반 IaaS와 서버 리스 PaaS의 차이점(ft.Vercel, Render)

Posted by Space_Jin
2025. 5. 11. 15:10 Programming/DevOps
728x90
반응형

클라우드 서비스의 전통 적인 서비 기반 IaaS와 최근 사용이 증가하는 서비 리스 PaaS의 개념과 차이점을 알아봅시다.

 

✅ IaaS란?

사용자가 물리적인 서버를 소유하지 않고, 클라우드 제공업체가 제공하는 가상화된 서버, 스토리지, 네트워크 등 인프라 자원 서비스 형태로 빌려 쓰는 모델입니다.

✅ PaaS란?

Platform as a Service
→ “개발자가 직접 서버를 구축하거나 운영하지 않아도, 앱 실행에 필요한 플랫폼 환경을 클라우드 제공업체가 대신 제공하는 서비스”

 

✅ 요점

구분 개념 별칭
IaaS 인프라를 빌려서 직접 서버를 설치하고 운영 "서버 기반(Server-based)" 혹은 "전통적 가상 서버(VM)" 방식
PaaS 앱만 올리면 서버 환경은 자동 구성, 자동 확장 “서버리스(Serverless) 플랫폼”으로 불리기도 함

✅ 용어 정리 비교

구분 실행 단위 직접 관리 유무 일반적인 표현
IaaS VM (가상 머신) ✅ 예 Server-based / VM-based
PaaS 앱, 서비스 ❌ 아니요 Serverless-like PaaS
FaaS 함수 단위 Serverless (진짜 의미)


☁️ 클라우드 과금 모델 차이 요약

모델서버 항상 켜짐과금 기준예시
전통적 IaaS ✅ 예 (항상 실행 중) 시간 단위 과금 AWS EC2, GCP Compute Engine
서버리스 PaaS ❌ 요청 시에만 동작 사용량 기반 과금 Vercel, Render (무료), AWS Lambda
 

✅ Vercel의 과금 모델 (서버리스 방식)

Vercel은 “사용자가 요청을 보낼 때만” 백엔드(API Routes)가 동작하며, 그때 잠깐 서버가 켜지고 다시 꺼집니다.


과금은 다음 기준으로 계산됩니다

  • 빌드 시간 (코드 수정 후 배포하는 데 걸리는 시간)
  • API 요청 수 (백엔드 로직 사용 시)
  • 대역폭 (Bandwidth) (사용자에게 전송한 데이터 크기)

❗️ 서버가 24시간 켜져 있다고 과금되는 구조는 아닙니다.


✅ Render도 같은 원리지만 다소 다릅니다

Render는 기본적으로 “서버가 항상 떠 있는” Web Service를 무료로 제공하지만,
유휴(Idle) 상태가 일정 시간 지속되면 자동으로 슬립합니다.

  • 사용자가 다시 접속하면 서버가 다시 깨어남 → 10~30초 대기 발생
  • 이 방식으로도 비용이 절감됩니다


💸 간단한 예: 비용 차이 시뮬레이션

항목AWS EC2Vercel
하루 1,000명 방문 상시 서버 켜짐 → 최소 월 $10~$15 요청 시간에만 응답 → 무료 플랜 내 충분
트래픽 10GB/월 데이터 전송 요금 발생 Hobby 플랜 기준 100GB까지 무료
야간에도 서버 유지 ✅ 유지비 발생 ❌ 요청 없으면 아무 일도 없음


✅ 그래서 Vercel, Render의 철학은?

"서버는 필요할 때만 동작하고, 사용량만큼만 과금하자"

  • ⚡️ 효율성 중심: 스타트업이나 개인에게 매우 유리
  • ⛔️ 단점: 복잡한 백엔드, 항상 켜져 있어야 하는 작업에는 부적합 (→ 그땐 AWS가 적합)

 

🔚 결론

Vercel과 Render는 “서버가 떠있는 시간”이 아니라, “사용자 요청 + 빌드 + 대역폭” 기준으로 과금합니다.
그래서 사용량이 적은 초기 SaaS에는 거의 비용 없이 서비스를 운영할 수 있는 구조가 가능한 거죠.

 

728x90
반응형

'Programming > DevOps' 카테고리의 다른 글

[DevOps] 도커(Docker)는 왜 쓸까?  (0) 2022.05.17

[DevOps] 도커(Docker)는 왜 쓸까?

Posted by Space_Jin
2022. 5. 17. 01:17 Programming/DevOps
728x90
반응형

도커는 다양한 운영체제에서 리눅스의 컨테이너 환경을 제공하기 위한 엔진 입니다.

컨테이너(container)는 뭘까?

컨테이너는 애플리케이션을 실행할 수 있는 환경입니다.

운영체제와는 다른 개념으로 리눅스 운영체제에서 애플리케이션을 실행할 수 있는 독립된 환경을 제공하는데 이때, 독립된 환경이 컨테이너 입니다.

 

조금 더 자세한 내용은 차후 글 작성으로 대체하겠습니다.

도커를 사용하는 이유 1. 애플리케이션을 구동하기 위한 환경을 제공

동일하게 작성된 애플리케이션이라도 실행하는 환경이 달라지면 정상적으로 작동하지 않을 수 있습니다.

만약, Java 11에서만 지원하는 기능을 사용해서 애플리케이션을 작성했는데 다른 컴퓨터에 Java 11을 위한 JVM이 없다면 동작하지 않게됩니다. (똑같이 쳤는데 왜 안되지?...)

 

도커는 작성된 애플케이션 뿐 아니라 당시 개발 환경까지 그대로 담아서 사용 서버에서 실행해주기 때문에 현재 환경에 상관없이 작성된 그대로 애플리케이션을 실행할 수 있습니다.

개발 환경에서 Java 11로 개발한 애플리케이션을 이미지라는 형태로 저장하고 도커 서버에 업로드 -> 실행 환경에서 해당 이미지를 다운로드 -> 도커 컨테이너에서 바로 실행

도커를 사용하는 이유 2. 확장과 축소에 유리

컨테이너는 하나의 운영체제(OS)를 공유하며 독립된 환경을 제공합니다.

만약 서버 방문자가 늘어 애플리케이션을 증설해야한다면 컨테이너를 이용해 동일한 애플리케이션을 늘릴 수 있습니다.

위 예시는 1G 크기의 애플리케이션 4개와 10G의 OS로 구성되어 14G 크기의 환경이 구동되는 모습입니다.

만약 컨테이너가 아닌 가상머신(VM)을 이용한다면 상대적으로 무거운 OS가 증설할 애플리케이션 개수만큼 필요해 총 44G의 크기의 애플리케이션이 실행되게 됩니다.

 

이렇게 컨테이너를 활용하면 더 가볍고 빠르게 애플리케이션을 증가, 감소 시킬 수 있게됩니다.

또한, 동일한 애플리케이션이 아닌 각기 다른 서비스를 세분화해서 서로 독립된 환경에서 동작하는 MSA(Micro Service Architecture)를 실현할 수 있습니다.

 

이상 도커를 사용하는 큰 이유 2가지에 대한 설명이였습니다.

 

잘못되거나 수정이 필요한 부분이 있다면 알려주시면 감사합니다!

728x90
반응형