본문 바로가기
AWS

[AWS] Serverless Architectures

by hxxyeoniii 2025. 12. 15.

MSA(Micro Services Architecture)

Monolithic vs Microservices

  • Monolithic : 모든 기능이 하나의 애플리케이션에 통합되는 전통적 방식
  • Microservices : 각 기능을 독립적인 작은 서비스로 분리 → 독립적인 확장 가능

 

AWS에서 Microservices 구현 방법

  • 컨테이너 사용 : ECS, EKS
  • Serverless 구현 : Lambda + API Gateway

 

서비스 간 통신 패턴 : 동기 vs 비동기

동기(즉시 응답 필요)

  • API Gateway : 외부 클라이언트 → 마이크로서비스
  • Application Load Balancer : 마이크로서비스 간 통신

 

비동기(즉시 응답 불필요)

  • SQS : 작업 큐, 순차 처리 → 주문 후 이메일 발송, 이미지 처리 등
  • SNS : 1개 이벤트로 여러 서비스에 알림 → 주문완료 후 배송 & 결제 & 알림 서비스 동시 호출
  • Kinesis : 실시간 스트리밍 데이터 → 클릭스트림 분석, 로그 실시간 처리
  • Lambda : 파일 업로드 시 자동 처리 → S3에 이미지 업로드 후 썸네일 생성

Software Updates Offloading

EC2에서 작동하는 애플리케이션이 있고 종종 소프트웨어 업데이트를 배포한다.

소프트웨어가 새로 업데이트되면 요청을 많이 받게되고, 콘텐츠는 네트워킹을 통해 다수에게 배포되는데 이는 비용이 많이 든다.

소프트웨어 업데이트 비용과 CPU 사용량을 최적화하고 EC2에서 실행 중인 응용 프로그램을 변경하지 않고 소프트웨어 업데이트를 분산하는 방법은 무엇일까?

 

 

CloudFront를 맨 앞에 추가하기

"사용자 → CloudFront → ALB → EC2 → EFS"

  • 엣지에서 소프트웨어 파일은 캐시에 저장된다. 업데이트 파일은 변하지 않기 때문, (동적이 아닌 정적이기 때문에 절대 바뀌지 않음)
  • ASG(Auto Scaling Group)가 많이 확장하지 않아 EC2, 네트워크, EFS 비용을 크게 절감할 수 있다.
  • EC2 인스턴스는 서버리스가 아니지만 CloudFront는 서버리스이기 때문에 확장한다.

 

-> 엣지에서 캐싱을 활용하는 정적 콘텐츠가 대부분인 경우 CloudFront가 기존 애플리케이션의 확장성을 높이고 비용을 절감하는데 용이하다!

 

 

 

 

 

출처 : https://velog.io/@gagaeun/AWS-Serverless-Architectures

'AWS' 카테고리의 다른 글

[AWS] Data & Analytics  (0) 2025.12.19
[AWS] Databases  (0) 2025.12.16
[AWS] Serverless  (0) 2025.12.10
[AWS] Integration & Messaging  (0) 2025.12.02
[AWS] Advanced Storage on AWS  (0) 2025.12.01