215. 서버리스 아키텍처 (Serverless Architecture / FaaS) - Function as a Service 인프라 위임 AWS Lambda 비용 효율 무상태(Stateless) 콜드 스타트 클라우드 네이티브

핵심 인사이트: (184번 PaaS의 궁극적 진화) 아무리 도커(Docker) 컨테이너로 쪼개놔도, 손님이 새벽 3시에 1명도 안 오면 그 서버 100대는 허공에 전기세(월 1,000만 원)를 태우며 윙윙 돌아간다. 빡친 개발자가 소리친다. "야! 평소엔 서버를 0대로 다 꺼놔! 그러다가 손님이 버튼을 딱 클릭하는 '그 찰나의 1초'에만 클라우드에서 코드를 뿅 하고 띄워서 연산하고, 1초 뒤에 코드를 다시 암살(Kill)해서 흔적도 없이 증발시켜버려!! 기계(서버)가 살아있는 시간이 없으니까, 내가 딱 그 '1초' 동안 CPU 돌아간 전기세 10원만 아마존에 결제하면 되잖아!!" 서버의 존재 자체를 지워버린 자본주의 극강의 짠돌이 혁명, 서버리스(FaaS)다.

Ⅰ. 상시 구동 서버(Always-On)의 낭비

  • EC2나 도커 컨테이너는 어쨌든 리눅스가 부팅되어 24시간 내내 메모리(RAM)에 상주하며 윙윙 돌아갑니다.
  • 1시간에 1번 호출되는 '이미지 리사이징(썸네일 깎기)' 서버를 위해 한 달 내내 10만 원짜리 서버를 켜두는 것은 미친 낭비(Over-provisioning)입니다.

Ⅱ. 서버리스 (Serverless)와 FaaS의 개념 🌟

  • 서버리스: 아마존 데이터센터 어딘가에 물리적 서버는 분명히 있습니다! 단지 **개발자(나)의 눈앞에서 '서버 관리(OS 패치, 용량 조절, 부팅)'라는 개념 자체가 100% 투명하게 사라져버렸다는 뜻(Less)**입니다.
  • FaaS (Function as a Service): 서버리스를 구현하는 핵심 아키텍처. 거대한 앱 코드를 버리고, 이미지_자르기(), 비번_검사하기() 같은 아주 작은 단일 함수(Function) 단위의 조각 코드만 AWS 클라우드에 툭 던져놓고, 이 함수가 호출될 때마다 실행 환경이 찰나에 켜졌다가 죽는 서비스입니다. (대표작: AWS Lambda)

Ⅲ. 서버리스(FaaS)가 클라우드를 부순 3대 마법 🌟 핵심 기출 🌟

1. 이벤트 주도형 단발성 실행 (Event-Driven)

  • 214번 EDA와 찰떡궁합입니다. 함수 코드는 평소엔 냉동고(하드디스크)에 잠들어 있습니다.
  • 유저가 S3(웹하드)에 강아지 사진을 1장 업로드(Event 발생)합니다!
  • 이 이벤트를 감지한 AWS가 0.1초 만에 숨겨둔 람다(Lambda) 컨테이너를 부팅시켜서 내 이미지_자르기() 함수 코드를 집어넣고 실행시킵니다. 썸네일 파일이 뚝딱 완성되면? 람다는 0.1초 만에 스스로 자결(Kill)하여 우주에서 증발합니다. (무상태 Stateless 극대화)

2. 무한대의 투명한 오토 스케일링 (Zero to Infinity)

  • 사진 1만 장이 1초 만에 쏟아져 들어오면?
  • AWS가 알아서 내 함수 코드를 1만 개로 복제해서 허공에 동시에 띄워버립니다.
  • 1만 장의 사진이 1초 만에 병렬로 다 깎이고 나면, 1만 개의 함수가 1초 만에 일제히 암살당해 다시 0대로 돌아갑니다. 개발자는 서버를 늘려달라(Scale-out)고 설정할 버튼조차 아예 누를 필요가 없습니다.

3. 과금의 혁명 (밀리초 단위 Pay-as-you-go) 🌟

  • 서버리스의 1순위 목적입니다. 함수가 잠들어 있는 23시간 59분 동안은 과금이 **0원(무료)**입니다.
  • 함수가 호출되어 살아서 돌아간 딱 '0.03초(밀리초)' 단위의 시간만큼만, CPU와 RAM 사용량을 곱해서 10원 단위로 후불 청구합니다. 스타트업 서버비를 1,000만 원에서 1만 원으로 찢어버린 구원자입니다.

Ⅳ. 세상에 완벽한 흑마법은 없다 (콜드 스타트의 저주)

  • 콜드 스타트 (Cold Start) 🌟: 함수가 냉동고에 죽어있다가, 첫 요청이 들어왔을 때 컨테이너를 띄우고 코드를 메모리에 올리느라 최초 실행 시 약 1~3초의 지연(딜레이)이 터지는 치명적 맹점입니다.
  • 즉시 응답이 필요한 MMORPG 게임 서버나 0.01초가 중요한 주식 거래 시스템에는 절대 서버리스를 쓰면 안 됩니다(계속 켜져 있는 도커 컨테이너를 써야 함). 가끔 비동기로 돌리는 배치(Batch) 작업이나 썸네일 처리에만 써야 하는 날카로운 비수입니다.

📢 섹션 요약 비유: 기존의 **클라우드 서버(IaaS/PaaS)**는 회사 로비에 **'월급을 300만 원씩 주고 24시간 앉혀둔 상주 경비원'**입니다. 도둑이 오든 안 오든 1년 365일 책상을 지키고 있으니 월급(서버 유지비)이 미친 듯이 나갑니다. **서버리스 아키텍처(FaaS, AWS Lambda)**는 상주 경비원을 다 해고하고 아예 빈 건물로 만들어둔 것입니다. 평소엔 텅 비어있어 인건비가 **'0원'**입니다. 그러다 로비 센서에 도둑(이벤트/트래픽)이 침입하는 찰나의 순간! 허공에서 '용병(Function 함수)' 한 명이 0.1초 만에 텔레포트로 튀어나와 도둑의 목을 따버리고, 그 즉시 다시 연기처럼 펑 사라져버립니다. 도둑이 100명 오면 허공에서 용병 100명이 튀어나와 1초 만에 처리하고 사라집니다(극강의 오토 스케일링). 사장님은 한 달 뒤에, 이 용병들이 나타나서 도둑의 목을 따는 데 걸린 '딱 1초'라는 시간 동안의 시급(초 단위 과금)만 계산해서 용역 회사(AWS)에 1,000원만 계좌이체 해주면 끝나는, IT 인프라 역사상 최고의 짠돌이 경제학 모델입니다.