김유신
← How I Work
01Infrastructure/4분 read

인프라

새벽 3시에 안 깨도 되는 시스템을 만듭니다

  • AWS
  • Docker
  • CI/CD
  • Observability
  • IaC

인프라는 잘 만들수록 눈에 띄지 않습니다. 아무 일도 일어나지 않으니까요. 저는 바로 그 '아무 일도 안 일어나는 상태'를 설계하는 데 가장 많은 공을 들입니다.

01

무중단을 기본값으로

배포가 '이벤트'가 되는 순간, 팀은 배포를 두려워하게 됩니다. 두려운 배포는 미뤄지고, 미뤄진 변경은 한꺼번에 터집니다.

그래서 저는 블루/그린·카나리 배포, 헬스체크 기반 자동 롤백을 처음부터 깔아둡니다. 배포가 지루해질 때, 비로소 팀은 빠르게 움직일 수 있습니다.

02

추측하지 않는다, 관측한다

장애가 났을 때 '아마 이것 때문일 거야'라는 말이 나오면 이미 늦은 겁니다. 로그·메트릭·트레이스 세 축을 묶어, 문제의 원인을 추측이 아니라 데이터로 좁힙니다.

  • 구조화 로깅과 상관관계 ID로 요청 단위 추적
  • 핵심 지표(p95 latency, 에러율, 포화도)에 대한 알림
  • 분산 트레이싱으로 느린 구간을 한눈에
03

비용도 아키텍처다

성능을 위해 무한정 서버를 늘리는 건 설계가 아니라 회피입니다. 트래픽 패턴을 읽고 오토스케일과 캐싱으로 '필요한 만큼만' 쓰도록 만듭니다.

비용 그래프는 아키텍처의 건강검진표입니다. 갑자기 튀는 비용은 거의 항상 설계의 신호입니다.

04

코드로 관리하는 인프라

콘솔에서 클릭으로 만든 인프라는 재현할 수 없고, 리뷰할 수 없고, 결국 아무도 전체 그림을 모르게 됩니다.

Terraform으로 인프라를 코드화하면 PR로 리뷰하고, 같은 환경을 몇 번이고 똑같이 찍어낼 수 있습니다. 안전함은 반복 가능함에서 나옵니다.

원칙

재현 가능성

같은 입력 → 같은 환경

자동 복구

사람이 깨기 전에 시스템이 먼저

최소 권한

필요한 만큼만, 나머진 닫는다

비용 인식

성능과 비용은 한 몸

이런 고민, 같이 해볼까요?

kysclient@gmail.com

다음 — Frontend

프론트엔드 개발