Kafka (9) 썸네일형 리스트형 [AWS] Analysis Services 분석(Analysis) 최초 작성 일자: 2023-03-17 수정 내역: 2023-03-17: 최초 작성 Amazon Athena SQL을 사용해 S3의 데이터 쿼리 페타바이트 규모 데이터를 상주 위치에서 쉽고 유연하게 분석 사용 이유 서버리스 경험을 포함한 SQL 또는 Apache Spark 분석 워크로드의 시작이 간소화되고 거의 즉시 가능하다. 온프레미스, 데이터 레이크 또는 클라우드 스토어의 데이터를 사용하여 대화형 고급 분석 애플리케이션을 구축할 수 있다. 언어, 오픈 데이터 형식, 오픈 소스 프레임워크, BI 및 기계 학습(ML) 도구 통합을 지원하여 유연성을 높입니다. 실행된 쿼리에 대한 요금만 지불하므로 구성, 소프트웨어 업데이트 또는 인프라 확장에 따른 비용을 절약할 수 있다. 작동 방식 .. [Kafka] ETL, EAI, Streaming ETL vs EAI vs Kafka 이번 장에서는 ETL과 EAI에 대해서 알아보고 최근 많이 사용되고 있는 Kafka에 대해서 알아본다. ETL(Extracting & Transformation & Loading) 1990년대 소매 조직에서 구매자 트렌드를 분석하기 위해 사용되기 시적하였다. ETL은 다양한 데이터 소스에서 데이터를 추출(Extracting)하여 필요한 데이터로 변환(Transformation)하고 데이터를 필요로 하는 곳으로 로딩(Loading)하는 것을 의미한다. ELT을 쉽게 할 수 있게 제공해주는 툴을 제공하는 업체들이 존재하며 원하는 데이터로 변환하는 비즈니스 로직이 있어야 한다. 주로 데이터베이스의 데이터를 통합하는데 많이 사용되며 대용량 데이터를 일정 주기마다 배치성으로 처.. [MSA] Communication Communication MSA(Micro Service Architecture)에서 서비스와 프로세스 간 커뮤니케이션 방법에 대해서 알아본다. 전통적인 SOA(Service Oriented Architecture)에서 서비스 간 커뮤니케이션은 ESB(Enterprise Service Bus)로 알려져 있는 센트럴 런타임를 통해 구현되었으며 통신을 위한 로직이 비즈니스 로직의 중간 레이어에 존재한다. 반면 MSA는 ESB(중앙 메시지 버스)를 제거하고 다른 서비스를 호출하기 위해 필요한 비즈니스 로직 및 네트워크 통신 로직은 마이크로서비스의 일부분으로써 실행된다. 서비스 간 통신 MSA는 서비스 간 통신을 위해서 크게 액티브 컴포지션과 리액트 컴포지션 스타일이 있으며 둘을 혼합하여 사용하는 하이브리드 컴.. [Spring Cloud] 다중 마이크로서비스 데이터 동기화 이전 장(링크) 에서는 마이크로서비스 간의 데이터 동기화 문제를 해결하기 위하여 Kafka Connect를 사용해보았다. 이번 장에서는 동일한 역할을 하는 여러 서비스와 하나의 DB가 있을 때 Kafka를 사용하여 데이터를 동기화하는 방법에 대해서 알아본다. 모든 소스 코드는 깃 허브 (링크) 에 올려두었다. Service Flow 전체적인 서비스 흐름을 살펴보면 아래의 이미지와 같다. 여러 클라이언트가 유저 서비스에게 유저 정보 API를 호출한다. 유저 서비스는 주문 정보를 만들기 위해서 주문 서비스의 API를 호출해야하고 FeignClient 또는 RestTemplate을 통해 분산되어있는 주문 서비스를 호출하게 된다. 주문 서비스는 DB에 데이터를 넣기 위해 직접 SQL을 실행하는 것이 아니라 Ka.. [Spring Cloud] Kafka를 사용한 서비스간 데이터 동기화 이번 장에서는 우리 서비스에서 발생하는 데이터 동기화 문제를 해결하기 위해 Kafka를 적용시켜본다. 모든 소스 코드는 깃 허브 (링크) 에 올려두었다. 개요 우리는 지금까지 주문 서비스를 분산하게 되면서 DB 또한 동시에 분산되어 데이터의 동기화에 문제가 발생하는 것을 확인하였다. 이러한 문제를 해결하기 위해 Kafka와 추가 기능인 Source Connect, Sink Connect에 대해서 알아보았다. 이번 장에서는 우리가 학습한 Kafka를 활용하여 마이크로서비스 간에 발생하는 문제를 하나씩 해결해본다. 사용자는 주문 서비스를 통해 상품을 주문한다. 사용자는 자신의 주문 목록을 확인하기 위해 유저 서비스에 사용자 조회와 주문 확인 기능을 요청한다. 개선되는 구조를 확인해보면 주문 서비스는 주문을 .. [Spring Cloud] Connect - 활용 이전 장(링크) 에서는 Kafka의 Connect를 설치하는 방법에 대해서 알아보았다. 이번 장에서는 Source Connect와 Sink Connect를 사용하는 방법에 대해서 알아본다. 모든 소스 코드는 깃 허브 (링크) 에 올려두었다. 우리는 MariaDB의 Connect Source와 Connect Sink를 사용하여 아래와 같은 구조를 구축할 것이다. Connect Source는 데이터를 제공하는 쪽으로부터 데이터를 전달받아 Kafka Cluster로 전달하는 역할을 하고 Connect Sink는 Kafka Cluster를 대상 저장소에 전달하는 역할을 한다. 이전에 Producer와 Consumer를 사용하여 Kafka Cluster를 통해서 데이터를 제공하고 소비하는 작업을 진행했었다. 이번.. [Spring Cloud] Connect - 설치 이전 장(링크) 에서는 Kafka의 Producer와 Consumer를 활용하여 데이터를 전송하는 방법에 대해서 알아보았다. 이번 장에서는 Kafka의 Connect를 사용하기 위해 설정하는 방법에 대해서 알아본다. 모든 소스 코드는 깃 허브 (링크) 에 올려두었다. Kafka Connect 우리는 일반적으로 데이터를 어느 한 쪽에서 다른 쪽으로 이동시키기 위해 코드를 작성해서 하나씩 전달한다. 하지만 Kafka Connect를 사용하면 코드 작성없이 Configuration 정보를 통해서 데이터의 Import와 Export가 가능해진다. 단일 클러스터를 위한 Standalone mode와 다중 클러스터를 위한 Distribution mode를 지원한다. RESTful API를 통해 이러한 기능들을 지원.. [Spring Cloud] Kafka - Producer & Consumer 이전 장(링크) 에서는 Kafka를 소개하고 설치해보는 시간을 가졌다. 이번 장에서는 Kafka의 Producer와 Consumer를 사용하여 통신하는 방법에 대해서 알아본다. 모든 소스 코드는 깃 허브 (링크) 에 올려두었다. Producer & Consumer Zoopeeker 실행 Kafka를 설치하기 위해 다운받은 압축파일의 압축이 풀린 경로로 이동하여 아래의 커맨드를 입력한다. $ ./bin/zookeeper-server-start.sh ./config/zookeeper.properties 아래의 이미지와 같이 출력된다면 정상적으로 Zookeeper가 실행된 것이다. Kafka 실행 Zookeeper를 실행시킨 경로에서 아래의 커맨드를 입력한다. ./bin/kafka-server-start.sh.. 이전 1 2 다음