Cloud/AWS Certified Solutions Architect - Asso

애플리케이션 통합

Tony Lim 2023. 8. 23. 09:11
728x90

Simple Queue Service(SQS)

SQS 메시지를 대기하게 하여 앱 간에 느슨한 결합을 제공

  • SQS는 Poll 방식으로 메시지를 전송 (Consumer 가 메시지를 요청하여 받는 방식)
  • Consumer가 메시지를 소비하면 SQS Queue에서는 메시지가 삭제됨

 

SQS - DLQ , Dead Letter Queue

  • 일반적으로 메시지는 처리될 때까지 게속 메시지를 보냄
  • 이 경우 다른 메시지처리까지 영향을 줄 수 있음
  • 일정 횟수 이상 시도 후 처리되지 못한 메시지는 DLQ로 이동하여 보관

 

SQS - 제한 시간 초과/표시 (Visibility Timeout)

  • 메시지 소비자가 대기열에서 메시지를 수신하고 처리하면 메시지는 게속 대기열에 있음
  • 연결 문제 또는 메시지 소비자의 앱 문제로 인해 메시지를 다시 수신해야 할 수 있기에 sqs에서 메시지를 자동으로 삭제 하지 않음
  • 소비자가 메시지를 수신하고 처리한 후 대기열에서 이 메시지를 삭제해야함
  • 제한 시간 초과는 메시지 소비자가 메시지를 수신 후 다른 소비자가 메시지를 다시 처리하지 못하게 하기 위한 기간 (SQS에서 다른 소비자가 메시지를 수신하고 처리할 수 없도록 차단하는 기간)
  • 메시지의 기본 제한 시간은 30초 (0초 ~ 12시간

 

SQS - Short Polling , Long Polling

  • 폴링은 SQS queue로부터 메시지를 가져오는 방법 (consumer가 메시지를 요청)
  • short polling (default) = queue가 비어 있으면 메시지 소비자의 메시지 요청을 즉시 반환함
  • long polling = queue에 메시지가 비어있으면 메시지가 도착할 때까지 or 메시지 수신 대기시간이 완료 될때까지 메시지 요청을 기다림
  • 메시지 수신 대기시간은 1초 부터 최대 20초까지 설정 가능
  • Long polling을 사용한 빈 응답의 수를 제거함으로 sqs 사용 비용을 절감할 수 있음

 


SNS (Simple Notification Service)

  • publisher 에서 subscriber 로 메시지를 전송한다.
  • SQS 처럼 consumer가 요청하는 polling 이 아니라 producer가 메시지를 consumer에게 전송하는 push 방식이다.
  • 전송 순서
    1. SNS에서 주제(Topic) 생성
    2. 구독 생성 (메시지를 받는 사람)
    3. 메시지 생성
    4. 구독자에게 메시지 전달

 

SNS + SQS Fan Out

  • SNS를 사용하면 앱에서 정기적으로 업데이트를 확인하거나 폴링할 필요 없이 푸시 메커니즘을 통해 다수의 구독자에게 메시지를 보낼 수 있음
  • SQS는 분산 앱에서 폴링 모델을 통해 메시지를 교환하는데 사용되는 메시지 대기열 서비스
    이 서비스를 통해 송신 구성요소와 수신 구성요소를 분리함

 

SNS FIFO Topic

  • SNS FIFO 주제 (topic) 는 메시지가 주제에 게시된 정확한 순서로 구독된 SQS FIFO 대기열에 메시지를 전달함
  • SQS FIFO 대기열을 사용하면 대기열의 소비자는 메시지가 대기열로 전송된 정확한 순서로 메시지를 수신
  • 예) 은행 거리로그, 주식 시세 표시기, 항공편 추적기, 가격 업데이트 , 뉴스 브로드캐스팅, 인벤토리 관리

 


