[Java/SpringBoot] Kubernetes 환경에서 Spring Boot 로그를 Pod별로 Rolling 하도록 설정
·
Coding/Java
Spring Boot 기반 애플리케이션을 Kubernetes 환경에 배포하면서, 로그 수집 방식에서 다음과 같은 문제가 발생했다. 동일한 로그 경로에 여러 Pod가 동시에 접근하면서 로그가 덮어씌워지거나 뒤섞이는 문제가 생긴 것이다. 이를 해결하기 위해 Pod별로 로그를 분리하고, 날짜 기준으로 Rolling 되도록 설정한 경험을 정리해본다.1. 로그 파일이 충돌하는 문제 발생애플리케이션 로그는 app.log라는 고정된 파일명으로 기록되고 있었고, 이는 여러 Pod가 동일한 볼륨을 공유할 경우 로그 충돌을 일으켰다. 특히 상태 비저장(Stateless)한 구조에서 동시성이 높은 상황에서는 로그 유실이나 파일 잠금 문제가 발생할 수 있었다. 따라서 Pod마다 고유한 로그 파일을 생성하는 방식이 필요했다.2..
[AWS] AWS ECR에 MFA로 Docker 로그인 자동화하기 (.bat 파일)
·
Coding/AWS
AWS Elastic Container Registry(ECR)를 사용할 때, MFA(Multi-Factor Authentication)가 활성화된 계정을 이용하는 경우에는 매번 임시 세션 토큰을 발급받아야만 인증이 가능합니다. 이 과정을 수동으로 반복하다 보면 번거롭고 비효율적일 수 있습니다. 특히 Docker로 이미지를 푸시하거나 풀(Pull)하는 작업이 잦은 경우에는 인증 절차를 자동화하는 것이 큰 도움이 됩니다.이 글에서는 Windows 환경에서 배치 파일(.bat)을 사용하여 AWS CLI와 Docker 로그인을 자동화하는 방법을 소개합니다. 사용자로부터 MFA 코드를 입력받아 임시 자격 증명을 발급받고, 해당 자격 증명을 사용해 ECR에 로그인하는 과정을 자동화합니다.사전 준비 사항자동화 스크..
[기타] 시스템 운영자 매뉴얼, 이렇게 작성해보세요
·
Coding/etc.
회사에서 시스템 운영자 매뉴얼을 작성해야 하는 경우가 종종 있습니다. 특히 인프라나 서비스가 On-Premise와 Cloud 환경에 걸쳐 있을 경우, 운영에 필요한 정보가 여기저기 흩어지기 쉽기 때문에 한눈에 정리된 매뉴얼이 필수적입니다.이번 글에서는 운영자 매뉴얼을 어떤 구조로 작성하면 좋을지, 그리고 어떤 내용을 담아야 실무에 도움이 되는지 예시를 통해 소개해보겠습니다.운영자 매뉴얼 기본 구성운영자 매뉴얼은 아래와 같은 항목으로 구성하는 것이 좋습니다.개요 – 시스템의 목적, 구성도, 기술 스택 요약On-Premise 운영 – Portainer, TimescaleDB, Kafka 등 로컬 구성요소AWS 운영 – k3s, ArgoCD, 로그 확인 등 클라우드 관련 내용공통 운영 – 백업, 복구, 권한 ..
[Kubernetes] Kubernetes에서 Pod 간 직접 데이터 전송하는 방법
·
Coding/Kubernetes
Kubernetes에서 Pod 간에 데이터를 옮기는 가장 일반적인 방법은 공유 볼륨(PVC)을 사용하는 것입니다. 하지만 상황에 따라 중간 저장 없이 Pod에서 다른 Pod로 직접 데이터를 옮겨야 할 때도 있습니다. 이번 글에서는 같은 네임스페이스 내 Pod끼리 직접 데이터를 주고받는 실용적인 방법들을 소개합니다.1. kubectl cp는 실제로는 "직접"이 아니다많이 알려진 kubectl cp는 다음과 같은 방식으로 사용됩니다.kubectl cp pod-a:/app/data/file.txt ./file.txtkubectl cp ./file.txt pod-b:/app/data/하지만 이 방식은 실제로는 로컬 PC를 거칩니다. 즉, Pod A → 로컬 → Pod B의 흐름이기 때문에 '직접' 옮긴다고 보기..