jaylab-log

인프라와 배포 자동화를 하면서 남기는 기록

배포할 때마다 끊기던 서비스를 무중단으로: Jenkins Rolling Deployment에서 내린 네 가지 결정

타겟 그룹 전체를 동시에 재시작하던 Jenkins 파이프라인을 서버별 순차 배포와 LB 제어로 바꾸며 내린 네 가지 결정과 아직 남은 한계

2025년 8월 7일 · 8 분 · An Seongjin

기존 JDK를 지우지 않고 JDK 11로 빌드하기: SDKMAN이 PATH를 가로채는 원리

로컬은 Corretto 21인데 빌드 테스트는 JDK 11이 필요할 때, SDKMAN이 기존 JDK를 건드리지 않고 PATH 우선순위만 가로채 세션 단위로 버전을 바꾸는 원리와 기존 JDK를 처리하는 세 가지 선택

2025년 7월 24일 · 4 분 · An Seongjin

쉘 스크립트 대신 Dockerode를 고른 이유: 멀티 테넌트 프로비저닝의 롤백과 동시성

docker run을 감싼 쉘로는 실패 원인도 롤백도 다룰 수 없어 Dockerode와 스키마 분리로 테넌트 생성을 자동화한 과정

2025년 7월 14일 · 6 분 · An Seongjin

Nginx Proxy Manager API로 Proxy Host 자동으로 붙이기

테넌트가 생길 때마다 손으로 하던 도메인 연결을 Nginx Proxy Manager API로 Proxy Host를 만들어 자동화했다.

2025년 7월 5일 · 2 분 · An Seongjin

프록시가 webserver를 찾지 못한 이유: Docker 네트워크 격리와 컨테이너명 DNS

NPM과 webserver가 서로 다른 Docker 네트워크에 있어 프록시가 끊긴 원인을 찾고, 네트워크 연결로 컨테이너 간 직접 통신을 복구한 기록

2025년 6월 26일 · 4 분 · An Seongjin

타 부서 제안서의 아키텍처 파트를 맡았다

타 부서 제안서의 아키텍처·구축 전략 파트를 며칠 만에 맡아, 모호한 요구사항을 AWS 구조도로 정리한 기록

2025년 4월 30일 · 1 분 · An Seongjin

SonarQube를 brew에서 Docker로 옮겼다

SonarQube Java 분석의 .class 요구 에러를 빌드로 풀고, brew 없이도 돌도록 서버와 Scanner를 Docker로 옮긴 기록

2024년 12월 20일 · 3 분 · An Seongjin

Ansible 첫 ping은 publickey에서 막혔다

첫 Ansible ping이 publickey 오류로 막혔고, 인벤토리에 키를 지정해 풀었다. 이어서 ad-hoc 명령과 첫 플레이북까지 돌렸다.

2024년 11월 19일 · 3 분 · An Seongjin

Multipass VM 두 대로 Ansible 실습 환경 만들기

맥북에 Multipass VM 두 대를 띄워 제어노드에 Ansible을 설치하고, 관리노드로 SSH 키 접속을 여는 과정을 정리했다.

2024년 11월 6일 · 4 분 · An Seongjin

Mac에서 컨테이너 IP로 접속이 안 되는 이유

Mac에서 컨테이너 IP가 보이는데도 접속되지 않는 건 Docker 네트워크가 Linux VM 안에만 있어서다.

2024년 9월 21일 · 2 분 · An Seongjin