* 실습내용
# 6. 서버리스 서비스 활용
- Lambda로 웹 페이지 생성
- Lambda로 API 서비스(웹 기능) 생성
- DynamoDB와 API Gateway 생성
- Lambda 웹 페이지 연결 및 테스트
* Serverless
- 애플리케이션 운영 시, 개발자가 서버를 직접 관리하거나 유지하지 않아도 되는 클라우드 컴퓨팅 모델
- 리소스를 상시 구동하는 방식이 아니라 요청이 있을 때에만 리소스를 할당하여 코드를 빠르게 실행하고, 요청이 종료되면 중단하는 방식이므로 비용 절감 효과가 높다.
- 자동 확장/축소가 가능하도록 설계되어 급격한 트래픽 변화에 유연한 대응이 가능하다.
* AWS Serverless Services
1. AWS Lambda
- 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 이벤트 중심의 서버리스 컴퓨팅 서비스
- 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 로깅 등 리소스 관리를 수행한다.
- 하루 수십개~초당 수십만개까지 어떤 규모에서든 코드 실행 요청에 자동으로 응답할 수 있다.
- 사용한 만큼만 비용을 지불한다. (요청 수, 요청 처리 시간, 할당된 메모리 양 등)
(1) Lambda 특징
- Node.js, JAVA, Python, C#, Go, Ruby 등을 지원한다.
- Lambda API 호출 또는 이벤트에 대한 응답으로 코드를 실행한다.
- 상태 비저장(Stateless) 코드를 실행한다.
- 최대 명령 실행시간 15분, 실행시 메모리 최대 10GB이다.
=> 짧고 빠르게 작업할 때 좋은 서버리스 서비스!
2. AWS Step Functions
* 워크플로우 구현 필요 사례
![]() |
|
1) 연속(순차 처리) - 여행을 가기 위한 각종 예약 및 결제 - 호텔 예약, 항공권 예약, 결제, 결과 확인 등 |
2) 조건에 따른 분기 처리 - 신용 한도 증가 요청할 경우 조건에 따라 결정 - 요청이 고객의 신용 한도보다 큰 경우 승인 거절 - 요청이 고객의 사전 승인된 한도보다 작은 경우 요청을 자동으로 승인 |
- 일련의 단계로 구성된 워크플로우를 설계하고 실행할 수 있도록 하여, 작업을 보다 쉽게 조정할 수 있게 하는 완전 관리형 서비스
- 상호 종속성이 있는 작업을 관리하기 위한 포괄적인 워크플로우를 생성하는 데에도 유용하다.
- 시각적 워크플로우를 사용하여 분산 애플리케이션과 마이크로 서비스의 구성 요소와 단계를 손쉽게 조정할 수 있다.
* 상태 시스템 (State Machine)
- 이전 단계의 상태 정보를 보유하고 있는 객체로, 이를 활용하여 워크플로우를 구성한다.
"MSA 혹은 서버리스 아키텍처에서는 수많은 서비스에 대한 API 호출, 인증 처리 등이 이루어져야 하는데, 이를 쉽게 관리할 수 있는 방법은 없을까?"
3. API Gateway
- 마이크로 서비스는 클라이언트가 여러 서비스와 상호 작용해야 하므로 세분화된 많은 API 생성 및 관리가 필요하다.
- 예를 들어, 제품 정보가 필요한 클라이언트는 수많은 개별 서비스에서 데이터를 가져와야 한다.
- 다수의 마이크로 서비스에 액세스 하기 위하여 API Gateway를 활용하여 API를 생성, 등록 및 관리, 인증 및 보안, 트래픽 관리를 용이하게 수행할 수 있다.
![]() |
![]() |
출처 : https://docs.solo.io/gloo-mesh-gateway/main/concepts/about/api-gateway/
* AWS API Gateway
- 클라이언트가 백엔드 서비스에 엑세스할 수 있게 해주는 "관문" 역할을 수행한다.
- 개발자가 API를 손쉽게 생성, 유지 관리하기 위한 다양한 기능을 제공한다. (HTTP, REST, WebSocket API를 지원한다.)
- API 버전 관리, 인증 및 권한 부여 등의 액세스 제어, 캐싱, 트래픽 관리를 비롯해 최대 수십만 건의 동시 API 호출을 수락 및 처리하는 데 관련된 관리 작업을 지원한다.
(1) CORS 설정
- Cross-Origin Resource Sharing
- 브라우저는 보안상의 이유로 원래 교차출처 HTTP 요청들을 제한한다.
- 따라서 교차 출처의 리소스를 요청하려면 해당 서버의 동의가 필요한데, 이러한 허락을 구하고 거절하는 매커니즘이 교차 출처 리소스 공유이다.
- 기본적으로 API Gateway는 다른 도메인의 API를 호출할 수 없게 설정되어 있으므로, 이를 가능하게 하려면 OPTIONS 메서드를 통해 다른 도메인 리소스에 요청이 가능한지 확인이 필요하다. (CORS를 설정)
ex. A는 우리가 만든 웹사이트 / B는 API를 제공하는 서버(다른 회사 데이터)
=> A가 B의 정보를 가져오라고 할 때, B가 "이 요청을 허락할까요?" 라고 물어보는게 CORS 설정
=> A : 온라인 쇼핑몰, B : 결제 처리 시스템
(2) 장바구니 마이크로 서비스 구현
'클라우드 서비스' 카테고리의 다른 글
[클라우드 서비스] Automation _20241206 (0) | 2024.12.09 |
---|---|
[클라우드 서비스] Loosely Coupled Arch. _ 20241205 (0) | 2024.12.08 |
[클라우드 서비스] Elasticity & HA _ 20241205 (2) | 2024.12.08 |
[클라우드 서비스] Microservices_20241205 (1) | 2024.12.08 |
[클라우드 서비스] Database Service _ 20241204 (2) | 2024.12.06 |