서버리스(serverless)란?

김도형·2021년 4월 18일

server

목록 보기
2/3

원래 회사에서는 서버리스를 이용하지 않았었는데 확장성의 면에서 좋다는 aws 파트너 측의 제안으로 인해 서버리스에 대해 알아보게 되었다.

서버리스(severless)?

-> 서버리스라는 단어 자체를 직역하면 "서버가 없다" 라는 뜻이라 서버가 없는거다라고 오해할 수 있지만 서버가 없는 것이 아니라 서버가 있지만 서버를 따로 설정하지 않고 코드만으로 개발을 할 수 있게 해주는 서비스라 보시면 됩니다.

서버리스의 특징

  1. 뛰어난 확장성
    -> 서버 개발을 하다보면 고려할 사항이 많습니다.
    유저가 늘어나게 된다면 서버의 확장도 고려해야하고 보안성 또한 고려해야 합니다.
    하지만 서버리스 서비스를 사용하면 서버의 이용자가 많아져 트래픽이 갑작스럽게 늘어나더라도 알아서
    확장이 되기 때문에 따로 대비를 하지 않아도 됩니다.

  2. 개발 시간의 단축
    -> 별도의 서버 세팅을 하지 않고 코드만으로 서비스를 만들 수 있기 때문에 서버에 대한 지식이 없더라도
    빠른 속도로 개발이 가능합니다.

  3. 비용적인 측면에서의 효율
    -> 사용하는 만큼 비용이 책정되기 때문에 어떻게 사용하느냐에 따라 비용을 효율적으로 관리할 수 있습니다.

서버리스의 종류

서버리스는 BaaS (Backend as a Service)FaaS (Function as a Service) 크게
이 두 가지로 구분할 수 있습니다.

BaaS (Backend as a Service)

애플리케이션 개발에 필요한 다양한 기능들(데이터베이스, SNS 연동 등)을 API 형태로 제공하는 서비스
Baas를 제공하는 서비스 중에선 firebase, parse, kinvey 등이 있습니다.

FaaS (Function as a Service)

분산된 대형 인프라 자원에 함수를 등록하고 함수가 실행되는 횟수만큼 비용을 지불하는 방식의 서비스
Faas를 제공하는 서비스 중에선 Aws Lamda, Azure, Functions, Google Functions 등이 있습니다.

AWS Lamda

AWS Lamda에 백엔드 코드를 업로드하면, 코드 실행에 필요한 용량 및 확장성 관리, 패치 업무, 인프라 관리 업무 등 제반 서버 관련 업무를 처리하며, 처리 결과로 생성된 성능 지표는 실시간으로 cloudwatch에 전송하므로 개발자는 오직 코드 작성 업무에만 집중할 수 있습니다.

AWS Lamda는 초기 설치비 부담이 없는 저비용 서비스이며, 사용자는 코드 실행 요청별 및 코드 실행 시간별(100 밀리초 단위)로 부과되는 비용만 부담하면 됩니다.

개발자는 자신이 작성한 코드를 ZIP 파일 형식으로 업로드하거나 AWS 관리 콘솔에 자신 만의 통합 개발 환경을 구축할 수 있고, 이미지 변환, 파일 압축, 변경 알림 등 다양한 lamda 함수 샘플을 이용해 개발 시간을 줄이고 목표한 코드를 신속하게 업로드할 수 있으며, AWS SDK를 이용해 간편하게 다른 AWS 서비스를 호출할 수 있습니다.

AWS Lamda Architecture

다음 글에서는 AWS Lamda와 API Gateway 서비스를 이용하여 람다 함수를 실행해 보는 시간을 가지도록 하겠습니다.

profile
같이 일하고 싶은 개발자 되기

0개의 댓글