본문 바로가기
Work/Conference

HashoCorp 밋업 - 레거시 위에서 재현 가능한 환경 구축하기

by ★용호★ 2018. 8. 15.

발표자

  • migrammer
  • 선데이토즈

기존 개발환경

  • IDC로 운영 중
  • 5년정도 운영하다보니 각 서버에안에 어떻게 구성되어 있는지 알 수 없는 상태가 됨
  • 서버마다 환경이 다름
  • 로컬 디버깅의 어려움
    • 망 분리로 인해 원격 디버깅 불가능
    • 사내 Vagrant Box도 시간이 지남에 따라 제대로 동작을 안함
    • 환경 정의가 코드로 되어 있었으면 좋겠다는 생각
  • 다중 테스트 서버의 필요성
    • 환경 구성이 번거로워서 한대의 서버로 다중 테스트를 진행
    • 서버를 찍어 낼 수 있는 무언가가 필요함
  • 버그 발생 시 환경 재현의 어려움
    • Dump 만으로는 버그 발견이 어려움
    • 동일 환경을 찍어낼 수 있는 무언가가 필요함
  • AWS로 인프라 이전 진행
    • HashiCorp 사용

HashCorp

  • 로컬 서버 프로비저닝
    • Vagrant
      • 다중 머신 구동 지원
        • 다중 머신 구동 시 실행 순서에 주의
    • 새로운 환경 구성이 쉬워짐
  • 인프라 프로비저닝
    • 테라폼
      • .tf, .tfvars 등으로 인프라 정의 파일 작성
        • 정의 파일은 파일을 분리해서 모듈화
          • 테라폼의 모듈은 함수와 의미가 비슷
          • 변수를 통해 파일이 분리되어 있어서 접근 가능
      • Terraform plan으로 적용시 변경될 인프라 환경 확인 가능
      • terraform apply로 실제 적용
  • 머신 이미지 생성 자동화
    • Packer
      • 작성된 명세를 기반으로 이미지 생성 후 이미지 id 반환

어려웠던 점

  • 학습 비용이 있었음
  • Terraform에 버그가 있었음
  • 검증해줄 사람이 없었음

나아진점

  • 서버가 클린해짐
  • 인프라 프로비저닝이 편리해짐
  • 인프라 구성이 모두 코드로 남아 추적 용이

남은 문제

  • 협업 시 tfstate, tf 데이터 관리의 어려움
  • 프로덕션에는 아직 적용 안해봄
  • 서버 프로비저닝과 코드 배포 프로세스의 개선 여지가 많음
    • 현재 코드와 인프라 프로비저닝을 함께 하고 있음
    • 이로인해 코드 변경시에 인프라가 재구축됨
    • 배포 프로세스 분리가 필요


댓글