AWS 서버리스 개발 이란

임종혁·2024년 10월 16일

서버리스 기반 서비스 개발

서버리스는 서버를 고려할 필요 없이 애플리케이션을 구축하고 실행해주는 서비스

  • 백엔드 서버 코드를 실행하는 컴퓨팅 자원으로 AWS LAMBDA 를 사용

  • 백엔드 서버 코드를 aws lambda 로 실행할때 그 http 이벤트를 생성하는 amazon api gateway 를 사용한다.
    api gateway 에서 http 요청을 받으면 aws lambda를 실행하여 필요 도메인 로직 처리하고 그 결과 http 응답으로 반환

    • 프론트 엔드 페이즈를 사용자에게 제공하기 위해 클라우드 저장소인 amazon s3 를 사용한다.
      이 서비스는 업로드한 http 로 제공하는 정적 웹사이트 호스팅 기능을 제공한다.
    • aws lambda 와 같은 컴퓨터 자원은 아니므로 로직 실행은 불가능하지만 정적 파일을 반환하는 http 서버로 사용할 수 있어 편리하다. _
  • S3에서 정적으로 제공하는 파일을 CDN 을 사용하여 고객에게 좀 더 빠르게 제공하기 위해 Amazon CloudFront를 사용한다.

    • s3를 위한 데이터센터보다 더 많은 edge를 갖기 때문에 네트워크 접근성이 좋다. 또한 https 로 파일을 제공할 수 있고 Amazon Route 53과 연계하여 사용자 도메인을 사용할 수 있다.
  • API Gateway 와 CloudFront에 사용자 지정 도메인을 사용하기 위해 DNS 서비스인 Amazon Route 53 을 사용한다.

    • AWS 내부 서비스들간의 dns 는 각 서비스에 대한 별칭으로 연결되기 때문에 IP 대역이 변경되어도 네임서버 갱신을 걱정할 필요가 없다.
  • API Gateway 와 CloudFront 는 기본으로 HTTPS 를 지원한다. 이는 AWS 에서 제공하는 SSL 인증서를 사용하므로 갱신에 대한 추가 작업이 필요하지 않다.

  • Lambda, API Gateway, CloudFront에서 발생하는 로그를 모두 Amazon CloudWatch 에서 모아서 볼수 있다.

  • CloudWatch는 각 AWS 지표 정보를 대시보드로 구축할 수 있다.

  • API Gateway와 Lambda는 욫어 횟수당 사용 금액을 계산하는 종량제 요금제다

  • API Gateway CloudFront로 들어오는 HTTPS 요청 또한 각각 1만 요청과 25만 요청으로 상당히 높고, 상황에 따라 기본 한도 값을 높일수 있다.

    장점

    • 쉽게 관리

    단점

    • AWS 관리도구를 사용하여 제어해야 하므로 복잡

    시스템을 3 요소로 나누면

    • CloudFormation으로 관리하는 API Gateway, Lambda, S3, CloudFront, CloudWatch, Route 53 인파라 및 서비스 요소들
    • Lambda에 올리기 위한 백엔드 코드
    • S3에 올리기 위한 프런트 엔드 코드

0개의 댓글