Kafka 브로커 AWS EC2 인스턴스에 설치하기
AWS EC2에 카프카 설치하기
Step 1. 자바 설치
우선 EC2에 카프카를 설치 하기 위해서는 자바를 설치해야합니다. 카프카는 JVM 환경 위에서 구동하기 때문에 이를 위해서 자바를 설치하는 것은 필수적으로 선행되어야 합니다.
또한 카프카를 구동하기 위해서는 최소한 JDK 8 이상 버전의 자바를 설치해야합니다. kafka 2.0이상 부터는 JAVA7에 대한 지원이 중단되었습니다.
Step 2. 카프카 바이너리 패키지 설치
카프카 브로커를 실행하기 위해서 카프카 바이너리 패키지를 다운로드해야합니다. 카프카 바이너리 패키지에는 카프카 실행을 위한 바이너리 파일들이 존재합니다. https://kafka.apache.org/downloads 에서 카프카 binary downloads에 있는 파일을 다운 받습니다. 리눅스에서 해당 링크에 해당하는 파일을 다운 받기 위해서 wget명령어를 사용합니다.
Step 3. 카프카 브로커 설정
우선 카프카 브로커의 힙 메모리를 설정해야합니다. 카프카 브로커의 디폴트 힙 메모리는 1G, 주키퍼는 512MB입니다. 만약 1.5GB의 힙 메모리 공간이 없을 경우 디폴트 메모리를 변경해주어야 합니다. 이를 위해 export 명령어를 통해 힙 메모리 사이즈를 미리 환경 변수로 지정해 주면 됩니다. 이러한 환경 변수 지정은 터미널이 종료되고 다시 실행되도 유지되어야 하기 때문에 ~/.bashrc 파일에 넣으면 됩니다. 해당 파일에 export KAFKA_HEAP_OPTS=”-Xmx400m -Xms400m” 를 입력하여 bash 쉘이 실행될 때 마다 반복적으로 export 명령어가 구동되게 만들어 줍니다.
또는 kafka-server-start.sh스크립트 파일에서 설정할 수 있습니다.
이제 카프카 브로커 실행 옵션을 선택해 주면 됩니다. 카프카 브로커의 번호, 카프카 브로커가 통신을 위해 열어둘 IP,Port,프로토콜을 설정하고 AWS EC2인스턴스의 IP주소를 적어 줍니다. 또한 네트워크 스레드 개수를 설정할 수 있고 가져온 데이터를 저장할 디렉토리, 파티션 개수, 파일 일몰 기간, 저장될 파일의 최대 크기, 주키퍼와 연동할 ip와 포트를 적어줍니다.
이제 마지막으로 주키퍼를 실행해주어야 합니다. 카프카 바이너리 파일을 압축 해제한 파일에는 주키퍼가 존재합니다.
주키퍼는 분산 어플리케이션을 코디네이팅하기 위한 코디네이션 어플리케이션입니다. 분산 어플리케이션(여기서는 카프카)이 안정적인 서비스를 하기 위해 각 어플리케이션의 정보를 중앙에 집중화하고 구성 관리, 그룹관리, 네이밍, 동기화 등의 서비스를 진행합니다.
zookeeper-server-start.sh스크립트 파일을 실행시킬 때 중요한 점은 주키퍼 실행 로그가 백그라운드에서 나타나야하기 때문에 -daemon으로 설정을 해주고 config/zookeeper.properties에 정의된 주키퍼 설정을 따를 수 있도록 명령어를 구성할 때 bin/zookeeper-server-start.sh -daemon config/zookeeper.properties로 실행해 줍니다.
주키퍼가 제대로 실행 되었다면 이제 kafka를 실행해 줍시다. kafka는 kafka-server-start.sh 명령어를 통해 카프카 브로커를 실행 할 수 있습니다. 카프카 역시 마찬가지로 -daemon 옵션을 주어 실행하도록 합시다.
참조문헌: 아파치 카프카 애플리케이션 프로그래밍 with 자바, 카프카, 데이터 플랫폼의 최강자, Apache Kafka documentation
Leave a comment