발표자
- migrammer
- 선데이토즈
기존 개발환경
- IDC로 운영 중
- 5년정도 운영하다보니 각 서버에안에 어떻게 구성되어 있는지 알 수 없는 상태가 됨
- 서버마다 환경이 다름
- 로컬 디버깅의 어려움
- 망 분리로 인해 원격 디버깅 불가능
- 사내 Vagrant Box도 시간이 지남에 따라 제대로 동작을 안함
- 환경 정의가 코드로 되어 있었으면 좋겠다는 생각
- 다중 테스트 서버의 필요성
- 환경 구성이 번거로워서 한대의 서버로 다중 테스트를 진행
- 서버를 찍어 낼 수 있는 무언가가 필요함
- 버그 발생 시 환경 재현의 어려움
- Dump 만으로는 버그 발견이 어려움
- 동일 환경을 찍어낼 수 있는 무언가가 필요함
- AWS로 인프라 이전 진행
- HashiCorp 사용
HashCorp
- 로컬 서버 프로비저닝
- Vagrant
- 다중 머신 구동 지원
- 다중 머신 구동 시 실행 순서에 주의
- 다중 머신 구동 지원
- 새로운 환경 구성이 쉬워짐
- Vagrant
- 인프라 프로비저닝
- 테라폼
- .tf, .tfvars 등으로 인프라 정의 파일 작성
- 정의 파일은 파일을 분리해서 모듈화
- 테라폼의 모듈은 함수와 의미가 비슷
- 변수를 통해 파일이 분리되어 있어서 접근 가능
- 정의 파일은 파일을 분리해서 모듈화
- Terraform plan으로 적용시 변경될 인프라 환경 확인 가능
- terraform apply로 실제 적용
- .tf, .tfvars 등으로 인프라 정의 파일 작성
- 테라폼
- 머신 이미지 생성 자동화
- Packer
- 작성된 명세를 기반으로 이미지 생성 후 이미지 id 반환
- Packer
어려웠던 점
- 학습 비용이 있었음
- Terraform에 버그가 있었음
- 검증해줄 사람이 없었음
나아진점
- 서버가 클린해짐
- 인프라 프로비저닝이 편리해짐
- 인프라 구성이 모두 코드로 남아 추적 용이
남은 문제
- 협업 시 tfstate, tf 데이터 관리의 어려움
- 프로덕션에는 아직 적용 안해봄
- 서버 프로비저닝과 코드 배포 프로세스의 개선 여지가 많음
- 현재 코드와 인프라 프로비저닝을 함께 하고 있음
- 이로인해 코드 변경시에 인프라가 재구축됨
- 배포 프로세스 분리가 필요
'Work > Conference' 카테고리의 다른 글
HashCorp 밋업 - ZEPL 사용기 (0) | 2018.08.15 |
---|---|
HashCorp 밋업 - 데브시스터즈 Valut 사용기 (0) | 2018.08.15 |
HashiCorp 밋업 - 당근마켓에서 Packer와 Vagrant 사용기 (0) | 2018.08.15 |
Golang 밋업 - Bazel 소개와 카카오 게임즈 사례 (0) | 2018.08.14 |
GDG Korea WebTech 후기 (0) | 2016.09.25 |
댓글