인프라 14

카프카 101

https://youtu.be/kBGR6cwVqv0?si=kdTN_o9dZeaSpeX0 카프카란 무엇이고, 왜 사용되는 지 카프카는 실시간 이벤트 스트리밍 플랫폼이다. 실시간으로 발생되는 대규모의 데이터를 스트리밍하고 처리하고 분석하는 데 특화되어 있다. 라이브 스트리밍, 데이터 처리 및 분석과 관련된 특징들을 보면 다음과 같다. 메시지 큐를 사용해서 데이터를 배치 처리하고 순서를 보장 복제본을 운영하여 서버가 죽었을 때 다른 서버가 대응 트래픽에 따라 스케일 아웃할 수 있음 이벤트 자체를 저장하여 현재 상태에 이르기까지의 전체 과정을 볼 수 있음 데이터를 영구적으로 저장하여 데이터를 언제든 다시 활용할 수 있게 합니다. 이런 특징으로 인해 실시간, 대규모 데이터를 처리하고 분석해야 하는 곳에서는 카프카..

인프라 2023.10.02

카프카 스키마 레지스트리 구성하기

할 일 컨플루언트 카프카 다운로드 스키마 레지스트리 옵션 설정 스키마 레지스트리 실행 스키마 레지스트리 구성 컨프루언트 커뮤니티 팩 설치하기 스키마 레지스트리는 아파치 카프카에서 지원하지 않고, 컨플루언트 카프카에서 지원한다. 컨플루언트 카프카의 스키마 레지스트리를 사용할 때는 비상업적인 용도로 써야 무료다. sudo wget https://packages.confluent.io/archive/6.1/confluent-community-6.1.1.tar.gz sudo tar zxf confluent-community-6.1.1.tar.gz -C /opt/ sudo ln -s /opt/confluent-6.1.1 /opt/confluent 스키마 레지스트리 옵션 설정 sudo vi /opt/confluen..

인프라 2023.09.22

카프카 클러스터 구성하기

클러스터 구성 주키퍼 클러스터 1개 - 주키퍼 서버 3개로 구성됨 카프카 클러스터 1개 - 카프카 서비 3개로 구성됨 할 일 주키퍼/카프커 클러스터 공통 설정: JRE 설치, 호스트명 설정, 아파치 카프카 다운로드 주키퍼 클러스터에만 설정: 아파치 카프카 주키퍼 클러스터 설정 → 주키퍼 서버 띄우기 카프카 클러스터에만 설정: 아파치 카프카 카프카 클러스터 설정 → 카프카 서버 띄우기 공통으로 할 일 JRE 설치 sudo yum install java-17-amazon-corretto-headless 호스트명 설정 sudo vi /etc/hosts # 아래 내용을 추가한다. [주커퍼1 프라이빗IP] zookeeper1 [주키퍼2 프라이빗IP] zookeeper2 [주키퍼3 프라이빗IP] zookeeper3..

인프라 2023.09.17

13. 도커 스웜-1

도커 스웜 여러 대의 컴퓨터 위에서 하나의 애플리케이션을 구성하는 서비스를 복수개의 컨테이너로 띄우고 이 컨테이너간에 통신하고 데이터를 주고 받게할 수 있도록 오케스트레이션하는 것 하나의 거대한 애플리케이션에 굉장히 많은 컨테이너들이 존재하며, 이들이 유기적으로 동작하는 모습을 Swarm(떼, 군락)에서 차용 컨테이너 오케스트레이션 컨테이너 기반의 애플리케이션의 배포, 관리(로드밸런싱, 모니터링 등) , 스케일링, 네트워크 설정 등을 자동화하는 것 Docker Swarm, Kubernetes 등의 오케스트레이션 툴이 있음 도커 스웜 개요 컨테이너 오케스트레이션을 위한 툴: 하나의 서비스를 실행하는 여러 개의 도커 컨테이너를 관리 도커를 실행하고 클러스터에 join되는 머신 그룹 여러 개의 도커 호스트로 ..

인프라 2021.04.19

10. 도커 스토리지

출처: youtu.be/EWoOzcfpP-w 도커 컨테이너에 파일을 저장할 때의 문제점 컨테이너가 죽으면 파일도 같이 사라짐 컨테이너 안의 파일을 도커 밖에서 가져오기 힘듦 컨테이너의 writable layer가 호스트 머신과 강하게 결합되어 있어서, 데이터를 옮기기 힘듦 컨테이너의 writable layer에 쓰는 것은 스토리지 드라이버를 필요로 하는 데, 성능이 좋지 않음 => 데이터를 도커 컨테이너의 외부에서 관리하는 것이 좋음 호스트 머신에 파일 저장하는 방법 Volumes: 호스트 머신의 파일 시스템 중 도커에 의해 관리되는 영역에 저장 Bind mounts: 호스트 머신의 파일 시스템 아무곳에나 저장 기타: tmpfs mounts, named pipe 등 https://docs.docker.c..

