2024/11 34

[AWS] AWS Integration & Messaging - Amazon MQ

Amazon MQSQS와 SNS는 AWS의 독접 기술이기 때문에 클라우드 네이티브 서비스이다.온프레미스에서 기존 애플리케이션을 실행하는 경우, 개방형 프로토콜인 MQTT, AMQP, STOMP, WSS, Openwire 등을 사용하면 된다.애플리케이션을 클라우드에 마이그레이션하는 경우에는 SQS, SNS 프로토콜 혹은 API를 사용하기 위해 애플리케이션을 다시 구축하고 싶지 않고 MQTT, AMOP 등과 같은 기존에 쓰던 프로토콜을 사용하고 싶을 수 있는데 이때 'Amazon MQ'를 사용하면 된다.상당한 간단한 서비스로 RabbitMQ와 ActiveMQ 두 가지 기술을 위한 관리형 메시지 브로커 서비스이다.RabbitMQ와 ActiveMQ는 온프레미스 기술로 앞서 설명했던 개방형 프로토콜 액세스를 제공..

[AWS] SQS vs SNS vs Kineseis

SQS소비자가 SQS 대기열에서 메시지를 요청해서 데이터를 가져오는(pull) 모델이다.데이터를 처리한 후 소비자가 대기열에서 삭제해서 다른 소비자가 읽을 수 없도록 해야 한다.작업자와 소비자가 함께 소비하고 대기열에서 삭제하니깐 작업자나 소비자 수는 제한이 없다.관리된 서비스이므로 처리량을 프로비저닝할 필요가 없고 아주 빠르게 수백 수천 개의 메시지로 확장할 수 있다.순서를 보장하려면 FIFO 대기열 즉, 선입선출 대기열을 활성화해야 한다.각 메시지에 지연 기능이 있어 30초 등 일정 시간 뒤에 대기열에 나타나도록 할 수도 있다. SNS게시/구독 모델로 다수의 구독자에게 데이터를 푸시하면 메시지의 복사본을 받게 된다.SNS 주제별로 1,250만 명의 구독자까지 가능하며 데이터가 한 번 SNS에 전송되면..

[내일배움캠프 솔직 후기] 비전공자가 4.5개월 만에 개발자로?

1. 내일배움캠프 이전의 삶저는 개발과 접점이 전혀없는 삶을 살아왔습니다. IT, 개발이라는 단어는 저에게 생소했고, 그저 막연히 어렵고 고된 일이라는 생각만 가지고 있었습니다. 하지만 코딩에 관심이 생기기 시작하면서 무작정 공부하기에는 두려움이 앞섰습니다. 그런 고민을 안고 여러 코딩 부트캠프를 찾아보니 "스파르타코딩클럽 내일배움캠프"를 알게 되었습니다. 내일배움캠프를 시작하며, 이렇게 깔끔하게 폴더를 정리하고 학습을 시작했습니다.나름 체계적으로 준비하려 했지만, 이후 공부량이 많아지면서 아래 사진처럼 폴더를 정리하기 시작했습니다.저의 개인적인 스타일로는 일자별로 정리해서 공부하면 찾기 매우 편했습니다.시간이 지나며, 체계적인 관리가 필요해 이렇게 일자별로 폴더를 새로 만들고 내용을 정리하기 시작했습니..

카테고리 없음 2024.11.28

[AWS] AWS Integration & Messaging - Kinesis와 SQS FIFO에 대한 데이터 정렬

Kinesis와 SQS FIFO에서 데이터가 어떻게 정렬되는지 보자.기술이 서로 비슷해 보이고 기능도 비슷한 편이지만 실제로는 아주 많이 다르다.밑의 사례로 살펴보자.Ordering data into Kinesis도로에 트럭이 100대가 있고 각각 트럭 ID가 있다고 하자.트럭1, 트럭2 그리고 트럭 100까지 도로에 있으며 GPS 위치를 주기적으로 AWS에 보낼 것이다.각 트럭의 순서대로 데이터를 소비해서 트럭의 이동을 정확하게 추적하고 그 경로를 순서대로 확인하려고 한다.어떻게 Kinesis로 데이터를 전달할까?  - 바로 파티션을 사용하면 된다. 이때 파티션 키 값은 트럭 ID이다.트럭 1은 트럭1의 파티션 키를 전송하고, 트럭 2는 트럭 2의 파티션 키를 전송할 것이다.  - 같은 파티션 키를 지..

[AWS] AWS Integration & Messaging - Kinesis Data Firehose

Kinesis Data Firehose생산자로부터 데이터를 가져올 수 있는 매우 유용한 서비스이며, Kinesis Data Streams에서 봤었던 내용 모든 것이 생산자가 될 수 있다.애플리케이션, 클라이언트 SDK 또는 Kinesis 에이전트는 모두 Kinesis Data Firehose로 생성될 수 있다. 그러나 Kinesis Data Stream을 Kinesis Data Firehose로 생성할 수도 있다.아마존 CloudWatch 로그 및 이벤트는 Kinesis Data Firehose로 생성될 수 있으며, 이러한 모든 애플리케이션은 Kinesis Data Firehose로 레코드를 전송할 것이고, 그런 다음 Kinesis Data Firehose는 람다 함수를 사용하여 데이터 변환을 선택할 수..

