티스토리 뷰

서버리스 컴퓨팅? 

- 서버 -> 가상화 / 모놀리틱 아키텍쳐 -> 마이크로 서비스 아키텍쳐 / 서버구동방식? 이벤트 트리븐방식 

  ∴ 클라우드로 인한 기술 패러다임이 변화하고 있음 

- 클라우드 성숙기에 오면서 늘어난 클라우드 인스턴스 관리 필요성 증대  -> 서버리스 컴퓨팅 등장 

- 서버리스 컴퓨팅의 정의? 서버가 없는게 아니라 사용자가 서버없이 함수코드만으로 어플리케이션과 서버 구축 가능 

 

 

온프레미스 가상머신 컨테이너 서버리스
서버구매 , OS 설치 수개월 서비스 배포 환경은 온프레미스보다 수월, 하지만 관리많이 필요
서버가 늘어날수록 관리 어려움
Autosacling으로 꾸준한 트래픽해결이 가능하지만 폭파적인 트래픽 처리 불가 
운영체제 가상화 기술 
물리서버와 가상머신 효율적 사용
수초내에 배포가능
But, 어렵고 복잡 
프로그램언어 런타임 가상화 기술
서버인프라, 운영체제설치는 클라우드업체
사용자는 코드에만 집중가능
But, 장기적인 작업에 적합하지않음 

- AWS - Lambda  : 서버에 대한 걱정없이 코드 실행 / 사용한 만큼 지불 / Event Driven / 자동확장 / Serverless  

- MS - Azure Functons  : Serverless / Event Driven / 사용한만큼 지불 

- Google - Cloud Functions  : Event Driven / 생산성 향상 / 사용한만큼 지불 

 

 

서버리스 컴퓨팅 특징 

- 프로비저닝(리소스준비) & 유지 <- 전적으로 서비스 업체가 담당 

- IT 인프라를 데이터 센터 혹인 클라우드에 별도 준비 없이 필요한 기능을 function 형태로 제공 -> 전통적인 백엔드 대신에 사용

- Event Driven 방식? Function을 등록하고 Trigger을 호출하면 동작, HTTP, Queue 방식으로 플랫폼별로 서버관리필요없음, 비즈니스 로직 집중 가능 

- Severless Computing. = Faas(Function as a Service) , BaaS(Backend as a Service) 

- 시스템 상의 다양한 이벤트를 함수의 형태로 처리하기 때문에 반복되는 Batch 처리 형태의 기능에 알맞음   ex) 정보 습득, 로그 수집 

- 함수별로 언어가 달라도 동작에 지장이 없음

- 가상머신이나 컨테이너의 경우  Autoscaling 설정으로 서비스 부하에 맞춰 자동으로 확장되지만 서버리스 컴퓨팅의 경우 설정없이 요청수에 맞춰서 자동화

- 사용한만큼 비용발생 

 

 

서버리스 컴퓨팅 동작방식  

1. Event Trigger에 의해 서버리스 컴퓨팅을 호출한다. 

2. 서버리스 컴퓨팅이 설치된 서버에서 함수를 처리하기 위해 컨테이너를 할당한다.

3. 함수 무결성 체크 후 할당된 컨테이너에 할당하고, 이벤트 트리거에서 전달한 이벤트 소스와 함께 함수를 호출한다.

4. 함수 코드 수행한 후 결과값을 내보낸다.

5. 일정 시간이 지나면 할당된 컨테이너를 회수한다. 

 

 

서버리스 컴퓨팅 장단점

1) 장점

- 서버 시스템 구조에 대해 신경쓰지 않고 비즈니스와 관련된 내용만 집중 가능 

- 서버 등 하드웨어나 클라우드 인스턴시 구매 필요없이 실제 사용한 컴퓨팅 리소스에 대해서만 지불 하면됨 

2)단점 

- 장기적인 업무에는 적합하지 않음, 한개의 명령을 몇분이상 실행할 수 없음

- 함수 실행시 한개의 명령을 몇 분 이상 실행할 수 없음 

- 특정 서비스 업체 의존시 나중에 불만족인 부분이 있더라도 통합하는게 어려움 

 

BAAS (BACKED-AS-A-SERVIECE) FAAS
- 모바일앱 웹앱애 ㅅ주로 사용 , 모바일 백엔드로 알려짐
- 복잡한 백앤드 기능을 개발자가 개발하지는게 아니라 클라우드 공급자가 제공하는 서비스 이용해 쉽고 안정적 구현 
- ex) Firerbase 
- Function은 개발자가 설계하지만, Function은 클라우드가 제공하는 컨테이너에서 작용 
- 확장성이 매우 뛰어남 

 

 

 

서버리스 컴퓨팅 콜드스타트와 웜스타트 

콜드스타트(Cold Starts)란?

- 앱이 처음부터 시작하는 것 (기기가 부팅되거나 시스템에서 앱이 종료되고 나서 처음으로 시작하는 경우) 

- 이벤트가 호출되어 서버리스 컴퓨팅이 실행될때 실행할 컨테이너가 없으면 콜드 스타트 과정을 거침 

- 콜드 스타트로 인한 지연시간 방지하려면 일정 간격으로 함수 호출해 웜 스타트 상태 유지 필요 

 

웜스타트(Warm Starts) 

- 일정시간 대기 중에 호출 발생시 대기중인 서버리스 컴퓨팅이 바로 시작하는 것 

 

 

 

서버리스 컴퓨팅 도입시 고려사항 

1. 공급업체의 종속성 확인

- 공급업체마다 사용방법, 연계가 힘들기 때문에 만약 공급업체 종속성 피하려면 오픈소스 서버리스 컴퓨팅 플랫폼 이용 

2. 공급업체마다 상이한 SLA(Service Level Ageement) 확인 

- 서버리스 컴퓨팅은 서버 설정을 공급업체에서 진행하는게 장점이지만, 실수로 장애가 발생할수도 잇다. AWS Lambda의 경우 장애가 발생해도 보상받을 수 없음 

3. 복잡한 운영관리 확인

- 서버리스 컴퓨팅은 단독실행 불가능, 트리거와 연계 서비스 필요 , 보안 사고때문에 권한 설정 필요 

4. 제약사항 확인

(1) 최대 실행시간 - 서버리스 컴퓨팅 실행제한시간 존재, 함수별로 설정, 제한시간 초과 될 수 있음

(2) 최대 동시 실행 수 - 플랫폼별로 함수를 동시에 실행할 수 있는 실행수에 제한있음 , 동시 실행 수 오류 발생한경우 로직 추가해야지 안정적 서비스 유지 가능 

(3) 콜드스타트 지연 시간 - 콜드스타트는 웜 스타트에 비해 100ms~10초의 지연시간 발생, 비기능설계 필요 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함