Logic in Code,
Freedom in Travel.

인생 뭐 있나 사람 사는거 다 똑같지

DevOps

DevOps/도커 (Docker)

[Docker] - 002. Docker CLI 와 이미지 만들기

hello world 실행도커를 처음 시작할 때 hello-world 을 통해 온보딩을 시작할 수 있다. $ docker run hello-world--- 출력 결과 ---Unable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-world478afc919002: Pull completeDigest: sha256:03b30c6a3c320ff172b52bd68eddffde6ded08ce47e650fe52de861c5e9df46dStatus: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your install..

2024. 4. 17. 02:43
DevOps/도커 (Docker)

[Docker] - 001. 도커 vs 가상화(VM)의 차이

VM(Virtual Machine)이라는 기술과 컨테이너(Container)라는 기술은 2000년도쯤에도 존재했고, 컨테이너는 VM을 기반으로 동작했다. 또한 컨테이너 기반의 Docker 가 출시된 것은 2013년으로 10년밖에 되지 않았다. 이러한 배경속에서 VM과 Docker을 비교하며 서로를 알아갈 필요가 있다. 미리 알고 있으면 좋은 내용으로 VM 과 Docker 의 차이는 Cuest OS 의 유무이다. VM : 분할 공간에서의 가상환경, Virtual Machine 호스트 시스템 : 서버의 OS 게스트 OS : VM 의 OS 하이퍼바이저 : 게스트OS를 구동 및 모니터링도커의 출시 배경Pycon US 2013 에서 Docker, Inc가 처음으로 세상에 공개되었다.Pycon에서 Docker 가 ..

2024. 4. 9. 21:59
DevOps/모니터링

[모니터링] - 그라파나 알림 매니저 (Grafana AlertManager) 활용하기

Grafana AlertManager 는 그라파나에서 발생하는 알림을 중앙에서 관리하고 라우팅하는 시스템이다. 중복 제거, 그룹화, 알림 억제? 등의 기능으로 쉽게 알림 관리가 가능하다. 1. Grafana Alerting vs Prometheus AlertManager차이점Prometheus AlertManager 보다는 Grafana 내장 Alerting 을 중심으로 정리해보았다. 2. 환경 구성2.1 Docker Compose 설정version: '3.8'services: grafana: image: grafana/grafana:latest container_name: grafana ports: - "3000:3000" environment: - GF_SEC..

2024. 2. 16. 02:15
DevOps/모니터링

[모니터링] - Node.js로 그라파나에서 DB 데이터 로그 보기

Node.js 백엔드 API를 통해 데이터베이스의 데이터나 로그를 그라파나에서 시각화하는 방법을 다뤄보았다. 이 목표를 위해 Prometheus 메트릭 형식으로 데이터를 노출하고 그라파나 대시보드로 모니터링하는 전체 과정을 다뤄보았다.아키텍처1. 프로젝트 초기 설정1.1 프로젝트 생성mkdir nodejs-grafana-db-loggercd nodejs-grafana-db-loggernpm init -y1.2 필수 패키지 설치# 기본 패키지npm install express prom-client# 데이터베이스 드라이버npm install mysql2 pg # MySQL, PostgreSQL# 로깅npm install winston winston-loki# 환경 변수npm install dotenv# 개..

2024. 2. 16. 02:14
DevOps/모니터링

[모니터링] - Grafana + Prometheus + cAdvisor로 컨테이너 상태(리소스) 수집하기

서버를 운영하다 보면 CPU, 메모리, 디스크 I/O 등 리소스 사용량을 모니터링하는 것이 선택이자 필수이다.내 개인서비스나 회사에서는 도커를 사용하기 때문에 이 부분에 초점을 두어 Prometheus(메트릭 수집), cAdvisor(컨테이너 메트릭 노출), Grafana(시각화)를 조합하여 컨테이너 모니터링 환경을 구축해보았다.아키텍처 개요cAdvisor: Docker 컨테이너의 리소스 메트릭 수집 및 노출Prometheus: cAdvisor에서 메트릭을 주기적으로 수집하여 저장Grafana: Prometheus 데이터를 대시보드로 시각화설치 및 구성1. cAdvisor 실행docker run \ --name cadvisor \ --detach \ --volume=/:/rootfs:ro \ --..

2024. 2. 16. 02:12
DevOps/모니터링

[DevOps] - Jenkins와 Spring Boot로 구축하는 CI/CD 파이프라인

과거에는 어찌되었는지 모르지만 github, gitlab, bitbucket(잘 모르겠음) 에서 CI 를 지원해주고 오픈소스가 많은 현대 소프트웨어 개발에서 CI/CD는 선택이 아니라 필수인 것 같다. 보안 문제가 아닌 이상 이 간편한걸 사용하지 않으면 바보라고 생각이 든다. 이번에는 Jenkins 를 이용해서 Spring Boot 프로젝트를 자동화된 빌드, 테스트, 배포 파이프라인을 구축을 시도해보았다. CI/CD가 필요한 이유빠른 피드백: 코드 변경 후 즉시 빌드/테스트 결과 확인품질 보증: 자동화된 테스트로 버그 조기 발견배포 자동화: 수동 배포의 실수 방지개발 생산성: 반복 작업 자동화로 개발에 집중Jenkins 설치 및 설정Docker를 활용한 Jenkins 설치docker run -d \ -..

2024. 2. 16. 02:10