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
수정한 포인트를 나열해보자면...
ports 수정을 안해주면 kafka가 zookeper에 접근 할때,
localhost:2181로 접근 하더라..
yml파일을 너무 믿은 내가 바보다..
1.2는 아주 옛날 버전이더라 1.44로 바꾸면 보통 문제 없을거다.
이정도가 좀 크리티컬 한듯 하고 나머지는 optional 이라고 볼 수 있겠다.
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