[AWS] AWS Integration & Messaging - Kinesis Data Streams

Kinesis Data StreamsKinesis Data Stream은 시스템에서 큰 규모의 데이터 흐름을 다루는 서비스이다.Kinesis Data Stream은 여러 개의 샤드로 구성되어 있고, 이 샤드는 1번, 2번에서 N번까지 번호가 매겨진다.  - 이 부분은 사전에 우리가 프로비저닝해야 한다.  - Kinesis Data Stream을 시작할 때 스트림을 여섯 개 샤드로 구성하겠다고 결정해야 한다.데이터가 모든 샤드에 분배가 되면, 샤드는 데이터 수집률이나 소비율 측면에서 스트림의 용량을 결정한다.위의 이미지 왼쪽에 생산자는 데이터를 Kinesis Data Stream으로 보낼 것이다. 생산자는 다양하고, 애플리케이션일 수도 있다. 데스크톱이나 휴대전화와 같은 클라이언트 일 수도 있고, 매우 낮..

[AWS] AWS Integration & Messaging - Kinesis

KinesisKinesis를 활용하면 실시간 스트리밍 데이터를 손쉽게 수집하고 처리하여 분석할 수 있다.  - 실시간 데이터에는 애플리케이션 로그, 계측, 웹사이트 클릭 스트림, IoT 원격 측정 데이터 등 어떤 것도 포함 될 수 있다.데이터가 빠르게 실시간으로 생성된다면 모두 실시간 데이터 스트림으로 간주 할 수 있다.Kinesis는 네 가지 서비스로 구성되어 있다.  - Kinesis Data Stresam       : 데이터 스트림을 수집하여 처리하고 저장한다.  - Kinesis Data Firehose       : 데이터 스트림을 AWS 내부나 외부의 데이터 저장소로 읽어 들인다.  - Kinesis Data Analytics       : SQL 언어나 Apache Flink를 활용하여 데..

[AWS] AWS Integration & Messaging - SNS + SQS : Fan Out

SNS + SQS : Fan Out (팬아웃 패턴)만약 다수의 SQS 대기열로 메시지를 보내려 할 때, 모든 SQS 대기열에 개별적으로 전송하려고 하면 문제가 발생할 수 있다.  - 예를 들어 애플리케이션에서 충돌이 발생하여 전송이 실패될 수도 있고, SQS 대기열을 더 추가하게 될 수도 있다.그래서 Fan Out 패턴을 사용해야 한다.SNS 토픽으로 한 번 메시지를 전송하고 원하는 만큼 SQS 대기열을 SNS 토픽에 구독시키는 것이다.이 대기열들은 구독자이고, SNS로 보내진 메시지들을 모두 받을 것이다. - 예를 들어, 어떤 물건을 구매했을 때 두 개의 대기열로 메시지를 전송하고 싶은 상황이면 각각 전송하는 대신, SNS 토픽에 한 개의 메시지를 전송하고 대기열 두 개가 SNS 토픽을 구독하고 있을 ..

[AWS] AWS Integration & Messaging - SNS

Amazon SNS메시지 하나를 여러 수신자에게 보낸다고 가정보자.이런 경우 직접 통합을 사용할 수 있는데, 구매 서비스 애플리케이션을 예로 들자면 이메일 알림을 보내고 사기 탐지 서비스와 배송 서비스 그리고 SQS 대기열에도 메시지를 보낼 수 있다. 하지만 수신 서비스를 새로 추가할 때마다 통합을 생성하고 작성해야 하므로 번거로울 수 있다.대신 Pub/Sub 즉, 게시/구독이라는 것을 사용할 수 있는데, 이를 통해 구매 서비스가 메시지를 SNS 주제로 전송할 수 있다. 메시지를 주제로 게시하는 것이다. 해당 주제에는 많은 구독자가 있으며 각 구독자는 SNS 주제에서 해당 메시지를 수신하고 이를 보관할 수 있다.Amazon SNS에서 "이벤트 생산자"는 한 SNS 주제에만 메시지를 보낸다."이벤트 수신자..

[AWS] AWS Integration & Messaging - SQS

AWS SQSSQS의 핵심은 대기열이다.SQS는 간단한 대기 서비스이고, 대기열에는 메시지를 포함한다.메시지를 담기 위해서는 무언가 SQS 대기열에 메시지를 전송해야 하는데 SQS 대기열에 메시지를 보내는 주체를 '생산자'라고 한다.   - 생산자는 한 개일 수도 그 이상일 수도 있다.여러 생산자가 여러 개의 메시지를 SQS 대기열에 보내게 할 수 있다.  - 메시지는 무엇이든 상관없다. 가령 '오더를 처리해라'일 수도 있고, '비디오를 처리해라'일 수도 있다.생성한 모든 메시지는 대기열에 들어간다. 그런 다음 대기열에서 메시지를 처리하고 수신해야 하는 대상을 '소비자'라고 한다.소비자는 대기열에서 메시지를 폴링하는데 이는 대기열에게 소비자 앞으로 온 메시지가 있는지를 물어보는 것이다. 만일 대기열에 메..