서버리스 - API Gateway&Lambda

Gyuri hwang·2024년 6월 22일
0

Serverless

-> Serverless Architecture 서버를 직접 관리할 필요가 없는 아키텍처
개발자가 서버를 프로비저닝하거나 애플리케이션의 확장을 관리할 필요 없는 클라우드 네이티브 개발 모델
-> 클라우드 제공 업체가 서버 인프라에 대한 관리 등을 대신 처리해주기 때문에 개발자는 서버 관리에서 자유로워지며, 실제로 구현해야 할 기능에만 더 집중

  • 프로비저닝(Provisioning)이란?
    사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것

API Gateway

: 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스

애플리케이션이 백엔드 서비스의 데이터, 비즈니스 로직 또는 기능에 액세스할 수 있는 "정문" 역할
최대 수십만 개의 동시 API 호출을 수신 및 처리하는 데 관계된 모든 작업을 처리

**API란?
= Application Programming Interface
정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 매커니즘

예를 들어, 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어 있음 -> 휴대폰의 날씨 앱은 API를 통해 이 시스템과 대화하여 휴대폰에 매일 최신 날씨 정보를 표시

API의 장점

  1. 효율적인 API 개발
    API Gateway를 사용하여 동일한 API의 여러 버전을 동시에 실행하면 새로운 버전을 빠르게 반복, 테스트 및 릴리스할 수 있음
  2. 규모와 상관없이 뛰어난 성능
    Amazon CloudFront를 사용하는 엣지 로케이션의 글로벌 네트워크를 활용하여 최종 사용자에게 API 요청 및 응답에 대해 가장 짧은 지연 시간을 제공
  3. 규모에 따른 비용 절감
    API 요청에 대해 계층화된 요금 모델을 제공
  4. 간편한 모니터링
    Amazon CloudWatch를 사용하여 서비스에 대한 호출을 시각적으로 모니터링할 수 있음
  5. 유연한 보안 제어
    AWS IAM과 Amazon Cognito를 사용하여 API에 대한 엑세스 권한을 부여
  6. RESTful API 옵션

제공 API 유형

  1. RESTful API
    HTTP API를 사용하여 서버리스 워크로드 및 HTTP 백엔드에 최적화된 RESTful API를 구축
    HTTP API는 API 프록시 기능만 필요한 API를 구축할 때 가장 적합
    API가 API 프록시 기능과 API 관리 기능을 요구하는 경우, REST API도 제공함

**API 프록시
프록시 = 대리인
클라이언트가 API 서버에 보내는 요청과 API 서버에서 클라이언트에 보내는 응답을 중간에서 대신 전달해줌으로써, 직접적인 통신이 아닌 간접적인 통신을 가능하게 함

  1. WEBSOCKET API
    채팅 앱 및 스트리밍 대시보드와 같은 실시간 양방향 통신 애플리케이션을 구축

Lambda

: 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스
고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 로깅 등 모든 컴퓨팅 리소스 관리를 수행

Lmabda 사용 예시

  1. 파일 처리
    업로드 후 Amazon S3를 사용하여 Lambda 데이터 처리를 실시간으로 트리거함

  2. 스트림 처리
    애플리케이션 작업 추적, 거래 주문 처리, 데이터 정리 등 실시간 스트리밍 데이터를 처리

  3. 웹 애플리케이션
    Lambda를 다른 AWS 서비스와 결합하여 여러 데이터 센터에서 고가용성 구성으로 자동으로 스케일 업/스케일 다운되고 실행되는 웹 애플리케이션을 빌드

  4. 백엔드

0개의 댓글