Docker-Compose로 Kafka 환경 세팅하기

남지방·2024년 1월 26일

Backend/AWS/Platform

목록 보기
2/2

ML은 Inference만 하여도, 그 연산량이 상당하니.. 요청이 그리 많지 않다 하더라도 비동기 처리하도록 세팅하것이 안전해 보이고,
그래서 t2.micro 인스턴스 하나만 사용하여 조그마한 메시지 큐를 하나 세팅 해보고자 한다.

Docker-Compose로 Kafka를 세팅하는것이 잘 안내되어 있어 이를 따르기로 했다.
(그러나 생각보다 손을 좀 봐야한다)

https://github.com/wurstmeister/kafka-docker

이 링크의 readme에 따라가면 보통은 주로 해결이 되는데, docker-compose.yml 파일은 좀 손을 봐야했다.

나는 이런식으로 수정 하였다.

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
    restart: unless-stopped

  kafka:
    build: .
    ports:
      - "9092:9092"
    environment:
      DOCKER_API_VERSION: 1.44
      KAFKA_ADVERTISED_HOST_NAME: {public IP}
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CREATE_TOPICS: "Topic1:1:1,Topic2:1:1"
      KAFKA_HEAP_OPTS: "-Xmx400m -Xms400m"
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://{public IP}:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped

수정한 포인트를 나열해보자면...

1. zookeper 의 ports : "2181" -> "2181:2181"

ports 수정을 안해주면 kafka가 zookeper에 접근 할때,
localhost:2181로 접근 하더라..

2. Docker_API_VERSION : 1.2 -> 1.44

yml파일을 너무 믿은 내가 바보다..
1.2는 아주 옛날 버전이더라 1.44로 바꾸면 보통 문제 없을거다.

이정도가 좀 크리티컬 한듯 하고 나머지는 optional 이라고 볼 수 있겠다.

EC2 세팅 시작

EC2 의 CLI에 접속한 후 아래 커맨드를 입력하여 세팅하였다.

git clone https://github.com/wurstmeister/kafka-docker.git
cd kafka-docker
#docker-compose.yml 수정
sudo apt update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get install docker-ce
sudo usermod -aG docker $USER
newgrp docker
docker-compose up -d
profile
금쪽같은 ML 모델계의 오은영 박사님을 꿈꿉니다.

0개의 댓글