티스토리 뷰
웹 개발 실무 기술 A to Z # 17 -서버리스(Serverless) 아키텍처: AWS Lambda, Firebase Functions 활용
octo54 2025. 2. 25. 11:55웹 개발 실무 기술 A to Z
웹 애플리케이션을 운영할 때 서버를 직접 관리하지 않고 자동으로 확장되는 서버리스(Serverless) 아키텍처를 활용하면 비용 절감 및 성능 최적화가 가능합니다.
✔️ AWS Lambda → 이벤트 기반의 함수 실행
✔️ Firebase Functions → Firebase 생태계와 연동된 서버리스 기능
✔️ 비용 절감 및 확장성 극대화
이번 글에서는 서버리스 아키텍처를 활용하여 효율적인 웹 애플리케이션을 구축하는 방법을 설명하겠습니다.
1. 서버리스(Serverless)란?
✔️ 서버를 직접 관리할 필요 없이 코드 실행 가능
✔️ 사용한 만큼만 비용 지불 (Pay-as-you-go)
✔️ 자동 확장(Scaling) 기능 내장
✔️ AWS Lambda, Firebase Functions, Google Cloud Functions 등 지원
✅ 서버리스 아키텍처를 활용하면 유지보수 비용을 줄이고, 빠른 확장 가능!
2. AWS Lambda – 이벤트 기반 서버리스 컴퓨팅
2-1. AWS Lambda 개념
✔️ 서버 없이 코드를 실행할 수 있는 AWS의 서버리스 서비스
✔️ HTTP 요청, 데이터베이스 트리거, 파일 업로드 등의 이벤트에 따라 실행 가능
2-2. AWS Lambda 함수 생성 및 실행
(1) AWS Lambda에서 새 함수 생성
- AWS Lambda 콘솔 접속
- "Create function" 클릭 후 "Author from scratch" 선택
- 런타임 선택 (Node.js 18)
- Handler 설정 (index.handler)
(2) AWS Lambda 함수 코드 (index.js)
exports.handler = async (event) => {
return {
statusCode: 200,
body: JSON.stringify({ message: "Hello from AWS Lambda!" }),
};
};
✅ AWS Lambda에서 코드 실행만으로 API 구성 가능!
2-3. AWS API Gateway와 연결하여 HTTP 요청 처리
(1) API Gateway 생성
- AWS API Gateway 콘솔 접속 → "Create API" 선택
- "HTTP API" 또는 "REST API" 선택
- Lambda 통합(Integration) 추가 → Lambda 함수 연결
(2) Lambda에서 API 요청 데이터 읽기
exports.handler = async (event) => {
const name = event.queryStringParameters?.name || "Guest";
return {
statusCode: 200,
body: JSON.stringify({ message: `Hello, ${name}!` }),
};
};
✅ Lambda + API Gateway 조합을 사용하면 서버리스 API 구성 가능!
3. Firebase Functions – 실시간 데이터 및 인증 연동
3-1. Firebase Functions 개념
✔️ Firebase 생태계(Firestore, Authentication, Storage)와 연동되는 서버리스 함수
✔️ 사용자 이벤트(로그인, 데이터 변경 등)에 따라 코드 실행 가능
✔️ Google Cloud 기반으로 실행되며 Firebase Hosting과도 연동 가능
3-2. Firebase Functions 설정 및 배포
(1) Firebase CLI 설치
npm install -g firebase-tools
firebase login
(2) Firebase 프로젝트 초기화
firebase init functions
✔️ Node.js 선택 및 Firebase 프로젝트 연결
3-3. Firebase Functions 코드 작성
(1) 간단한 Firebase Function (index.js)
const functions = require("firebase-functions");
exports.helloWorld = functions.https.onRequest((req, res) => {
res.json({ message: "Hello from Firebase Functions!" });
});
(2) Firebase Functions 배포
firebase deploy --only functions
✅ Firebase Functions를 활용하면 간단하게 서버리스 API 구현 가능!
4. 서버리스 아키텍처의 장점과 단점
4-1. 장점
✔️ 서버 유지보수 필요 없음 → 인프라 관리 없이 코드 실행
✔️ 트래픽 증가 시 자동 확장 → 사용량에 따라 자동으로 리소스 조정
✔️ 비용 절감 가능 → 실행한 만큼만 비용 청구
4-2. 단점
❌ 콜드 스타트(Cold Start) 문제 → 첫 실행 시 지연 시간 발생 가능
❌ 장기 실행 프로세스 지원 불가 → 15분 이상 실행되는 작업은 수행 불가능
❌ 디버깅 및 로깅 어려움 → 서버 환경이 없어 직접적인 로깅 및 디버깅 어려움
✅ 서버리스는 짧은 시간 내에 실행되는 이벤트 기반 함수에 적합!
5. 서버리스 아키텍처 적용 전후 비교
5-1. 적용 전
- 고정된 서버 인프라 운영 → 트래픽 증가 시 서버 증설 필요
- 서버 유지보수 및 보안 패치 필요
- 비용 절감이 어려움 → 사용하지 않는 시간에도 서버 유지 비용 발생
5-2. 적용 후
✔️ 서버리스로 운영 → 서버 유지보수 불필요
✔️ 자동 확장 지원 → 트래픽 변화에 따른 리소스 조정 가능
✔️ 비용 절감 가능 → 사용한 만큼만 비용 지불
✅ 서버리스 아키텍처를 활용하면 운영 부담을 줄이고, 효율적인 웹 애플리케이션 운영 가능!
6. 마무리 및 다음 글 예고
이번 글에서는 AWS Lambda, Firebase Functions을 활용한 서버리스 아키텍처 구축 방법을 살펴봤습니다.
다음 글에서는 **실시간 데이터 스트리밍 및 이벤트 기반 아키텍처 (Kafka, WebSockets, Firebase Realtime Database)**을 소개하겠습니다.
다음 글 예고: "실시간 데이터 스트리밍 – Kafka, WebSockets, Firebase Realtime Database 활용" 🚀
'project > 웹 개발 실무 기술 A to Z' 카테고리의 다른 글
- Total
- Today
- Yesterday
- llm
- 백엔드
- REACT
- 페이지
- PostgreSQL
- github
- Project
- 챗봇개발
- AI챗봇
- nodejs
- Python
- Docker
- 리액트
- 개발블로그
- nextJS
- fastapi
- Next.js
- rag
- kotlin
- Ktor
- LangChain
- Webpack
- Page
- til
- babel
- 백엔드개발
- 웹개발
- 프론트엔드
- 관리자
- 로컬LLM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |