본문 바로가기
카테고리 없음

인프라의 투명화: 서버리스 아키텍처 완전 분석 (Function, Event 기반 구조, 실행 흐름)

by IT101 2025. 11. 27.

서버리스 아키텍처 다이어그램: HTTP 요청, DB 변경 등 다양한 이벤트 소스에서 클라우드 관리 환경을 통해 함수(Function)를 실행하고 리소스를 해제하는 전체 실행 흐름을 보여줍니다

 

서버리스 아키텍처(Serverless Architecture)는 클라우드 컴퓨팅의 진화 과정에서 '인프라 관리'라는 막중한 부담을 개발자로부터 완전히 격리시킨 혁신적인 패러다임입니다. 많은 이들이 오해하듯 단순히 "서버가 존재하지 않는다"는 뜻이 아니라, 개발자가 서버의 존재를 전혀 의식할 필요 없이 오직 비즈니스 로직(Code) 구현에만 모든 에너지를 쏟을 수 있는 추상화된 환경을 의미합니다. 과거에는 서비스를 하나 띄우기 위해 운영체제 설치부터 보안 패치, 네트워크 설정, 스케일링 정책 수립까지 수많은 'Ops(Operations)' 작업이 선행되어야 했지만, 서버리스는 이러한 복잡성을 클라우드 제공업체의 몫으로 넘기고 개발자에게는 오직 '함수 실행'이라는 결과만을 약속합니다.

 

본 글에서는 서버리스의 심장부인 함수 중심의 실행 구조(FaaS), 시스템의 신경망 역할을 하는 이벤트 기반 트리거 메커니즘, 그리고 실제 운영 현장에서 마주하게 되는 실행 흐름과 콜드 스타트(Cold Start) 같은 특징들을 심층적으로 분석합니다. 이를 통해 서버리스가 현대 소프트웨어 아키텍처에서 어떤 가치를 지니며, 우리가 왜 이 No-Ops 시대를 준비해야 하는지 그 당위성을 고찰해 보겠습니다.


1. 함수(Function) 중심 실행 구조: 인프라 관리 없이 로직 단위로 배포되는 FaaS 모델

 

서버리스 아키텍처의 기술적 실체이자 가장 큰 축은 FaaS(Function-as-a-Service)입니다. 이는 애플리케이션을 하나의 거대한 덩어리(Monolith)로 구축하는 것이 아니라, 독립적으로 실행 가능한 가장 작은 기능 단위인 '함수'로 쪼개어 관리하고 배포하는 방식입니다. AWS Lambda, Google Cloud Functions, Azure Functions 등이 이 모델의 대표 주자입니다. 개발자는 가상 머신(VM)의 CPU나 메모리 점유율을 모니터링하거나 운영체제 업데이트를 고민할 필요가 없습니다. 오직 특정 입력을 받아 결과를 반환하는 코드 조각(함수)을 작성하여 클라우드에 업로드하기만 하면, 실행에 필요한 모든 환경 구성과 자원 할당은 플랫폼이 실시간으로 처리합니다.

 

이러한 함수 중심 구조는 마이크로서비스 아키텍처(MSA)를 가장 순수한 형태로 구현할 수 있게 해 줍니다. 각 함수는 철저히 독립적인 생명주기를 가지며, 서로의 실행 환경에 영향을 주지 않는 강한 결합도 분리(Decoupling)를 실현합니다. 특히 서버리스 함수는 기본적으로 무상태(Stateless)로 설계되어야 합니다. 함수 실행에 필요한 상태 정보를 로컬 메모리에 저장하지 않고 외부 데이터베이스나 스토리지에 위임하기 때문에, 클라우드 제공자는 트래픽이 폭증하는 순간에도 동일한 함수 인스턴스를 수천 개로 즉시 복제하여 병렬 처리할 수 있습니다. 이는 과거의 서버 기반 방식이 가졌던 수직적 확장의 한계를 넘어서는 '무한한 확장성'을 제공합니다. 결국 함수 중심 구조는 개발자가 인프라라는 거대한 빙산 아래의 복잡성에서 벗어나, 사용자가 체감하는 서비스의 본질적인 로직 구현에만 몰입하게 만드는 기술적 주춧돌이 됩니다.

 

 

2. 이벤트(Event) 기반 트리거 방식: 반응형 시스템의 효율성과 유연성

서버리스 아키텍처는 24시간 내내 자원을 소모하며 대기하는 기존 서버와 달리, 특정한 사건이 발생했을 때만 잠시 깨어나 작동하는 이벤트 기반(Event-driven) 시스템입니다. 여기서 '이벤트'란 시스템 내부 혹은 외부에서 발생하는 모든 유의미한 변화를 뜻합니다. 사용자가 API 게이트웨이를 통해 HTTP 요청을 보내거나, S3 버킷에 새 이미지를 업로드하거나, 데이터베이스의 값이 변경되거나, 심지어 특정 시간에 도달하는 예약 작업 등이 모두 함수를 즉각 실행시키는 트리거(Trigger)가 됩니다. 이 방식은 시스템이 스스로 상황을 판단하고 움직이는 '반응형 아키텍처'의 정수를 보여줍니다.

 