Kinesis

  • 실시간 스트리밍 데이터를 손쉽게 수집, 처리 및 분석 하는 서비스
  • 비디오, 오디오 , 앱 로그 , iot telmetry data 등 실시간 데이터를 수집
  • 데이터가 수집된 후에야  처리를 시작할 수 있는 것이 아니라 데이터가 수신되는대로 처리 및 분석
  • Kinesis 서비스 유형
    • Kinesis Data Streams = 데이터 스트림을 수집, 저장 및 처리
    • Kinesis Data Firehose = 데이터 스트림을 AWS 데이터 스토어에 로드
    • Kinesis Data Analytics = SQL 또는 Apache Flink로 데이터 스트림 분석
    • Kinesis Video Stream = 비디오 스트림을 수집, 저장 및 처리

 

Kinesis Data Streams

  • 데이터 스트림을 캡처, 처리 및 저장할 수 있는 스트리밍 데이터 서비스
  • 실시간 서비스
  • Amazon DynamoDB , Aurora , Cloudwatch 와 같은 AWS 서비스의 기존 리소스에서 데이터를 보낼 수 있음
  • 스트리밍 중인 데이터를 lambda, data firehose 등으로 전송함
  • 데이터 스토리지가 있음 (1~365일 사이의 기간으로 데이터 보관)

 

Kinesis Data Firehose

  • 스트리밍 ETL(extract, transform , load) 솔루션
  • 스트리밍 데이터를 데이터 스토어와 분석 도구에 로드
  • 스트리밍 데이터를 캡처하고 변환한 후 s3, redshift , opensearch service 및 splunk 로 로드하여 비즈니스 인텔리전스 도구 및 대시보드를 통해 거의 실시간으로 분석
  • 거의 실시간 서비스 (near realtime)

 

Kinesis Data Analytics

  • SQL 또는 Apache Flink 를 사용하여 실시간으로 스트리밍 데이터를 변환하고 분석
  • Apache Flink는 데이터 스트림 처리를 위한 오픈 소스 프레임워크 및 엔진
  • Amazon Kinesis data streams 및 kinesis data firehose 스트리밍 소스로부터의 데이터 수집 가능

 

Amazon MQ

  • Apache Active MQ 및 Rabbit MQ용 관리형 메시지 브로커 서비스
  • JMS 및 NMS 와 같은 업계 표준 API와 AMQP , STOMP , MQTT , WebSocket 등을 비롯한 메시징 프로토콜을 지원
  • 활성 / 대기 브로커 배포모드를 지원하여 고가용성 및 장애조치 가능
  • 클라우드 기반의 앱은 SNS , SQS 메시지 서비스를 사용하는 것을 추천 (스케일링, 고가용성, 더 나은 성능, 더 많은 기능 등)
  • 기존에 activemq, rabbitmq등의 앱을 온프레미스에서 사용하고 있고 코드의 변경없이 클라우드로 마이그레이션을 하는 경우 사용한다.

 

API Gateway

개발자가 API를 생성 , 게시 ,유지관리, 모니터링 및 보안유지를 할 수 있게 하는 서비스

Restful API , WebSocekt API를 지원함

 

 

AWS Step Functions & Amazon AppFlow

AWS Step Functions

  • 시각적 워크플로 (workflow) 구축 서비스
  • 앱의 구성요소를 단계별로 배열 하여 다단계 앱을 구축하고 실행
  • 예)  웹 앱: 사용자 등록 프로세스와 로그인 인증 구현

Amazon AppFlow

Saas 앱과 AWS간에 안전하게 데이터를 전송할 수 있게 해주는 서비스

saas 앱과 데이터를 교환하기 위해 aws 서비스용 api 커넥터를 구축하고 관리할 필요가 없다.

 

 

 

728x90

'Cloud > AWS Certified Solutions Architect - Asso' 카테고리의 다른 글

관리 및 거버넌스  (0) 2023.08.24
보안 및 자격 증명  (0) 2023.08.24
데이터 분석 서비스  (0) 2023.08.22
데이터베이스  (0) 2023.08.21
글로벌 전송  (0) 2023.08.17