환경변수 보안 관리, .env 실수부터 Vault·Secrets Manager까지
오늘 코드 작성 중 우연히 발견한 .env 누락 케이스에서 시작해, 환경변수 보안 관리의 실제 적용 단계까지 메모한 TIL이다.
오늘 코드 작성 중 우연히 발견한 .env 누락 케이스에서 시작해, 환경변수 보안 관리의 실제 적용 단계까지 메모한 TIL이다.
ARG와 ENV를 같은 것처럼 쓰다가 docker history에 시크릿 30개가 평문으로 털렸다. 3개월 마이그레이션을 거치며 두 변수의 차이와 안전한 분리 패턴을 다시 잡은 회고다.
최소 컨테이너 안에서 curl, wget, nc가 전부 없을 때 Bash 내장 /dev/tcp로 HTTP 요청을 직접 보내는 방법이다. distroless 환경의 한계와 HTTPS 우회까지 함께 다룬다.
운영 컨테이너 디스크가 80GB까지 폭증한 사고를 계기로 docker 로그 설정 드라이버를 처음부터 다시 잡았다. json-file 기본 동작의 함정과 로테이션 옵션, 그리고 회전 순간 드랍되는 로그를 어떻게 다뤘는지 기록한다.
docker build에서 한 줄짜리 문서 수정만 해도 매번 npm install이 다시 도는 이유는 레이어 캐시가 깨졌기 때문이다. 명령어 순서 한 번 바꾸고 .dockerignore 채우는 것만으로 빌드 시간을 1/5로 줄일 수 있다.
docker compose 서버 배포는 작다고 무시할 게 아니다. Nginx 리버스 프록시, 환경변수 분리, 무중단 배포까지 작은 팀에 필요한 모든 게 한 파일 안에 들어간다.
Docker multi-stage build는 빌드 환경과 런타임 환경을 분리해 최종 이미지에서 불필요한 도구를 제거하는 표준 패턴이다. 측정값과 함께 실제 적용 방법을 본다.
GitHub Actions로 짜던 알림 자동화를 n8n으로 옮기면서 알게 된 것들을 정리한다. Docker 설치 옵션, Webhook URL 분리, 슬랙 노드 연결까지 직접 돌려본 구성 기준으로 적었다.
Let's Encrypt를 Nginx에 붙일 때 발급 도구·인증 방식·배포 구조에 따라 갱신 안정성이 크게 갈린다. 실무에서 자주 마주치는 조합을 비교한다.
GitHub Actions 캐시 최적화는 CI 비용을 가장 빠르게 깎는 수단이다. actions/cache 동작 원리부터 Docker layer 캐싱, 키 설계와 10GB 한도 운영까지 신입한테 설명하듯 풀어본다.
GitHub Actions에서 Docker 빌드 캐시 CI를 손봤더니 12분 걸리던 워크플로가 5분 30초로 떨어졌다. type=gha mode=max와 scope 분리만으로 절반 이하가 됐다.
쿠버네티스 리소스 설정에서 requests와 limits의 역할은 다르다. 같은 값으로 두면 두 메커니즘이 충돌한다. FastAPI 서비스 운영 기준으로 워크로드별 설정값과 판단 기준을 메모로 남긴다.