본문 바로가기
Team Project/TIL, WIL

TIL(29) 21-10-28 : 서버리스 백엔드

by 감사쟁이야 2021. 10. 28.

💫  Facts

✅  EC2로 구성된 기존 아키텍처의 문제점 이해

✅  서버리스에 대한 개념 이해

✅  Lambda와 (+ VPC + SecretsManager + RDS) 연동해서 인프라 구성

 

💫  Findings

✔️  Cloud란

물리적인 컴퓨터를 사용하지 않아도, <인터넷>을 통해 <컴퓨터의 리소스>를 사용하는 것

 

✔️  EC2로 구성된 기존 아키텍처의 문제점

EC2 만으로 백엔드 인프라를 구성해도 관계가 없지만 좀 더 유연한 인프라를 구성하는 데는 분명히 한계가 있다.

왜냐하면, EC2 인스턴스로 백엔드를 구성하면 EC2를 직접 관리해 줘야 한다.

 

만약 운영하고 있는 서비스에 갑자기 트래픽이 몰린다면? 🤯

EC2를 추가해서 부하를 분산 시켜 줘야한다. 운영 중인 서비스에서는 대응이 힘들 것이다. 😭

 

확장의 유연성을 위해 어떻게 하면 좋을까? → Serverless

 

✔️  서버리스에 대한 개념

Serverless란 클라우드를 사용하여 서버를 빌려쓰는 것이다.

클라우드가 서버를 관리해준다.

백엔드 서버리스는 누가 제공해줄까? → Lambda

 

✔️  Lambda

Lambda는 백엔드를 서버리스(Serverless)로 운영할 수 있는 서비스다.

Lambda는 Function 단위로 사용한다.

 

레거시(= 기존 시스템)와 비교한다면, 기존의 개발/배포 방식은 프레임워크에 의존하여 작업을 하고, 모든 기능을 포함하고 있는 전체를 배포하는 과정이었다.

Lambda는 기본적으로 함수 단위로 배포한다.

 

Lambda도 단점이 있다.

리소스 제한이 있고 오랫만에 실행하게 되면 딜레이가 발생한다.

 

💫  Feelings 

  • 클라우드가 서버 역할을 해주는 것은 매우 편리하다.
    서버리스 백엔드를 작업하기 위해, lambda를 사용했다.
    EC2를 직접 관리할 필요가 없고, 확장의 유연성이 너무 좋다. 👍🏻
  • 왜 사람들이 MSA를 외치는지 알게 되었다.
    MSA는 가장 간단하게는 프론트, 백엔드를 물리적으로 다른 서버에 배치하는 방법이다.
    프론트, 백엔드를 분리함으로 배포를 독립적으로 할 수 있고,
    특정 기능이 장애가 나도, 다른 기능에 영향을 주지 않는다. 👍🏻