HandsUp 프로젝트의 Kafka 브로커 인프라. Apache Kafka KRaft 모드 사용 (Zookeeper 불필요).
- Docker Engine 24+
- Docker Compose v2
# 1. 환경변수 파일 생성 (최초 1회)
cp .env.local.example .env.local
# 2. 브로커 + Kafka UI 시작
docker compose -f docker-compose.local.yml --env-file .env.local up -d
# 3. Kafka UI 접속
# http://localhost:8080
# 4. 애플리케이션 연결
# bootstrap-servers: localhost:29092
# 5. 중지
docker compose -f docker-compose.local.yml --env-file .env.local down
# 데이터까지 삭제하려면
docker compose -f docker-compose.local.yml --env-file .env.local down -vmain 브랜치에 push 시 GitHub Actions CD 파이프라인이 자동으로 EC2에 배포.
| Secret | 설명 |
|---|---|
ENV_PROD_CONTENT |
.env.prod 파일 내용 |
EC2_HOST |
EC2 퍼블릭 IP |
EC2_USERNAME |
EC2 SSH 사용자 |
EC2_SSH_PRIVATE_KEY |
EC2 SSH 키 |
EC2_PORT |
EC2 SSH 포트 |
kafka-ui는 127.0.0.1로만 바인딩되어 외부 접근 불가. SSH 터널로 접속:
# 1. SSH 터널 열기
ssh -L 8080:localhost:8080 -i <키파일> ubuntu@<EC2_IP> -p <SSH포트>
# 2. 브라우저에서 접속
# http://localhost:8080- Image:
apache/kafka(KRaft 모드) - Local: CONTROLLER + HOST(9092) + DOCKER(9093) 리스너, kafka-ui 포함
- Production: CONTROLLER + INTERNAL(9092) + EXTERNAL(9094) 리스너, 메모리 제한