티스토리 뷰
서버리스 컴퓨팅?
- 서버 -> 가상화 / 모놀리틱 아키텍쳐 -> 마이크로 서비스 아키텍쳐 / 서버구동방식? 이벤트 트리븐방식
∴ 클라우드로 인한 기술 패러다임이 변화하고 있음
- 클라우드 성숙기에 오면서 늘어난 클라우드 인스턴스 관리 필요성 증대 -> 서버리스 컴퓨팅 등장
- 서버리스 컴퓨팅의 정의? 서버가 없는게 아니라 사용자가 서버없이 함수코드만으로 어플리케이션과 서버 구축 가능
온프레미스 | 가상머신 | 컨테이너 | 서버리스 |
서버구매 , 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초의 지연시간 발생, 비기능설계 필요
'Programming > Cloud' 카테고리의 다른 글
[AWS/Cloud] AWS - Management & Governance (0) | 2021.06.18 |
---|---|
[AWS/Cloud] AWS - Security, Identity, Compliance (0) | 2021.06.18 |
[AWS/Cloud] AWS - Networking & Content Delivery / VPC 데모 (0) | 2021.05.09 |
[AWS/Cloud] AWS데모 - Storage S3 데모 (0) | 2021.05.09 |
[AWS/Cloud] AWS데모 - Compute EC2 Server 만들기 (0) | 2021.05.09 |