About 서버리스

이해원·2021년 11월 21일
0

시작하기

목록 보기
6/27
  • Serverless computing(서버리스);
    서버가 없다는 뜻으로 애플리케이션의 확장을 관리할 필요가 없는 클라우드 컴퓨팅 모델을 말한다. 이름 때문에 물리적인 서버가 아예 없고 클라이언트에서 모든 것을 처리하는 구조로 착각할 수 있다. 하지만 실제로 서버가 없는 구조는 아니다. 서버에서 처리하는 작업을 클라우드 기반의 서비스로 처리해서 서버 구축 및 관리 비용을 줄이는 구조이다. 따라서 개발 기간과 비용을 단축할 수 있을 뿐 아니라, 서버 운영과 유지 보수를 좀더 쉽게 할수있다.

  • 또다른 장점은 서버& 네트워크 설정을 다 해놓은 것을 빌려주기 때문에 서버가 하는 동작을 내가 직접 만들 필요가 없어서(백엔드 작업을 직접할 필요가없음) 프론트엔드 개발자가 서버작업에 보다 쉽게 접근할수있고,개발자가 코드에 집중할수있도록 한다. 서버 사양이 개발자에게 영향을 주지 않으므로 ‘서버리스’인 것이다. 물론 물리적 서버는 여전히 존재하지만 클라우드 제공업체가 서비스 중 서버가 하는 관리한다는 점이 다르며 이 점이 개발자 및 서비스 환경이 서버에 신경을 쓰지 않아도 된다는 이점을 이끌어낸다.

  • 작동방식 : 서버를 사용해야 하는 경우, 그러니까 표준 IaaS(Infrastructure as a Service) 모델에서 사용자는 용량 단위를 미리 구매한다. 이는 애플리케이션을 실행하기 위해 ‘상시 가용할 수 있는’ 서버 구성 요소에 대한 비용을 지불하는것이다. 서버리스의 모델들은 이와는 다르게 이벤트를 실행할 애플리케이션 코드를 트리거(특정한 작용에 대응하여 자동으로 반작용이 실행되게끔 만드는 논리적 장치)하면 클라우드 제공업체는 해당 코드에 리소스(서버 자원)를 동적으로 할당하고, 사용자는 코드 실행이 끝나면 비용을 지불하지 않아도된다.

  • 서버리스의 장단점 요약

--> 장점

– 서버 관리가 필요 없음
– 유연한 확장성: 애플리케이션을 활용하여 자유자재로 확장을 구현 가능
– 높은 가용성: 고정된 서버가 없음 = 가용성이 제한되지 않음. 가용성을 위한 별도의 설계가 필요 없음
– 유휴 용량에 대한 비용: 사용하지 않는 것에 대해선 비용을 지불할 필요가 없음. 실행하지 않을 때는 비용이 발생하지 않음
– 개발자 생산성을 높이고 운영 비용 삭감가능.

--> 단점

– 콜드스타트(Cold-Start): 빠른 응답이 필요한 제품(서비스)의 경우 서버리스로의 전환은 부적합할수잇음. 이는 실행할 함수를 호출하기 위해 컨테이너가 실행되는 대기 시간이 존재하기 때문인데, 서버를 항시 가동하지 않는 서버리스의 특징 떄문이다.
– 무상태(Stateless)적인 기능의 구현 불가: 작은 기능으로 잘게 나눠진 함수들은 요청마다 새로 기동하도록 호출되기 때문에 기동 전후의 상태를 공유할 수 없음. 또한 변수와 데이터의 공유가 불가능하며, 데이터를 로컬 스토리지에서 읽고 쓸 수 없음.
– 벤더 종속의 문제: 함수가 사용할 수 있는 최대 메모리, 최대 처리 가능 시간 제약 등의 제약을 서버리스 서비스 벤더가 설정하며 서버리스 사용자 및 서버리스 기반의 서비스는 이에 종속됨. 이에 맞춰 벤더가 설정한 제약을 벗어나는 큰 기능은 잘게 나누어 구현해야함.

profile
미어캣입니당

0개의 댓글