인프라 2021.04.04

11. Docker Compose

출처: youtu.be/iJkDSZRReEQ?list=PLz7S5PHCu4OlEaF8PlxCY2IDEBaYVhu9j 도커 서비스 개념 하나의 애플리케이션을 구성하는 기능 단위 예: 비디오 스트리밍 애플리케이션을 구성하는 서비스들 비디오를 DB에 저장하는 서비스 비디오를 트랜스코딩하는 서비스 프론트엔드 서비스 등등 예: 일반적인 웹 사이트 애플리케이션을 구성하는 서비스 https://www.drivendata.co/blog/docker-for-concept-to-clinic-challenge/ 총 3개의 서비스로 구성: 웹 서비스(백, 프론트) / DB 서비스 / AI 데이터 처리 서비스 각각의 서비스가 별도의 이미지로 만들어서 컨테이너(들)로 동작 각 서비스 별로 이미지 1개가 생성되고, 최소 3개의 컨..

인프라 2021.04.03

10. 도커 이미지 빌드 & 푸시 실습

출처: https://youtu.be/cPT3CaJ9Gsw https://docs.docker.com/engine/reference/builder/ DockerFile을 통해 도커 이미지를 만들고 실행할 수 있다. 예제1. nginx DockerFile 만들기 FROM ubuntu:14.04 LABEL maintainer="drsungwon@khu.ac.kr" RUN apt-get update RUN apt-get install -y nginx RUN echo "this is a ubuntu container" WORKDIR /etc/nginx CMD ["nginx", "-g", "daemon off;"] EXPOSE 80 L1: ubuntu:14.04 이미지를 가져온다 L2: DockerFile의 메인..

인프라 2021.03.30

8. 도커 이미지 배포

도커 이미지 배포 방법 도커 허브 도커에서 제공하는 이미지 저장소 기본적으로 퍼블릭 리포지토리는 무제한, 프라이빗 리포지토리는 1개만 생성 가능 2개 이상의 프라이빗 리포지토리를 쓰거나 4명 이상의 팀을 구성하고자 하는 경우는 비용을 지불해야 함 도커 사설 레지스트리 직접 이미지 저장소를 만들어 사용 사용자가 직접 이미지 저장소, 서버, 저장 공간 등을 관리해야 하므로 도커 허브보다는 사용법이 까다로움 회사의 내부망 같은 곳에서 도커 이미지를 배포해야 한다면 도커 허브보다 더 좋을 수 있음 도커 허브 저장소 이미지 저장소 생성 도커 계정으로 로그인 후, 도커 허브 > 리포지토리 페이지에서 이미지 저장소를 생성할 수 있음 생성된 저장소명은 _${user id}/${repository name} 생성된 저장..

인프라 2021.03.30

9. DockerFile

DockerFile 하는 일 완성된 이미지를 생성하기 위해 컨테이너에 설치해야 하는 패키지, 추가해야 하는 소스코드, 실행해야 하는 명령어와 셸 스크립트 등을 DockerFile에 기록해두면 도커는 이 파일을 읽어 컨테이너에서 작업을 수행한 뒤 이미지로 만들어냄 이미지를 배포하는 대신, 이미지를 생성하는 방법을 기록해 놓은 DockerFile을 배포할 수도 있음 DockerFile 작성 FROM ubuntu:14.04 LABEL "purpose"="practice" RUN apt-get update RUN apt-get install apache2 -y ADD test.html /var/www/html WORKDIR /var/www/html RUN ["/bin/bash", "-c", "echo hello..

인프라 2021.03.14

7. 도커 이미지

도커 이미지와 도커 허브 도커 이미지는 클라우드 저장소에 저장되어 있다. 도커의 기본 클라우드 저장소는 도커 허브이다. 도커 이미지명에 저장소를 명시하지 않으면 도커 엔진은 도커 허브에서 도커 이미지를 찾는다. 도커 이미지는 도커 허브 웹사이트에서도 찾을 수 있고, 도커 엔진이 설치된 터미널에 docker search를 입력하여 찾을 수도 있다. > docker search ubuntu # docker search docker.io/ubuntu NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian-based Linux operating sys… 11889 [OK] dorowu/ubuntu-desktop-lxde-vnc Docker ima..

인프라 2021.03.03