CNAP 클라우드 플랫폼 GitOps 대시보드를 직접 체험해보세요  —  실시간 CI/CD, 모니터링, 보안 관제를 한 곳에서     CNAP 클라우드 플랫폼 GitOps 대시보드를 직접 체험해보세요  —  실시간 CI/CD, 모니터링, 보안 관제를 한 곳에서     CNAP 클라우드 플랫폼 GitOps 대시보드를 직접 체험해보세요  —  실시간 CI/CD, 모니터링, 보안 관제를 한 곳에서     CNAP 클라우드 플랫폼 GitOps 대시보드를 직접 체험해보세요  —  실시간 CI/CD, 모니터링, 보안 관제를 한 곳에서    

🏷️ Flyway

1개의 글


  • Kubernetes 환경에서 Flyway 사용하기

    lemon • 2025-08-06 • DB

    Flyway는 데이터베이스 마이그레이션을 자동화하고 관리하기 위한 도구로, SQL 기반 마이그레이션 스크립트를 버전 관리할 수 있으며 애플리케이션 배포 파이프라인과 자연스럽게 통합됩니다. 애플리케이션에 Flyway를 포함하여 Kubernetes에 배포할 경우, 여러 Pod가 동시에 실행되면 DB 테이블 락(table lock) 문제로 인해 마이그레이션 충돌이 발생할 수 있습니다. 이를 방지하기 위해 분산 락(distributed lock)을 사용하여 먼저 시작된 Pod가 다른 Pod의 마이그레이션 완료를 기다리도록 구현할 수 있습니다.

    또 다른 접근 방법으로, Flyway 마이그레이션을 애플리케이션에서 완전히 분리하고, Kubernetes 환경에서 Job 리소스로 관리하는 방법이 있습니다. 이 방식은 마이그레이션을 배포와 별도로 한 번만 실행되도록 보장하여, 여러 개의 애플케이션 Pod가 동시에 기동될 때 발생하는 충돌 문제를 근본적으로 해결합니다. 이렇게 Job으로 분리하여 DB 마이그레이션을 실행하면 네트문제로 잠시 실패를 해도 재시도가 가능하며, 애플리케이션과 완전히 분리함으로써 문제 발생 시 대처가 더 용이해집니다.