DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from 여기어때
  • Related reads#Bun
#DevOps

여기어때 Secret 플랫폼 구축기 Part 3: 시크릿 저장소를 운영 가능한 상태로 만들기 — 컨테이너화부터 CI/CD, 로그 수집까지

여기어때 Secret 플랫폼 구축기 Part 3: 시크릿 저장소를 운영 가능한 상태로 만들기 — 컨테이너화부터 CI/CD, 로그 수집까지
01

Summary

"EC2에서 EKS까지 한 번에!" 여기어때가 배포와 로그 수집을 표준화하는 법

Bun 런타임과 GitLab CI로 완성한 클라우드 네이티브 운영 전략

여기어때 DevOps 팀이 시크릿 저장소 'Secrethub'을 구축하며 적용한 현대적인 운영 자동화 사례를 소개합니다. 단순한 배포를 넘어 서비스 독립적인 로그 수집과 표준화된 CI/CD 파이프라인을 통해 플랫폼 레벨에서 관리 가능한 구조를 설계한 과정을 상세히 담고 있습니다.

  • 01Bun의 isolated linker와 단일 파일 번들링으로 극대화된 컨테이너 최적화
  • 02EC2와 EKS 배포 흐름을 일원화한 GitLab CI 공통 템플릿 설계 전략
  • 03AWS CodeDeploy의 훅(hooks)을 교정하여 배포 주기와 안정성 개선
  • 04애플리케이션 코드 수정이 필요 없는 Docker Loki Driver 기반의 통합 로깅
  • 05플랫폼 중심 설계를 통한 향후 인프라 마이그레이션 비용의 획기적 절감

+RECOMMENDATION

레거시 EC2 환경을 유지하면서도 차세대 인프라(EKS)로의 전환을 준비하는 팀에게 강력히 추천합니다. 특히 다중 언어 환경에서 표준화된 배포 프로세스와 로깅 시스템을 구축하고자 하는 DevOps 엔지니어에게 실질적인 가이드를 제공합니다.

The Problem

기존 Jenkins 기반의 EC2 배포 구조는 서비스마다 스크립트가 파편화되어 있어 중앙 관리가 어려웠고, 전체 배포 현황을 일관되게 파악하는 데 한계가 있었습니다. 또한, 다수의 컨테이너가 운영되는 환경에서 개별 서비스마다 로깅 라이브러리와 OTEL 설정을 적용해야 하는 운영 부담이 존재했습니다.

The Solution

Bun 런타임의 단일 파일 번들링 기능을 활용해 컨테이너 이미지를 최적화하고, EC2와 EKS에 모두 적용 가능한 GitLab CI 공통 템플릿을 도입하여 배포 파이프라인을 표준화했습니다. 로그 수집은 애플리케이션 수정 없이 Docker 레벨에서 Loki Driver를 통해 직접 LGTM 스택으로 전송하는 방식을 채택했습니다.

The Result

전사적으로 표준화된 CI/CD 파이프라인을 통해 운영 확장성을 확보했으며, 향후 EKS 마이그레이션 시 CD 단계만 교체하면 되는 유연한 구조를 만들었습니다. 로깅 책임을 플랫폼으로 이관함으로써 언어에 독립적인 관측성 환경을 구축하고 이미지 크기를 대폭 줄였습니다.

Trade-off

중앙 집중식 CI 템플릿 사용으로 인해 개별 프로젝트의 특수한 요구사항을 반영하기 위한 유연성은 다소 줄어들 수 있습니다. 본문에 명시되지 않았으나, Docker Loki Driver 사용 시 드라이버 플러그인 장애가 컨테이너 로그 출력 지연이나 시스템 부하에 영향을 줄 수 있는 잠재적 리스크에 대한 대비가 필요합니다.

03

Key Concepts

Concept · 01

Bun runtime

빠른 실행 속도와 번들러를 내장하여 TypeScript를 별도 컴파일 없이 실행할 수 있는 JavaScript/TypeScript 런타임입니다.

  • isolated linker 설정을 통해 심볼릭 링크 없는 독립적인 node_modules 환경 구성
  • bun build를 사용하여 모든 의존성이 포함된 단일 실행 파일 생성
Concept · 02

Loki Docker Driver

Docker 컨테이너의 표준 출력 로그를 Grafana Loki로 직접 전송하는 로깅 드라이버 플러그인입니다.

  • 애플리케이션 내 로깅 라이브러리 설정 없이 컨테이너 레벨에서 일괄 로그 수집
  • Docker Compose 템플릿을 통한 로그 수집 설정의 표준화 및 재사용
Concept · 03

GitLab CI Common Template

배포 대상과 상관없이 동일한 CI 흐름을 유지할 수 있도록 DevOps 팀에서 관리하는 표준화된 파이프라인 정의서입니다.

  • 서비스 설정만 선언적으로 정의하여 파이프라인 관리를 일원화
  • EC2와 EKS 간의 기술적 차이를 추상화하여 마이그레이션 편의성 제공
Continue reading · same source

여기어때More from 여기어때

View all posts from 여기어때
  • AI 수석회의

    LLMAI AgentMCP
    18시간 전
  • JVM heap은 멀쩡한데 왜 메모리가 터질까? — Docker 환경 네이티브 메모리 삽질기 (Part 2)

    JVMDockerMemory Leak
    1주 전
  • JVM heap은 멀쩡한데 왜 메모리가 터질까? — Docker 환경 네이티브 메모리 삽질기 (Part 1)

    JVMDockerMemory Leak
    1주 전
  • Spring Data Redis: Repository vs RedisTemplate — 실전 성능 비교

    Spring Data RedisRedisTemplatePerformance Optimization
    1주 전
  • AI 시대의 브랜드 그래픽 시스템 구축기

    Generative AIVisual IdentityPrompt Engineering
    3주 전

Related reads#Bun

Explore #Bun
여기어때·Monorepo

CMS 모노레포 개선기: 빌드 시간 단축부터 번들 최적화까지

#Bun2개월 전
당근·Android

200MB 모듈을 팀 단위로 해결하기: 당근 숏폼팀의 On-demand Dynamic Feature Module 도입

#Bun4개월 전
컬리·Nx

Nx에서 Bun 더 잘 사용하기: Nx 18 -> 21 마이그레이션

#Bun5개월 전

Source

여기어때
여기어때
Engineering Blog

Published · February 27, 2026

Topics

BunDockerGitLab CIAWS CodeDeployLokiObservability컨테이너