[서버리스]서버리스백엔드

Wintering·2022년 5월 27일
0

내일배움캠프

목록 보기
11/17

서버리스 백엔드?

👉 기존 EC2 아키텍쳐의 문제점

  1. 관리의 문제
    EC2 인스턴스로 백엔드를 구성하면, EC2를 직접 관리해 줘야하는 문제가 있다. 인스턴스 크기를 선택해줘야 하고, OS를 업데이트 해야하고, 디스크 용량을 조절해야한다.
    EC2가 여러가지이면 부담스러워짐

  2. 확장의 유연성
    운영하고 있는 회사에 트래픽이 몰린다면❓
    EC2를 추가해서 부하를 분산시키거나, 인스턴스 유형을 조절해서 처리능력을 늘려야 함.
    운영중인 서비스에 대해서는 대응이 불가능하거나, 서비스를 정상화 하는데 상당한 시간이 걸린다.

  3. 요금
    AWS는 생각보다 과금이 많이 되는 편
    서비스가 운영되고 있을 때의 상황은 어떻게 변할지 누구도 모르기 때문에, EC2의 인스턴스 유형 조절 자체가 어려울 것

  4. 왜 서버리스를 사용해야할까?
    우리가 관리해야 할 서버가 없고, 우리가 원하는 기능, 설정값들만 알아서 맞추면 알아서 정적 웹 사이트의 기능을 관리해주는 걸 서버리스(Serverless)라고 한다.

Lambda

👉 Lamda는 서버리스 인프라를 구성하도록 AWS에서 만들어진 서비스다.

  1. Lamda
    람다는 S3처럼 백엔드를 서버리스로 운영할 수 있는 서비스다. S3가 별도의 서버, 관리 없이도 프론트 페이지를 운영했던 것처럼 백엔드도 인프라를 신경쓰지 않고 운영할 수 있는 서비스다.

  2. Lamda ? Legacy?
    👉Lamda는 Lamda Function이라고 불리는데 이름처럼 람다는 기본적으로 하나의 함수를 실행한다.

기존의 개발/배포 방식은 프레임워크에 의존하여 작업을 하고, 모든 기능을 포함해 전체 기능을 배포했지만 Lamda는 함수 단위의 배포를 실행한다.

  1. Lamda 장점
  • 비용절감 - 필요할 때만 함수를 호출하고 비용이 부과됨 ( 최대 34%의 가격 대비 효율을 보임)
  • 인프라 관리가 필요없다.
  • 빠르게 백엔드를 구성한다.
  1. Lamda 단점
  • 리소스 제한 : 메모리 (최대 10GB), 처리시간 (최대 900초, 15분)
  • Cold Start - 오랫동안 실행하면 딜레이가 발생한다.
  • 동시성 제약 - 동시에 처리할 수 있느 요청의 수가 리전별로 1000개로 제한되어 있다.

✅Lamda 생성하기

Lambda

Lambda > 함수 > 함수 생성

(+) Java로는 Lambda를 잘 사용하지 않음. 동네축구(Lambda)에 손흥민(Java)이 와서 뛰노는 격...

🔵트리거

: 연관된 작업이 실행 된 후 람다 함수를 실행하게 할 수 있는, 연관된 작업을 지정하는 부분
Lambda > 생성 된 함수 > | 구성 | > 트리거

🔵구성

Lambda > 생성 된 함수 > | 구성 |

트리거 연관된 작업이 실행 된 후 람다 함수를 실행하게 할 수 있는, 연관된 작업을 지정하는 부분
권한 : AWS의 어떤 자원에 접근할 수 있는 역할을 정의한 부분
대상 : 람다함수가 성공, 실패 한 이후 다른 대상을 호출할 수 있도록 정의하는 부분
함수 URL : 빠르게 함수에 URL을 부여할 수 있다.
환경변수 : 람다 함수 내에서 사용하는 환경변수를 정의하는 부분
태그 : 사용자의 편의에 따라 태그를 구성
VPC : 람다 함수를 어떤 VPC에 포함할지 정의하는 부분
모니터링 및 운영도구 : 함수의 모니터링을 위해 기존 AWS의 기능과 통합할 수 있게 설정하는 부분
동시성 : 동시성은 특정 시각에 함수가 제공하는 요청의 수. (예약의 동시성, 프로비저닝 된 동시성)
비동기식 호출 : 비동기 방식으로 호출 된 이벤트의 수명과 재시도 횟수를 조정 가능
코드서명 : 코드 서명을 설정하여 확인되지 않은 코드의 배포를 제한 가능
데이터베이스 프록시 : 데이터베이스 프록시를 이용하여 RDS와 통신이 가능
파일시스템 : 파일 시스템과 연결 가능
상태 머신 : 이벤트 중심 어플리케이션을 손쉽게 설계 할 수 있게 도와줌

✅API Gateway 적용

함수 URL 만으로는 미디어 처리나 스테이지 처리가 불가능하다.

API Gateway

HTTP 통신을 할 수 있게 HTTP URL, METHOD(GET, POST)를 만들어주어 API의 엔드 포인트 역할을 해줌
Lambda와 API Gateway를 연결하면 외부에서 접근 가능한 API를 만들 수 있다.

Lambda > 생성 된 함수 > 함수 개요 > +트리거 추가
API 게이트웨이를 눌러서 API 게이트웨이로 이동 ( + API 엔드포인트 확인가능)

0개의 댓글