본문 바로가기
📌 Front End/└ React

[React] 서버리스 아키텍처와 클라우드 컴퓨팅 - IaaS, PaaS, BaaS, FaaS

by 쫄리_ 2024. 10. 10.
728x90
반응형

📌 서버리스 란? (Serverless)

서버리스는 이름에서 알 수 있듯이, 개발자가 서버를 직접 관리하지 않아도 되는 컴퓨팅 모델입니다.

실제로 서버는 존재하지만, 클라우드 서비스 제공업체가

모든 서버 관련 작업(설치, 유지보수, 스케일링 등)을 처리해 줍니다.

따라서 개발자는 비즈니스 로직에 집중할 수 있습니다.


📌 클라우드 컴퓨팅 모델

  • IaaS (Infrastructure as a Service)
  • PaaS (Platform as a Service)
  • BaaS (Backend as a Service)
  • FaaS (Function as a Service)

🔎 IaaS (Infrastructure as a Service)

IaaS는 개발자가 직접 서버를 설정하고 관리하는 클라우드 서비스

이 서비스는 기본적인 IT 인프라(서버, 스토리지, 네트워크)를 제공하며,

사용자는 필요에 따라 서버를 생성하고 구성할 수 있습니다.

그러나 운영체제, 소프트웨어 설치, 보안 설정 등은 사용자가 직접 처리해야 하므로,

이 모델은 서버리스라고 부를 수 없습니다.

 

  • AWS EC2 (아마존)
  • Microsoft Azure Virtual Machines (마이크로소프트)
  • Google Cloud Compute Engine (구글)

🔎 PaaS (Platform as a Service)

PaaS는 프론트엔드 애플리케이션 배포에 적합한 클라우드 플랫폼

React 애플리케이션을 빌드하면 생성된 HTML, CSS, JavaScript 정적 파일

정적 사이트 호스팅 서비스를 통해 배포할 수 있습니다.

 

주로 정적 웹사이트와 프론트엔드 애플리케이션을 호스팅하며, 로드밸런싱은 클라우드에서 자동으로 관리

PaaS는 데이터베이스 기능을 제공하지 않으므로, 유동적인 데이터 저장이 필요할 경우

BaaS나 다른 데이터베이스 서비스를 이용해야 합니다.

비용은 트래픽과 데이터 전송량에 따라 청구

 

  • AWS S3 (아마존)
  • Netlify
  • Vercel

🔎 BaaS (Backend as a Service)

BaaS는 클라우드에서 미리 제공되는 백엔드 기능을 API로 호출하여 사용하는 서버리스 솔루션

미리 정의된 기능(인증, 데이터베이스 등)을 API로 제공하며,

사용자가 직접 함수를 정의하거나 등록할 수 없습니다.

 

백엔드 개발 없이 API를 통해 로그인이나 데이터 저장 작업을 쉽게 처리할 수 있습니다.

비용은 사용한 자원량에 따라 청구되며, 무료 용량과 호출 횟수가 정해져 있어

이를 초과하면 추가 요금이 발생

 

  • Firebase(Authentication, Firestore) (구글)
  • AWS Amplify (아마존)
  • Back4App

🔎 FaaS (Function as a Service)

FaaS는 특정 함수가 필요할 때만 실행되는 서버리스 솔루션

사용자는 함수를 정의한 후 클라우드에 업로드하고, URL을 통해 호출할 수 있습니다.

이벤트가 발생할 때만 함수가 실행되며, 서버가 항상 켜져 있지 않아 필요할 때만 리소스를 사용합니다.

함수 호출 횟수와 실행 시간에 따라 비용이 청구되며, 호출되지 않으면 비용이 발생하지 않습니다.

 

  • AWS Lambda (아마존)
  • Google Cloud Functions (구글)
  • Microsoft Azure Functions (마이크로소프트)

 


✏️ 리액트에서 서버리스 사용방법

서버리스는 서버 설정, 관리, 스케일링 등을 클라우드가 대신 처리하기 때문에,

개발자는 프론트엔드와 백엔드 로직 구현에만 집중할 수 있습니다.

사용자가 몰리더라도 로드밸런싱이나 서버 확장 작업을 할 필요가 없다는 점 서버리스의 가장 큰 장점


React 애플리케이션 빌드/배포 (PaaS)

빌드된 HTML, CSS, JS 파일정적 사이트 호스팅 서비스(예: Netlify, Vercel)배포하여

사용자에게 애플리케이션을 제공합니다.

 

서버리스 백엔드 로직 처리  (BaaS 또는 FaaS)

 FaaS (예: AWS Lambda)를 통해 사용자 정의 함수를 작성하고,

사용자가 데이터를 요청하거나 로그인할 때 이를 호출하여 백엔드 로직을 처리합니다.

예를 들어, 사용자가 로그인할 때 FaaS를 통해 정의한 인증 함수를 호출합니다.

 

 BaaS (예: Firebase)와 같은 서비스를 사용하면

미리 정의된 API를 통해 백엔드 작업을 간편하게 처리할 수 있습니다.

예를 들어, Firebase의 인증 API를 활용하여 손쉽게 사용자 인증을 수행할 수 있습니다.

 

 


 

 

 

 

 

728x90
반응형