DevOps & Tools
이번 포스팅에서는 Kafka Connector를 설치하고, 데이터베이스와 같은 Source들 사이에서 데이터 이동을 Kafka Connect를 연결하여 수행해보려고 한다. Kafka에 대한 대략적인 개념은 해당 포스팅에 작성하였으므로 참고하면 좋을 것 같다. https://sjh9708.tistory.com/151 [Apache Kafka] Kafka의 주요 개념과 구성 요소 Apache Kafka는 데이터의 실시간 스트리밍 및 이벤트 처리에 유용한 도구로서 활용된다. Kafka는 대규모 분산 시스템에서 안정적이고 확장 가능한 메시지 큐와 이벤트 스트리밍 플랫폼으로 사용되 sjh9708.tistory.com Kafka Connect Connect를 통해 Source System(특정 데이터 소스, 스토..
해당 포스팅에서는 Kafka를 설치하고, CLI를 통해 Publisher, Consumer 간의 메시지 교환을 확인해보려고 한다. Kafka에 대한 대략적인 개념은 해당 포스팅에 작성하였으므로 참고하면 좋을 것 같다. https://sjh9708.tistory.com/151 [Apache Kafka] Kafka의 주요 개념과 구성 요소 Apache Kafka는 데이터의 실시간 스트리밍 및 이벤트 처리에 유용한 도구로서 활용된다. Kafka는 대규모 분산 시스템에서 안정적이고 확장 가능한 메시지 큐와 이벤트 스트리밍 플랫폼으로 사용되 sjh9708.tistory.com Kafka Server 설치 https://kafka.apache.org/downloads Apache Kafka Apache Kafka..
Apache Kafka는 데이터의 실시간 스트리밍 및 이벤트 처리에 유용한 도구로서 활용된다. Kafka는 대규모 분산 시스템에서 안정적이고 확장 가능한 메시지 큐와 이벤트 스트리밍 플랫폼으로 사용되어, 데이터의 실시간 처리 및 분석에 사용된다. 여러 대의 Application의 로그 및 데이터를 수집하여 집계하거나, 서버들 간의 데이터 동기화를 위한 메세지 교환을 위해서 Kafka는 매우 유용한 수단이 될 수 있다. Kafka의 주요 특징 Event-Oriented : Kafka는 이벤트 스트리밍 플랫폼으로서, 발생하는 이벤트가 중심이 되어 시스템이 구성된다. 이벤트를 실시간으로 수집하고 처리한다. Publish-Subscribe 모델 Consumer(메시지를 받는 주체)가 어느 Topic(카테고리라..
Mac M1에서 Dockerfile을 빌드하여, Dockerhub에 배포한 후, AWS의 Ubuntu에 해당 이미지를 다운로드 받은 후, Docker-compose를 통해 배포하려고 시도하였다.. 해당 과정에서, Dockerfile의 이미지를 내려받는 중 JDK 플랫폼 불일치 에러 "exec format error"가 발생하였다. "exec /usr/local/openjdk-11/bin/java: exec format error 구글링을 통해 나온 해당 문제점은 아래와 같았다. Mac M1에서 Docker를 빌드한 이미지는 ARM64 아키텍처를 사용하므로, Ubuntu 서버에서 실행하려면 AMD64 아키텍처에 호환되는 이미지를 빌드해야 한다. 즉, Mac OS의 M1에서 발생하는 고질적인 문제가 원인이었..
쿠버네티스란? 쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 플랫폼의 하나로, 분산 시스템을 관리하고 배포하는 데 사용된다. 쿠버네티스는 컨테이너화된 애플리케이션을 자동화된 방식으로 관리하고 확장할 수 있도록 도와준다. 쉽게 말해서 컨테이너 기술을 제공해 주는 것의 예시가 도커라면, 쿠버네티스는 컨테이너들의 집합을 관리해주는 플랫폼이다. 예를 들어 생각해보면, 우리가 웹 서버를 여러대의 서버 인스턴스(컴퓨터)들에서 도커 컨테이너로 운영하고 있다고 생각해보자. 만약 쿠버네티스를 사용하지 않는다면, 우리는 배포할 때에, 일일이 서버 인스턴스에 접속해서 도커 명령어를 통해 업데이트를 진행해야 하는 번거로움이 있을 것이다. 쿠버네티스는 이런 일련의 과정을 자동화해주며, 도커 호스트 관리, 컨테이너 배..
이전 포스팅에서 Spring Boot 프로젝트를 Dockerfile을 작성하여 빌드하고, 컨테이너상에서 실행시키는 것. 그리고 Dockerhub에 배포해 보는 것까지를 해 보았다. https://sjh9708.tistory.com/81 [Docker] Spring Boot App을 Dockerlizing하기 : 1. 이미지와 컨테이너, 그리고 Dockerfile 작성하기 이미지 컨테이너 실행에 필요한 모든 파일과 설정 등을 포함하는 템플릿이다. 컨테이너를 실행하기 위한 환경설정, 작업 디렉터리, 환경변수, 실행할 명령어 등을 정의한 패키지 파일이라고 볼 sjh9708.tistory.com 이제 여러개의 컨테이너들을 한 번에 실행시키고 상호연결시킬 수 있도록 하는 docker-compose에 대해서 알아보..
이미지 컨테이너 실행에 필요한 모든 파일과 설정 등을 포함하는 템플릿이다. 컨테이너를 실행하기 위한 환경설정, 작업 디렉터리, 환경변수, 실행할 명령어 등을 정의한 패키지 파일이라고 볼 수 있다. 여러 개의 레이어(layer)로 구성된다. 각 레이어는 이전 레이어의 변경 사항을 적용하여 구성된다. Docker 이미지의 변화가 있다면, 컨테이너를 실행시키기 위해 모든 내용을 전부 다시 빌드하는 것이 아니라, 변경이 필요한 부분만을 다시 빌드하게 된다. 레이어 기반의 구조는 이미지 크기를 최소화하고 이미지 간에 공통된 레이어를 공유하여 효율적인 디스크 공간 사용을 가능하게 한다. 이미지는 Dockerfile이라는 텍스트 파일에 정의된다. Dockerfile은 어떻게 이미지를 빌드할지에 대한 명령과 설정을 포..
가상 머신의 등장과 문제점 컴퓨터 기술의 발전에 따라서, 컴퓨터 안에서 또다른 컴퓨터를 만들어 이용할 수 있게 하는 기술이 생겨났다. 이를 가상 머신이라고 한다. 한 컴퓨터에서 두 개 이상의 운영체제를 사용이 가능하게 하는 기술 컴퓨터의 시스템 환경에 영향을 받지 않고 독립적인 환경에서 Task를 진행 가능 가상화 기술을 이용하여 서버를 임대해주는 기술이 바로 클라우드 서비스 하지만 이런 가상 머신에는 문제점이 있었다. 컴퓨터를 그대로 복제하여 사용하기에 독립적인 운영체제(Guest OS)를 생성한다. 따라서 용량을 많이 잡아먹으며 성능 문제이 발생한다는 측면이 있었다. 이를 바탕으로 컨테이너 기반의 격리 환경을 만들어주는 Docker가 사용되기 시작하였다. Docker란 무엇인가? 1. 반가상화 기존의..