에이치티비욘드
프론트엔드 인프라 및 배포 환경 개선
엣지(현장) 서버에 배포되는 프론트 프로덕트의 WebServer를 pm2 serve에서 nginx로 전환하고, Ansible Semaphore + Jenkins + AWS S3를 잇는 단일 배포 파이프라인 구축. Git Tag 기반 version 관리로 단지별 배포 버전 추적 가능
주요 성과
엣지 배포 환경 전환
blue-byb-pos·blue-byb-kiosk·blue-web-wallpad 3개 프론트 프로덕트의 WebServer를 pm2 serve → nginx 정적 콘텐츠 서비스로 이관. pm2 설정 변경 없이 build 파일 교체만으로 배포가 완결되도록 구조 단순화
단일 배포 파이프라인
Ansible Semaphore + Jenkins + AWS S3를 잇는 단일 배포 파이프라인 구축 (GITHUB_BUNDLE_CHECK → JENKINS_BUILD → DEPLOY_TO_EDGE 3단계 yaml 정의)
POS·KIOSK 빌드 통합
REACT_APP_PRODUCT 환경변수 sed 치환으로 한 번의 build step에서 두 프로덕트 산출물을 동시 생성하도록 변경 (이전 2회 빌드 → 1회)
- AWS S3 빌드 산출물을 Git Tag 기반 version 단위로 관리 (이전 build_id 기반 → version_tag 기반). devops-bundle에서 단지별 배포 버전을 명시적으로 추적 가능하도록 개선
- 트러블슈팅: Jenkins build parameter에 version_tag·s3_bucket_name 분리 도입 — origin/develop 같이 슬래시 포함 tag가 s3 폴더명과 미스매치되어 파일을 못 찾는 이슈 해결
- nginx 정적 콘텐츠 실행을 위한 build 폴더 권한 자동화 (chmod 755 + /home/htbeyond에 711 — 다른 팀 폴더에 영향을 주지 않으면서 nginx만 통과 가능하도록 최소 권한)
- Git Tag 기반 버전 관리 전략 수립 (dev / alpha / prod) — 환경별 배포 흐름 일관화
관련 블로그 글
엣지에 배포되는 프로젝트 관리: pm2 → nginx 전환 + Ansible/Jenkins/S3 단일 파이프라인
pm2로 운영하던 엣지 프로젝트를 nginx 정적 콘텐츠 서비스로 이관하고, Ansible Semaphore + Jenkins + AWS S3를 잇는 단일 배포 파이프라인을 구축한 과정. yaml/Configure 변경 디테일과 트러블슈팅까지.
리눅스 권한 설정 (chmod, chown, chgrp) — nginx edge 배포 트러블슈팅
엣지 배포 프로젝트의 WebServer를 pm2 serve에서 nginx로 변경하면서 가장 오래 걸렸던 권한 설정 정리. 파일 권한 표기, chmod/chown/chgrp, 그리고 실제 nginx 실행 시 만난 500 에러와 해결 과정.