엄지월드

재부팅 시 카프카 자동 실행(systemd) 본문

Server&DevOps

재부팅 시 카프카 자동 실행(systemd)

킨글 2025. 9. 17. 10:49

주키퍼 systemd 서비스 파일 생성

sudo vi /etc/systemd/system/zookeeper.service
[Unit]
Description=Apache ZooKeeper
After=network.target

[Service]
Type=simple
User=ec2-user # 네 서버의 카프카 실행 사용자 이름으로 변경 (보통 ec2-user)
Group=ec2-user # 네 서버의 카프카 실행 사용자 그룹으로 변경
ExecStart=/home/ec2-user/kafka_2.13-3.2.3/bin/zookeeper-server-start.sh /home/ec2-user/kafka_2.13-3.2.3/config/zookeeper.properties
ExecStop=/home/ec2-user/kafka_2.13-3.2.3/bin/zookeeper-server-stop.sh /home/ec2-user/kafka_2.13-3.2.3/config/zookeeper.properties # stop 스크립트가 있다면 사용 (없으면 비워도 됨)
TimeoutStartSec=60 # 시작 대기 시간
TimeoutStopSec=60  # 종료 대기 시간
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

 

카프카 브로커 systemd 서비스 파일 생성

sudo vi /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=zookeeper.service # 주키퍼가 먼저 시작된 후에 카프카가 시작되도록 설정
After=network.target

[Service]
Type=simple
User=ec2-user # 네 서버의 카프카 실행 사용자 이름으로 변경
Group=ec2-user # 네 서버의 카프카 실행 사용자 그룹으로 변경
ExecStart=/home/ec2-user/kafka_2.13-3.2.3/bin/kafka-server-start.sh /home/ec2-user/kafka_2.13-3.2.3/config/server.properties
ExecStop=/home/ec2-user/kafka_2.13-3.2.3/bin/kafka-server-stop.sh /home/ec2-user/kafka_2.13-3.2.3/config/server.properties
TimeoutStartSec=600 # 카프카 시작은 더 오래 걸릴 수 있으니 넉넉하게 설정 (600초 = 10분)
TimeoutStopSec=60
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

 

파일을 모두 저장하고 나면 systemd에게 새로운 서비스 파일을 알리고 활성화

sudo systemctl daemon-reload # systemd 설정 새로고침
sudo systemctl enable zookeeper # 재부팅 시 자동 시작 활성화
sudo systemctl enable kafka     # 재부팅 시 자동 시작 활성화

 

서비스 시작

sudo systemctl start zookeeper # 주키퍼 서비스 시작
sudo systemctl status zookeeper # 주키퍼 서비스 상태 확인 (Active: active (running) 이면 OK)

# 주키퍼가 잘 떴으면 이제 카프카 시작
sudo systemctl start kafka     # 카프카 서비스 시작
sudo systemctl status kafka     # 카프카 서비스 상태 확인 (Active: active (running) 이면 OK)
Comments