본문 바로가기
Amazon Web Serivce 자격증 쉽게 공부하기/AWS Solutions Architect Associate 핵심

SAA-C03 핵심 #18, Decoupling Service, Kinesis

by 네트워크 엔지니어 환영 2023. 12. 11.
반응형

Messaging의 정의와 필요성

  • 메시징은 애플리케이션(서비스)간의 통신을 목적으로 한 매개체인 메시지를 주고 받는 것을 의미함
  • 주문을 담당하는 애플리케이션과 배송을 담당하는 애플리케이션이 각각 있다면 원활한 서비스 제공을 위해 서로 통신을 해야함
    • 주문 애플리케이션과 배송 애플리케이션이 서로 주고 받는 데이터가 바로 메시지
    • 주문 애플리케이션과 배송 애플리케이션이 직접 메시지를 주고 받는 것을 동기식 통신이라 부름
  • 주문 애플리케이션과 배송 애플리케이션 사이에 매개체(Queue)를 두고 메시지를 주고 받는 것을 비동기식 통신이라 부름
  • 주문 / 배송 애플리케이션의 데이터 처리 스펙이 다르다면 통신에 문제가 생길 수 있음, 한쪽이 메시지를 처리하는 동안 다른 한쪽은 그 메시지를 처리하지 못하고 유실할 것임
  • 각각의 애플리케이션이 직접 통신하는 것을 방지하고(Decouple), 매개체(Queue)를 통해 메시지를 주고 받는 것이 이러한 문제에 대한 대안이 될 수 있음
  • SQS, SNS, Kinesis가 이러한 분리 매개체에 해당함
    • SQS : Queue Model
    • SNS : Public/Subcribe Model
    • Kinesis : Real-time Streaming Model

 

Kinesis

  • 실시간 데이터(메시지, 데이터가 빠르게 생성되는)를 수집하고 저장하여 분석하는 서비스
  • kinesis는 4가지 서비스로 구성됨(시험 출제 항목은 "Data" 서비스가 주를 이룸)
    • Kinesis Data Streams
    • Kinesis Data Firehose
    • Kinesis Data Analytics
    • Kinesis Video Streams

 

Kinesis Data Streams

  • 생산자가 생성하는 대규모 실시간 데이터를 소비자로 하여금 처리하게 하기 위해 "수집 및 저장"하는 서비스
  • 생산자가 데이터를 생성하여 Data Stream에 Push하고 저장하면 소비자가 Data Stream에 적재된 데이터를 EC2에서 실행하는 애플리케이션 혹은 Data Firehose를 통해 결과를 저장할 수 있음
  • 실시간으로 쌓은 데이터는 아래의 서비스에서 수집할 수 있음
    • Kinesis Data Firehose
    • Kinesis Data Analytics
    • Kinesis Client Libray(KCL)
    • AWS Lambda
    • EC2
    • EMR Cluster 등
  • 사용 예시 
    • 다수의 웹사이트에서 생산하는 Click Stream Data를 모아 Data Stream에 저장한 후, Data Firehose를 거쳐 S3에 저장 및 분석
  • Kinesis Data Streams의 주요 용어
    • Data Record(데이터 레코드) : Kiensis Data Streams에서 저장되는 데이터의 단위
    • Shard(샤드) : 일정 수 이상의 데이터 레코드가 모인 고유한 순서
    • Data Stream(데이터 스트림) : 일련의 데이터 집합, 일정 수 이상의 샤드가 모여 구성됨
    • Partition Key(파티션 키) : 샤드별로 데이터를 그룹화하는데 사용되는 키
  • 데이터 레코드가 순서를 이루어 샤드가 되고 샤드가 모여 데이터 스트림이 됨
  • 보존기간 : 데이터 레코드를 스트림에 추가한 후 데이터 레코드에 액세스할 수 있는 시간, 24시간

 

Kinesis Data Firehose

  • 생산자가 생성하는 실시간 데이터를 캡쳐 및 변환하여 지정된 대상으로 "전송"할 수 있는 서비스
  • 데이터의 변환이 가능하다는 특징을 지님
  • 전송 대상에는 Amazon S3, Amazon Redshift, Amazon OpenSearch Service, Kinesis Data Analytics뿐만 아니라 Splunk 같은 서비스 공급자가 존재함

 

Kinesis Data Analytics

  • 실시간 데이터를 처리하고 분석할 수 있는 서비스
  • SQL, Python, Scala 등을 활용해 데이터 분석이 가능
  • Data Streams나 Firehose로부터 받은 데이터를 분석한 후, 다시 동일한 소스로 보낼 수 있음
  • Kinesis Data Analytics Studio Notebook을 시작하여 스트림 데이터를 대화형으로 분석할 수 있음
반응형

댓글