개-발/Infra

1. Jar 생성 build -> boo.Jar 로 Jar파일을 생성해준다. boot.jar 실행하면 /build/libs/ 안에 프로젝트이름-0.0.1-SNAPSHOT.Jar 파일이 생성된다. 2. Dockerfile 만들기 FROM openjdk:17-alpine ARG JAR_FILE=*.jar COPY ${JAR_FILE} app.jar COPY ./config/application.properties /src/main/resources/ ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.config.location=file:/src/main/resources/application.properties"] FROM : Docker Image 생성 시에 기반이..
우선 집에 공유기가 있다면 공유기 포트를 열어주어야 한다. 80포트를 아까 설정해주었던 nginx http 포트인 12122 로 포워딩 시켜주는 것이다. 여기서 집에 공유기가 있다면 공유기 포트를 열어주어야 한다. 80 으로 들어올 것을 12122(docker nginx컨테이너 80포트)로 포트포워딩 시키고 443 으로 들어올 것을 12121(docker nginx컨테이너 443포트)로 포트포워딩 시킨다. 위 내용을 글로 해석해 보면 80포트로 들어오는것을 Nas의 12122 포트로 12122는 컨테이너 > 80 포트로 보내준다. 이 부분이 굉장히 헷깔린다. 컨테이너 설치가 완료 됐다면 Nginx Proxy Manager (설정페이지) 웹브라우저에 NAS의 IP:관리포트 를 넣어준다. 위 설정대로라면 N..
Nginx의 역방향 프록시의 개념은 이러하다. 원래라면 http://myHomeIp.synology:dockerPort 로 kibana , CMAK , Jenkins 홈을 GUI를 사용했는데 이젠 NginX를 통해 컨테이너에 접근하고 Https 보안까지 가능해진 것이다. Jenkins와 GitHub의 WebHook 또한 Https 프로토콜을 이용해야 했기 때문에 NginX는 필수 적이었다. Jenkins 와 Github WebHook 을 연동하려고 하는데 Github에서 https로 웹훅을 요청 하는데 Nas에서는 Http로 설정 되어있어서 NginX로 리버스 프록시를 사용한 주소가 필요했다. 필자는 Synology 의 NAS를 사용하지만 일반 docker 사용자도 똑같이 따라하면 된다. docker-c..
키바나를 접속해서 데이터를 생성 수정 삭제를 하려면 계정을 추가 해주어야 한다. 1. 컨테이너에서 생성방법 2. 키바나에서 생성방법 엘라스틱 서치 설정파일에 들어가서 /etc/elasticsearch/elasticsearch.yml xpack.security.enabled: true xpack.security.enabled: true 로 바꾸어준다. 이미 설정 되어있으면 안바꿔줘도 됌. 컨테이너에서 생성방법 유저생성 #엘라스틱서치컨테이너에 접속 docker exec -it 엘라스틱서치컨테이너명 bash #유저추가 elasticsearch-users useradd 유저명 #유저삭제 elasticsearch-users userdel 유저명 비밀번호 설정 후 권한설정 #권한설정 elasticsearch-use..
프로듀서(Producer) 메세지 발행자 / 생성 , 추가 컨슈머Consumer 메세지 수신자 / 조회 브로커(Broker) 카프카 서버 단위 / 데이터를 저장하고 컨슈머에게 전달하는 역활 ex. 카프카 서버 3대있어 = 브로커 3대 클러스터 (Cluster) 카프카서버(브로커)의 그룹 브로커3대로 클러스터 1대 구성 토픽 (Topic) 카테고리 및 주제 데이터(레코즈)들이 보관 될 장소 하나 이상의 파티션으로 존재 파티션(Partition) - 속도 / 병렬처리 토픽의 조각 토픽을 세분화 저장 - 병렬처리 가능하게 함 레플리카(Replica) - 안정성 나눠진 파티션들의 복제본 ( 토픽의 복제본 ) 토픽이 문제가 생길시 복구 가능 파티션과 레플리카가 뭐임 ? 파티션은 토픽의 데이터를 세분화하고 병렬 ..
Check 사항 앞서 작성했던 docker-compose.yml KAFKA_ADVERTISED_LISTENERS( 외부 접속을 담당 ) 에 EXTERNAL IP를 넣어주어야 한다. KAFKA_LISTENERS 는 카프카 내부에서 연결해주는 옵션이니 모든 외부접속을 열어준다. 로컬에 띄었다면 저부분을 localhost로 설정. environment: KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_BROKER_ID: 1 KAFKA_LISTENERS: INTERNAL://:19092,EXTERNAL://:9092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT KAFKA_ADVERTISE..
3개의 카프카 서버(브로커 서버)를 띄었다면, 이것을 한개의 클러스터로 묶어준다. 보통 주키퍼도 3대 이상 띄우지만 테스트를 위해 최소한의 주키퍼만 사용하였다. 주키퍼 설명은 이전글을 참고 https://soobysu.tistory.com/96 [Kafka] Zookeeper 란? Zookeeper 분산 코디네이션 서비스를 제공하는 오픈소스 프로젝트로 직접 어플리케이션 작업을 조율하는 것을 쉽게 개발할 수 있도록 도와주는 도구이다. API를 이용해 동기화나 마스터 선출 등의 soobysu.tistory.com config/zoo.cfg #주키퍼 접속 docker exec -it zookeeper-1 /bin/bash #주키퍼 뒤 숫자는 버전마다 상이할 수 있음 cd /opt/zookeeper-3.4.13..
이전 글에서 kafka VM 생성, 접속 후 kafka Vm생성하기 [NCP] Ncp kafka VM 생성 Cloud Data Streaming Service kafka Producer VM, Consumer VM Sever를 둘다 생성 해주었다면 ssh접속하여 터미널을 실행해준다. Java 설치 다음 명령어를 입력하여 Java를 설치 apt-get install openjdk-17-jdk -y Kafka 설치 #홈 soobysu.tistory.com 위 VM생성 글에서 Broker노드 정보에서 PlainText 주소를 복사해서 위에 broker.list에 넣어준다. cd /home/kafka_2.12-2.4.0 # topic list 출력하기 # [broker.list]에 앞에서 확인했던 브로커 노드 ..
imSoo
'개-발/Infra' 카테고리의 글 목록 (3 Page)