AWS 서버리스로 서버 없이 간단한 웹 애플리케이션 만들기

Denver·2022년 9월 17일
0

AWS

목록 보기
1/3
post-thumbnail

주요 개념 설명

서버리스란?

: 고객이 직접 관리할 서버가 없다는 의미(AWS가 관리)

  • 사용한 만큼만 지불
  • 높은 보안 수준

AWS Labda란?

  • Cloud 서버 프로비저닝, OS 패치등은 AWS에서 운영하기때문에 고객이 관리할 필요 없다.
  • 서비스 트래픽 증가함에 따라 자동으로 스케일링된다.
  • 고가용성, 높은 보안수준
  • 코드 실행될 때만 과금된다.
    -> 사용량은 적지만 상시 운영해야하는 서비스에 적합하다
  • 다양한 개발 언어를 지원한다.
  • 데이터 상태 변화, 엔드포인트 연동, 리소스 상태 변화와 같은 이벤트 소스로 트리거되면 람다 실행 가능. 코드로 다른 서비스와 연동 가능하다.
    ex) 사용자가 회원가입한 경우 amazon api gateway endpoint 로부터 요청받은 사용자 정보를 DynamoDB에 저장된다
  • 데이터 처리 워크플로우 잡 파이프라인 트리거, 시스템 자동화 스케줄링 등 다양한 분야에서 사용된다.

Amazon API Gateway

API Gateway 는 AWS의 api 관리 서비스이다.

API 란?

일종의 형식을 정해놓고, 이 형식대로 서비스를 호출하면 해당 서비스를 제공해 주는 약속이다.

API Gateway는 이런 API 를 관리해주고 API 를 통해 외부에서의 호출이 왔을때 대문 역할을 하는 AWS 서비스이다.

API Gateway + 람다, 엘라스틱 로드밸런서 등 서비스들과 통합 가능하다.
API Gateway + lambda 연동하면 관리할 서버 없이 api 생성 가능하다.
api 인증, 전송간 암호화 적용해서 안전한 api 통신이 가능하다.

API 종류

AWS는 rest api, http api, web socket api를 제공한다.
rest, http api 는 모두 웹 프로토콜 스펙 준수한다.
둘다 restful api지만

  • http api를 최소한의 기능으로 설계해 비교적 저렴하다.
  • rest api는 api key, 요청 검증, aws waf 통합, private api endpoint 기능 필요한 경우 사용하면 된다.
  • web socket api는 실시간 채팅과같이 클라이언트간 양방향 통신이 필요한 경우 적합하다.

Amazon DynamoDB

DynamoDB는 완전관리형 NoSQL 데이터베이스 서비스이다.
장점

  • 서버리스의 장점이있다.
  • 오토스케일링이 가능하고, 고가용성, 내결함성, 높은 보안 수준을 보장한다.
  • API, ORM을 통한 세부적인 엑세스 제어가 가능하다.
  • 다른 서비스들과 통합 잘된다.
    예시) Dynamo Stream 설정으로 테이블이있는 레코드 항목 수준 캡쳐
    -> lambda로 파이프라인 구성해서 변경사항 있을 때마다 일괄 처리가능
    -> S3와 통합해서 자동테이블 내보내기
  • 확장에 최적화되어있다.
    일반적으로 SQLDB는 select는 복제본 서버로부하분산 가능
    Insert,update,delete는 master 서버에서 처리됨 -> 데이터 볼륨, 처리량 늘리기위해 스케일 업으로 확장, 서버 사양 높여야됨 -> 비용 크게증가, 단일 마스터 노드 수직확장 한계있음. 분산저장하는 샤딩가능하지만 어려움
    -> DynamoDB는 NoSQL기반이기때문에 다수의 샤드에 분산저장되고로 수평 확장쉬움

Core Concept 4

  • Table : Items collection
  • Items : row. Attribute collection OR key/value pair
  • Attribute : column.
  • Index :



실습

Lambda로 웹페이지 만들기


Web Service Lambda : 웹페이지. Function URL을 사용해 URL로 람다호출 가능. 버튼 클릭시 api url로 호출
API Gateway : REAT API. Get으로 api-service-create 람다 호출
Api service lambda : 랜덤으로 user, status 생성, DynamoDB 에 저장
DynamoDB : Username 저장

Web Service Lambda URL 접속 화면


Api service Lambda

API service Lambda 테스트 결과 화면

DynamoDB에보면 Jone, Serious 가 추가되었다

API URL 접속시

DynamoDB에서 조회해보면 Zon , Sad 항목이 추가되었다.

최종 화면

버튼 클릭시 api url이 호출 - api는 api labmda를 호출 - name, status 랜덤 생성, dynamoDB에 저장

dynamoDB에 Ama, Free 가 추가되었다.


참고 자료

다시보기
https://kr-resources.awscloud.com/aws-builders-korea-program/aug22-making-api-server-with-lambda-url
발표자료
https://kr-resources.awscloud.com/aws-builders-korea-program/aug22-making-api-server-with-lambda-url-deck
workshop
https://catalog.us-east-1.prod.workshops.aws/workshops/600420b7-5c4c-498f-9b80-bc7798963ba3/ko-KR/serverless

profile
까먹었을 미래의 나를 위해

0개의 댓글