AWS_SAA_준비(36)

Tyun_Record·2023년 8월 21일
0

AWS SAA 준비

목록 보기
47/48

AWS Integration & Messaging

  • Synchronous communications
    • 애플리케이션이 또 다른 애플리케이션과 직접적으로 연결
  • Asynchronous / Event Based
    • 대기열 ( Queue ) 등으로 불리는 미들웨어가 애플리케이션과 애플리케이션을 연결

SQS - queue가 무엇인가?

  • 생산자와 소비자 사이를 분리하는 버퍼 역할을 함


SQS - Standard Queue (서비스 종류)

  • 완전 관리형 서비스
  • 애플리케이션을 분리하는데 사용
  • SQS 특징
    • 무제한 처리량, 즉 초당 원하는 만큼 메시지 전송 및 대기열에도 원하는 만큼 메시지 포함시킬 수 있음
    • 메시지는 기본값으로 4일, 최대 14일 대기열에 있을 수 있음
    • 짧은 지연시간 ( 게시 및 수신 10밀리초 이내 )
    • 전송된 메시지당 256KB 미만이어야함
    • 높은 처리량, 높은 볼륨 등이 있어 중복 메시지가 있을 수 있음

SQS - Producing Messages

  • 생산자는 SDK( 소프트웨어 개발 키트를 )를 사용하여 SQS에 메시지를 보냄
  • SQS에 메시지를 보내는 API = SendMessage
  • 메시지 작성 > 소비자가 읽음 > 삭제 전까지 SQS 대기열에 유지 > 삭제
  • 메시지 생성 사용 예시
    • 패킷과 같은 오더를 처리한 다음 센터로 배송하려고 한다
    • 따라서 원하는 시간에 해당 작업을 수행
    • Order id, Customer id, 원하는 속성 등의 일부 정보가 포함된 메시지를 SQS 대기열로 보냄

SQS - Consuming Messages

  • 일부 코드로 작성해야하는 애플리케이션
  • EC2 instances, 온프레미스 servers, AWS Lambda 등에서 실행될 수 있음

  • 소비자가 대기열에 자신의 앞으로 온 메시지가 있는지 확인 ( 최대 10개의 메시지 받을 수 있음 )
  • 메시지 처리 ( ex, 수신된 메시지를 Amazon RDS 데이터베이스로 삽입 )
  • 소비자가 DeleteMessage API로 대기열에 있는 메시지 삭제

SQS - Multiple EC2 Instance Consumers

  • 각 consumers는 poll 함수를 호출하여 다른 메시지 세트를 수신
  • 메시지가 consumer에 의해 빠르게 처리되지 않으면 다른 소비자가 수신
  • 그래서 메시지 순서를 지정해야함
  • SQS 대기열에서 처리량을 늘리려면 소비자를 추가하고 수평 확장을 수행하여 처리량 개선이 가능

SQS - Security

  • 사용 사례
    • HTTPS API를 사용하여 In-flight 중 암호화
    • KMS 키를 사용하여 미사용 암호화
    • 클라이언트 측 암호화 가능
  • 액세스 제어를 위해 IAM 정책으로 SQS API에 대한 액세스 규제 가능
  • S3 버킷 정책과 유사한 SQS 액세스 정책도 있음

SQS - Messsage Visibility Timeout

  • 소비자가 메시지를 폴링하면 다른 소비자들에게 보이지 않게 되는 것
  • 메시지 가시성 시간 초과 기본값은 30초
  • 30초 동안 메시지가 처리되어야 한다는 뜻
  • 가시성 시간 초과가 경과되고 메시지가 삭제되지 않으면 다시 대기열로 들어감
  • 즉 메시지가 두 번 처리될 수도 있음
  • ChangeMessageVisibility라는 API로 가시성 시간 초과 후에도 다른 소비자에게 메시지가 안보이도록 할 수 있음

SQS - Long Polling

  • 소비자가 대기열에 메시지를 요청하는데 대기열에 아무것도 없으면 메시지 도착을 기다리면 됨
  • 지연 시간을 줄이고 SQS로 보내는 API 호출 숫자를 줄이기 위함
  • 1초부터 20초 사이로 구성 가능
  • 대기열 레벨에서 구성하여 폴링하는 아무 소비자로부터 롱 폴링을 활성화하거나 WaitTimeSeconds를 지정함으로 소비자가 스스로 롱 폴링을 하도록 선택할 수 있음

SQS - FIFO Queue

  • FIFO = First IN First OUT
  • 소비자가 SQS FIFO 대기열로부터 메시지를 불러올 때 정확히 동일한 순서로 메시지를 받게 해줌
  • 묶음이 아닐 경우 초당 300개 메시지 처리
  • 묶음인 경우 초당 3000개 메시지 처리
  • 메시지 중복 방지 있음
  • SQS queue 만들 때 이름을 이름.fifo 로 설정해야함

SQS with Auto Scaling Group ( ASG )

Amazon SNS

  • "event producet"은 오직 한 SNS topic에만 메시지를 보냄

  • "event receivers ( = subscriptions )"는 해당 주제로 전송된 메시지를 모두 받게 됨

  • 메시지를 필터링하는 기능을 기능을 사용하는 경우에도 메시지를 받을 수 있음

  • 주제별로 최대 1,200만 이상의 구독자까지 가능

  • 계정당 최대 100,000개의 주제를 가질 수 있음

  • SNS는 다양한 AWS 서비스에 데이터를 송신함

  • SNS는 다양한 AWS 서비스에서 데이터를 수신함



  • SNS 게시 방법

    • Topic Publish ( using the SDK )
      • Create a topic
      • Create a subscription ( or many )
      • Publish to the topic
    • Direct Publish ( for mobile apps SDK )
      • Create a platform application
      • Create a platform endpoint
      • Publish to the platform endpoint
      • Works with Google GCM, Apple APNS, Amazon ADM...


  • Security

    • Encryption
      • In-flight encryption using HTTPS API
      • At-rest encryption using KMS keys
      • 클라이언트 측 암호화
    • Access Controls
      • SNS API가 IAM 정책으로 규제되어 IAM 정책 중심임
    • SNS Access Policies
      • S3 버킷 정책과 매우 유사
      • 주제에 교차 계정 액세스 권한 사용
      • S3 이벤트와 같은 서비스가 SNS 주제에 작성할 수 있도록 허용하는 경우 유용

0개의 댓글