Production Deployments
1. CI/CD & Deploy Flow Automations
폐쇄망 및 클라우드 하이브리드 환경의 신속한 무중단 서비스를 실현하기 위해 설계된 표준 배포 흐름 구조입니다.
[GITHUB PUSH]
코드 커밋 및 원격 저장소 푸시
↓
[ACTIONS RUNNER]
GitHub Actions 빌드 및 테스트 자동화
↓
[DOCKER BUILD & PUSH]
도커 이미지 생성 및 Registry 적재
SSH Deploy Trigger (배포 스크립트 실행)
↓
[TARGET PRODUCTION OS]
배포 대상 서버 호스트 환경 (Linux)
Docker Container (컨테이너 실행)
↓
[NGINX PROXY LAYER]
외부 SSL 및 프록시 라우팅
[VIGFOOT-CORE RUNTIME]
실시간 시뮬레이터 구동 엔진
2. Global Vessel Decoupled Integration (HMM / Namsung)
연계 선사의 스케줄 정보 API 서버 장애로 인해 잦은 API 커넥션 타임아웃과 그로 인한 로컬 관제 정지 병목을 해결하기 위해 개발을 조치했습니다.
- 디커플링 아키텍처: 실시간 연동을 차단하고, 수신 데이터를 Object Storage에 비동기로 선적재(Raw Event Storage)하여 가용성을 100% 확보했습니다.
- 데이터 무결성: 중복 수신 방지를 위해 멱등성 해시 키(Idempotency Key) 검증 프로세스를 도입하여 동일 패킷의 데이터 오염을 예방했습니다.
3. SecOps & Secure Shell Automations
공공 학사 연계망의 SQL Injection 공격을 방어하기 위해 동적 쿼리를 강제 제거하고 매핑 DTO 명세화를 고수했습니다.
또한, 외부 포트 스캔을 차단하기 위해 리눅스 쉘 스크립트 기반 배포에 SSH PEM 인증 강제, B클래스 사설 IP 화이트리스트 필터 및 로그인 시도 누적 실패 시 실시간 IP 영구 드롭(iptables 연동) 등의 SecOps 인프라 방어를 내재화했습니다.
4. Cloudflare Origin Shielding & Dual-Gate Security
비인가 외부 요청이 API 서버의 실제 Origin IP를 직접 타격하거나 우회하는 위협을 원천 봉쇄하기 위하여, Cloudflare Edge와 Spring Security Filter를 결합한 이중 방어 네트워크 보안 아키텍처를 도입했습니다.
- WAF & Turnstile 챌린지 강제: 지정된 마스터 도메인(vigfoot.com)이 아니거나 API 브라우저 주소창 직접 접속 시 Cloudflare Edge 단에서 Turnstile 보안 챌린지를 강제 실행하여 비정상 봇 및 직접 IP 스캔 위협을 사전에 필터링합니다.
- Transform Header 암호화 주입: Cloudflare 프록시를 정상적으로 통과하는 모든 안전한 요청 패킷에 고유한 보안 해시 헤더(X-From-CF)를 암호화하여 인젝션합니다.
- Spring Security Servlet Filter 검증: Spring Security 최선두 파이프라인에 CloudflareShieldFilter를 배치해 토큰이 없거나 정상 프록시 경로를 거치지 않은 비-프록시 직접 우회 요청을 403 ACCESS_DENIED로 완벽하게 드롭합니다.
5. Blue-Green Zero-Downtime Deployment & Port Switching
GitHub Actions 워크플로우와 EC2 인프라 쉘 스크립트를 유기적으로 연동하여, 서비스 무중단 릴리즈 스위칭 및 장애 극복(Failover)이 가능한 경량 블루-그린(Blue-Green) 무중단 자동화 배포 파이프라인을 구현했습니다.
- 격리된 포트 이중화 (8081 / 8082): 운영 서버 호스트 내 격리된 환경에 Blue(기존 버전) 컨테이너가 구동 중인 상태에서 신버전(Green) 컨테이너를 대체 포트에 사전 배포 및 빌드합니다.
- 액티브 헬스체크 (Health Check): 신규 컨테이너가 기동된 후 내부 헬스체크 API 응답이 완전한 정상(200 OK) 상태로 도달할 때까지 실시간으로 모니터링합니다.
- Nginx Proxy 라우팅 스위칭: 신버전의 헬스체크 검증 즉시 Nginx의 Reverse Proxy 가리킴 포트를 스위칭하고 configuration을 무중단 리로드(nginx -s reload)하여 단 1ms의 통신 끊김도 없이 트래픽을 안전하게 마이그레이션합니다. 이상 징후 감지 시 즉각적으로 기존 포트로 역전환하여 최고 수준의 가용성을 유지합니다.