DVA-C02 대비자료 5 - Event Handling & Data Streaming
DVA-C02 대비자료 5 - Event Handling & Data Streaming
EventBridge
- 메인 계정의 권한을 설정해 모든 계정이 메인 계정의 EventBridge로 이벤트를 보내게 할 수 있음
- 각 계정에서 직접 전달 X
SQS
- 최대 메시지 크기 256KB
- SQS Extended Client를 사용해서 최대 2GB 메시지를 저장하고 사용하는데 유용
- 큐에 데이터를 저장하는 경우가 아니라면 S3 고려
- 대기열의 가시성 시간 초과 값은 초 단위이며 기본값은 30초 (0~43,200(12시간)의 정수)
- 최대 저장 메시지 제한은 없음
- 인플라이트 메시지(소비자가 큐에서 수신했지만 큐에서 삭제되지 않은 메시지)의 제한은 최대 약 120,000개로 규정
- 생성 후 큐 유형 변경불가
- 대기열 태그는 대소문자를 구분
- FIFO 큐의 데드 레터 큐도 FIFO 큐여야 합니다. 마찬가지로, 표준 큐의 Dead-Letter Queue도 표준 큐여야 합니다.
- 처리되지 않은 오류 처리를 위한 메시지 격리
- 비동기 호출과 모든 재시도에 실패한 Lambda의 처리
DeleteQueue
- SQS 테스트 후 대기열과 모든 내용을 삭제PurgeQueue
- 지정된 큐의 메시지를 삭제하고 큐는 그대로 유지DelaySeconds
- 대기열에 있는 모든 메시지의 전달이 지연되는 시간(초)- Delay Queue 생성됨
MessageRetentionPeriod
- Amazon SQS가 메시지를 보관하는 시간(초)을 제어- SQS KMS 활성화
- AWS Key Management Service(KMS)에서 제공하는 암호화 키를 사용하여 표준 및 FIFO 대기열에 저장된 메시지를 SQS에서 암호화하도록 선택 가능
ApproximateNumberOfMessagesVisible
- Amazon SQS 기반 확장 정책
- SQS 큐에 처리되지 않고 대기 중인 메시지 수
- 인스턴스당 백로그와 인스턴스당 허용 가능한 백로그 비교
- 인스턴스당 백로그
ApproximateNumberOfMessagesVisible
/ 인스턴스 수
- 인스턴스당 허용 가능한 백로그
- 메시지 수와 처리 시간과 허용 가능한 지연 시간 모두 고려할 필요가 있음
- 허용 가능한 지연 시간 / 메시지 처리 시간
- 인스턴스당 백로그 > 허용 백로그
- 인스턴스를 추가해 메시지 처리 속도를 높입니다.
- 인스턴스당 백로그 < 허용 백로그
- 인스턴스를 줄여 과도한 리소스를 방지합니다.
- 인스턴스당 백로그
- Target Tracking Scaling Policy
- Target Value에 도달하면 ASG 처리
- Polling
- 기본값은 짧은 폴링을 갖음
- 폴링으로 새로운 메시지가 메시지 큐에 왔는지 주기적으로 확인하는 프로세스를 의미
- 롱 폴링을 이용해서 SQS 사용 비용을 최소화할 수 있음
- 확장성이 뛰어나 많은 양의 작업을 처리하기 위한 어떠한 조치도 필요 없음
- 롤링 평균 구하기
- Lambda의 예약된 동시성을 1로 설정(인스턴스 1개 동작)
- Lambda에서 롤링 평균을 계산
- 계산된 롤링 평균을 Amazon ElastiCache에 저장
SNS
- SNS 알림 후 실패처리를 SQS로 처리가능
- SNS 주문 생성 알림을 수신해서 SQS 대기열에서
- SNS 토픽 필터로 필요한 구독자에게 알림이 가게 할 수 있음
- SNS + Lambda
- 이 경우 Lambda가 EC2 인스턴스 주문 이행 처리를 하도록 할 수 없음 » 서버리스 한계
SES
Throttling – Maximum sending rate exceeded
에러 해결방안을 위해 Exponential Backoff 사용- 즉시 공격적으로 재시도하는 대신, 클라이언트는 시도 사이에 일정 시간 동안 기다림
Throttling
오류로 거부된 요청은 나중에 재시도할 수 있으며 성공할 가능성이 높다.
Kinesis
Kinesis Data Stream
- Kinesis Data Firehose보다 다운스트림 애플리케이션을 통합하는 데 더 큰 유연성을 제공하고, 상대적으로 저렴
- Kinesis Data Stream은 수집과 저장에 더 중점을 두고 있으며, Kinesis Data Firehose는 처리 및 전송에 중점을 두고 있음
- PutRecords API
- 단일 호출에서 여러 레코드 작성
- 최대 500개
ProvisionedThroughputExceededException
- 스트림에 대한 요청 속도가 너무 높거나 요청된 데이터가 사용 가능한 처리량에 비해 너무 크다는 것
- “Hot” partition
- 요청 빈도나 크기를 줄이기
- 오류 재시도 및 지수 백오프 메커니즘 사용
- 데이터 스트림 내의 샤드 수를 증가시켜 충분한 용량 제공
Kinesis Data Firehorse
- S3, Elasticsearch Service, Redshift, Splunk와 같은 목적지에 실시간 데이터 스트리밍 데이터 전송을 위한 서비스
- ElastiCache는 지원 대상이 아님
- Kinesis Data Firehose는 데이터를 대상에 전달하기 전에 데이터 변환을 위해 AWS Lambda 함수를 사용할 수 있도록 지원
Kinesis Data Analytics
- SQL 쿼리와 정교한 Java 애플리케이션을 빌드하는 데 사용
Kinesis 서비스 | 설명 | 주요 특징 | 용도 |
---|---|---|---|
Kinesis Data Streams | 실시간 스트리밍 데이터를 캡처하고 처리하는 서비스 | - 데이터를 스트림으로 캡처하여 여러 소비자가 처리 - 자동 확장 가능 - 지속적인 데이터 처리 | - 실시간 분석 - 로그 데이터 스트리밍 처리 - 이벤트 기반 애플리케이션 |
Kinesis Data Firehose | 실시간으로 데이터를 스트리밍하여 S3, Redshift, Elasticsearch 등으로 전송 | - 자동으로 데이터 전송 및 적재 - 데이터 변환 기능 제공 - 데이터를 여러 타겟으로 전송 | - 실시간 데이터 적재 및 분석 - 로깅 및 모니터링 데이터 전송 |
Kinesis Data Analytics | Kinesis 스트림 및 Firehose 데이터를 실시간으로 분석하는 서비스 | - SQL 쿼리로 실시간 데이터 처리 - 스트림 데이터에 대한 실시간 분석 및 처리 - Lambda와 연동 가능 | - 실시간 데이터 스트리밍 분석 - 대시보드 업데이트 및 알림 시스템 구축 |
Kinesis Video Streams | 비디오 스트리밍 데이터를 캡처, 저장 및 처리하는 서비스 | - 실시간 비디오 스트리밍 및 데이터 캡처 - Amazon Rekognition과 연동 가능 - 안전한 비디오 데이터 저장 | - 비디오 분석 및 모니터링 - IoT 카메라에서 데이터 수집 |
ETC
- AWS Marketplace에서 Amazon Machine Images(AMI)를 사용하여 Amazon EC2에 확장 가능한 Oracle Real Application Clusters(RAC)를 배포
- 비용 예산 알림은 예측을 위한 5주간 사용 데이터가 필요
- CMS(Content Management System) 애플리케이션은 디지털 콘텐츠를 생성, 관리, 편집, 저장하는 소프트웨어 애플리케이션
- WordPress, Wix. 등
- AWS CLI
--dry-run
옵션 사용--dry-run
옵션은 실제로 요청을 하지 않고도 작업에 필요한 권한이 있는지 확인하고 오류 응답을 제공- 필요한 권한이 있으면 오류 응답은 DryRunOperation
- 그렇지 않으면 UnauthorizedOperation
- 개인 SSH키에서 공개 SSH키를 생성한 다음, 새로운 지역에서 사용가능
This post is licensed under CC BY 4.0 by the author.