less than 1 minute read

서비스를 운영하기 위해서 개발자가 직접 서버를 관리하는 것이 아니라 개발자에게서 서버가 사라진것을 서버리스라고 합니다. 개발자가 직접 서버를 관리할 필요없이 애플리케이션에만 집중해서 개발해나갈수 있게 되었습니다.

“serverless”란 클라우드 상에 있는 서버에서 소스코드가 동작하게 하는 개발 모듈입니다. 더이상 개발자 서버를 구축하고 관리할 필요가 없습니다. 서비스를 운영하는 서버가 여전히 존재하지만 클라우드측에서 알아서 관리해줍니다.

전통적 방식

  • 어플리케이션 목적과 사용빈도수 트래픽에 따라 얼마나 큰 용량의 CPU와 RAM을 사용할건지 일일이 설정해주어야 합니다.
  • 소프트웨어 관리 보안 패치 등등 일일이 유지보수
  • 서버가 잘 동작하는지 모니터링 서비스 마련
  • 사용자가 많아지거나 적어지면 스케줄링(확장)
  • 서버 항상 운영해야해서 비용발생

severless way FaaS Function as a Service라고도 부릅니다. 개발자는 코드를 구성하는 함수를 하나 만들면 됩니다. 예를 들어 데이터베이스에서 제품의 정보를 읽어오는 함수를 하나 만들고 함수를 netlify나 vercel과 같은 클라우드 호스팅 플랫폼에 등록해줍니다. 함수를 언제 실행하면 되는지만 플랫폼에 명시해주면 됩니다. 플랫폼에서 자동으로 get 요청이 들어올 등록된 함수를 실행해서 데이터베이스에서 제품에 대한 정보를 읽어와서 사용자에게 전달해줍니다. 우리는 이 플랫폼에 실제로 이 함수가 사용한 만큼의 CPU/Memory 시간만큼 비용 청구

문제점?

  • cold start 처음 시작하는데 시간이 걸림
  • Resource limitation 함수 메모리 할당 제한, 함수가 시작되고 끝날때까지 시간 제한
  • 상태가 없는 독립적/개별적 함수 함수 내부에서 전역 데이터를 가지거나 참조하거나 상태를 가질 수는 없지만 데이터베이스에 접근해서 데이터를 읽어오는 거는 됩니다.

Updated:

Leave a comment