기본 콘텐츠로 건너뛰기

9월, 2019의 게시물 표시

서버리스란 무엇인가?

서버리스란 무엇인가? 말 그대로 서버가 없는것이 아니라 인프라 엔지니어나 개발자가 관리하는 서버가 없다는 뜻으로 해석을 하면 편함 사용자는 클라우드 서비스 공급자가 제공한 주소로 요청을 전송 클라우드 서비스는 메시지를 기반으로 요청에 응답하는 데 사용할 패키지를 찾음 패키지가 선택되면 패키지를 실행할 도커 컨테이너로 로드한다 도커 컨테이너가 실행되고 요청이 처리 생성된 응답을 요청한 사용자에게 전송 클라우드 서버리스 서비스로는 BaaS(Backend as a Service) , FaaS(Function as a Service) 등이 있고 대표적으로 Firebase, AWS Lamda , Azure Functions, Google Cloud Functions 등이 있음 해당 서비스들은 도커 컨테이너가 실행되고 해당 함수 안에 정의된 프로세스를 완료한 시간(초) 만큼 과금이 부여됨 기존 IaaS 등 유휴 서버에 대해서 비용을 지불하는 과금을 서버리스는 유휴 서버에 대해 과금을 지불 하지 않고 실제 함수가 실행된 시간, 리소스 비용만 지불하는 과금 형태 서버리스의 장점 확장성 고가용성 자원의 효율성 비용 절감 관리 서버의 인력 무 지속적인 배포 가능 서버리스의 단점 컨테이너 로드의 대기 시간 ( 기존 아키텍쳐보다 시간이 걸림 ) 클라우드 서비스 업체의 제약조건 클라우드 서비스 업체의 종속성 어려운 디버깅 각 함수마다 배포를 실행 ( 공수가 많이듬 ) 장시간 실행되는 CPU를 많이 사용하는 작업 불가 실시간 처리에 적합하지 않음 빈번한 서버 함수 호출에 적합하지 않음 참고자료 https://github.com/PacktPublishing/Building-Serverless-Web-Applications https://www.xenonstack.com/blog/serverless-openfaas-java/ https://velopert.com/3543