이벤트 기반 방식의 가장 혁신적인 지점은 자원 활용의 극단적 효율성입니다. 아무런 요청이 없는 평상시에는 컴퓨팅 자원을 0(Zero)에 가깝게 유지하다가, 이벤트가 감지되는 밀리초(ms) 단위의 찰나에만 리소스를 점유합니다. 예를 들어, 사용자가 사진을 업로드하는 순간에만 '이미지 썸네일 생성 함수'가 깨어나 일을 하고 작업 완료 즉시 소멸하는 식입니다. 이는 복잡한 로직을 가진 시스템을 여러 개의 작은 반응형 컴포넌트로 연결하여 유연한 자동화 워크플로우를 구축하는 데 매우 유리합니다. 또한, 서버리스는 클라우드 생태계의 다양한 서비스와 유기적으로 결합됩니다. 메시지 큐(SQS), 스트림 데이터(Kinesis), 이메일 발송(SES) 등과 연동되어 현대적인 분산 시스템의 강력한 접착제 역할을 수행합니다. 이처럼 이벤트와 함수를 정교하게 엮어냄으로써, 개발자는 서비스 간의 의존성을 획기적으로 낮추고 변화에 민감하게 반응하는 고도로 유연한 시스템을 설계할 수 있습니다.

 

 

3. 서버리스 실행 흐름과 운영 특징: 경제성과 콜드 스타트의 트레이드오프

서버리스의 실행 흐름은 이벤트 발생과 동시에 기민하게 시작됩니다. 트리거가 감지되면 플랫폼은 해당 코드를 실행할 컨테이너 환경을 즉시 프로비저닝하고 코드를 로드한 뒤 실행합니다. 작업이 완료되면 결괏값을 반환하고 자원을 반납하는데, 이러한 일련의 과정은 사용한 만큼만 비용을 지불하는(Pay-per-use) 고도의 경제 모델을 가능하게 합니다. 기존에는 트래픽이 없어도 서버 유지비를 내야 했지만, 서버리스는 코드가 실제로 구동된 밀리초(ms) 단위의 시간만큼만 비용이 청구됩니다. 따라서 간헐적으로 트래픽이 발생하거나 사용량의 변동 폭이 극심한 서비스에서 압도적인 비용 절감 효과를 발휘합니다.

 

하지만 운영 측면에서 반드시 극복해야 할 과제가 있는데, 바로 콜드 스타트(Cold Start) 현상입니다. 오랫동안 호출되지 않아 유휴 상태였던 함수를 처음 실행할 때, 실행 환경을 새로 구성하고 코드를 올리는 데 수 초의 지연 시간(Latency)이 발생할 수 있습니다. 이는 실시간 응답이 생명인 서비스에서는 치명적인 약점이 될 수 있으며, 이를 해결하기 위해 일정 수의 인스턴스를 미리 깨워두는 '프로비저닝 된 동시성' 설정이나 주기적인 더미 호출(Warm-up) 등의 기술적 보완책이 요구됩니다. 또한, 인프라 보안은 클라우드 사가 전담하지만 함수 레벨의 세밀한 권한 설정(IAM)과 데이터 암호화는 여전히 개발자의 책임이라는 공동 책임 모델을 잊어서는 안 됩니다. 실행 시간이 짧고 파편화된 서버리스의 특성상 로깅과 모니터링이 어려울 수 있으므로, 분산 추적(Distributed Tracing) 도구를 활용한 가시성 확보가 운영 성공의 핵심입니다. 결국 서버리스는 인프라 관리의 자유를 주는 동시에, 분산된 함수들을 유기적으로 최적화해야 하는 고차원적인 설계 역량을 요구하는 전략적 선택지입니다.


결론: 로직에 가치를 두는 클라우드 네이티브의 완성

결론적으로 서버리스 아키텍처는 함수 단위의 로직 집중, 이벤트 기반의 유연한 연결, 그리고 사용량 기반의 경제성이 결합된 클라우드 네이티브 시대의 결정체입니다. 서버 운영의 고통에서 벗어나 비즈니스 민첩성을 극대화하려는 기업들에게 서버리스는 더 이상 실험적인 기술이 아닌 필수적인 인프라 전략으로 자리 잡고 있습니다. 물론 콜드 스타트나 특정 벤더에 대한 종속성 같은 도전 과제가 존재하지만, 이를 상쇄하고도 남을 만큼의 개발 생산성 향상과 비용 절감 효과는 매우 명확합니다.

 

우리가 이렇게 효율적이고 유연한 시스템을 구축하는 동안, 사이버 세계의 어두운 이면에서는 우리의 시스템을 마비시키고 정보를 탈취하려는 악성 소프트웨어들이 끊임없이 진화하고 있습니다. 서버리스가 인프라를 투명하게 만들었다면, 이 악성 코드들은 자신들의 존재를 투명하게 숨기며 침투합니다. 다음 포스팅에서는 디지털 자산의 안전을 위협하는 양대 산맥, [멀웨어와 스파이웨어의 차이점과 작동 방식]에 대해 심도 있게 다루며 우리의 소중한 시스템을 보호하는 법을 알아보겠습니다.