DevOps
-
[Kafka] Kafka를 처음 공부할 때 보면 좋은 내용들DevOps/Kafka 2023. 1. 8. 00:57
Kafka 처음 사용할 때 알면 좋은 것들 이 글은 제가 Kafka를 사용하면서 겪은 경험보다는 Kafka를 공부하면서 처음 사용할 때 알면 좋은 것들의 이론에 대해 정리한 글입니다. 참고한 곳은 맨 아래에 있습니다. Kafka 기본 Cluster, Broker란? Lag 란? Topic, Partition 이란? 레코드란? 컨트롤러란? 코디네이터란? 데이터 삭제 Replication Factor란? 리더 팔로워란? ISR 이란? Producer Producer 주요 옵션 ack=all과 브로커의 min.insync.replicas 옵션의 관계 Consumer Consumer 대표 옵션 컨슈머 그룹이란? 컨슈머 리밸런스 특징 컨슈머 하트비트란? 컨슈머 그룹 특징 토픽의 파티션에는 하나의 컨슈머만 연결 가..
-
[Kafka] acks=all 일 때 min.insync.replicas=2 설정을 권장하는 이유DevOps/Kafka 2022. 10. 14. 01:05
acks=all 일 때 min.insync.replicas=2로 설정해야 하는 이유는 무엇일까? acks=all : 리더는 ISR의 팔로워로부터 데이터에 대한 ack를 기다리고, 하나의 팔로워가 있는 한 데이터는 손실되지 않으며 데이터 무손실에 대해 가장 강력하게 보장 ISR: In Sync Replica의 약어로 현재 리플리케이션이 되고 있는 리플리케이션 그룹(replication group)을 의미 min.insync.replicas: 최소 리플리케이션 팩터를 지정하는 옵션 Replication Factor 는 토픽의 파티션의 복제본을 몇 개를 생성할 지에 대한 설정 본 내용에 들어가기 전에 카프카 용어에 대해 간략하게 정리하면 위와 같습니다. 여기서 이번 글에서는 min.insync.replicas..
-
[Travis CI] Travis CI application.yml 파일 암호화 복호화 하는 법DevOps/Travis CI 2021. 4. 28. 17:01
Travis CI에서 File 암호화 복호화 하는 법 Github에 push를 하면 Github이 Travis CI로 Hook을 날려서 CI가 진행이 됩니다. 진행을 할 때 로그를 보면 위와 같이 Git Project를 clone 받아서 진행하는 것을 볼 수 있습니다. 그러면 여기서 의문점이 생겼습니다. .gitignore 파일에 등록된 파일들은 어떻게 다운 받지? 라는 생각을 했습니다. 그래서 이번 글에서는 그 방법에 대해서 알아보겠습니다. Spring Boot 프로젝트 만들기 먼저 간단한 Spring Boot gradle 프로젝트를 하나 만들겠습니다. 그리고 위와 같이 application.properties -> application.yml로 바꾼 후에 .gitignore에 등록하겠습니다. 그리고 ..
-
[Docker] Docker 명령어 알아두면 좋을 것들 정리DevOps/Docker 2021. 4. 28. 14:14
Docker Container 접속하는 법 docker exec -t -i container_name /bin/bash (Docker Container 접속) ex) Ddocker exec -t -i nginx /bin/bash (Docker Container 접속) Docker Cotainer에 접속하고 싶을 때 Docker Compose로 Container 이름 지정하는 법 version: "3" services: web: image: nginx container_name: nginx ports: - 81:80 volumes: - /etc/nignx/conf.d/:/etc/nginx/conf.d 위와 같이 container_name을 지정하면 Container가 실행될 때 지정한 이름으로 만들어짐 D..
-
[Travis CI] Travis CI가 작동하지 않을 때 Github hooks 수동 설정하기DevOps/Travis CI 2021. 4. 26. 23:26
Travis CI가 작동 안할 때 위와 같이.. 버튼을 활성화 시켰습니다! 근데 Github Repository로 push를 해도 Travis CI는 반응하지 않습니다.. 처음에는 왜그럴까?? 하고 계속 검색하고 삽질을 했는데.. 원하는 결과는 찾기 쉽지 않았습니다. ㅠ 혹시나 하는 마음에 Webhooks가 등록되지 않았나? 하고.. 들어가보니 등록되어 있지 않았습니다... (왜그런지 모르겠지만,, 나만 그런 현상 같은데 ㄷㄷ) 그래서 Github에 Webhooks를 등록하는 법에 대해서 정리해보겠습니다. Travis CI Webhooks 등록하기 Settings -> Webhooks를 눌러서 들어가겠습니다. https://notify.travis-ci.org 위의 URL을 Payload URL에 입력해..
-
[Docker] EC2에서 Docker로 Nginx Reverse Proxy 하는 법DevOps/Docker 2021. 4. 23. 21:53
EC2에서 Docker로 Nginx Reverse Proxy 하는 법 이번 글에서는 EC2에서 Docker-Compose를 이용해서 Nginx, Spring Boot 컨테이너 두 대를 실행시켜서 Reverse Proxy 하는 것을 해보겠습니다. 서버 아키텍쳐 이번 글의 아키텍쳐를 보면 위와 같습니다. 그럼 바로 실습을 해보겠습니다. EC2 Docker 설치 현재 저는 EC2 Linux2를 사용하고 있습니다. sudo yum update -y sudo amazon-linux-extras install -y docker sudo service docker start 도커가 잘 설치되었는지 docker --version으로 확인할 수 있습니다. 그리고 Docker-compose도 사용할 것이기 때문에 이것도 ..
-
[Docker] Docker Compose를 사용해야 하는 이유DevOps/Docker 2021. 4. 23. 16:05
Docker Compose를 사용하는 이유는? 먼저 Docker Compose를 사용하지 않고 NodeJS, Redis 컨테이너를 만들어서 컨테이너간 통신을 해보겠습니다. NodeJS 환경 세팅 npm init Enter (계속) npm init 명령을 치면 어떤 것들이 여러 개 뜨는데 Enter를 계속 치겠습니다. 그러면 위와 같이 package.json이 만들어집니다. { "name": "compose", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node server.js", "test": "echo \"Error: no test specified\" && exit 1" }, "dependenci..
-
[Docker] Docker 기본 명령어 Volume 이란?DevOps/Docker 2021. 4. 22. 15:58
들어가기 전에 일단 volume이 무엇인지 알기 전에 워드프레스, MySQL을 가지고 간단한 실습을 해보겠습니다. MySQL 실행하기 docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7 위의 명령어를 터미널에서 실행해보겠습니다. 그러면 위와 같이 Docker Image(MySQL)를 다운받고 컨테이너가 실행되는 것을 볼 수 있습니다. MySQL 접속하기 docker exec -it mysql mysql 위와 같이 exec 명령어를 통해서 mysql에 접속을 했습니다. create database wp CHARACTER SET utf8; grant all privileges on wp.* to wp@'%' ..