본문 바로가기
Work/Conference

HashCorp 밋업 - ZEPL 사용기

by ★용호★ 2018. 8. 15.

발표자

  • 박훈
  • ZEPL
  • 아파치 제플린 커미터

ZEPL에서 발생한 문제

  • 엔터프라이즈 서비스 시 고객들이 멀티 클라우드를 사용한다는 이슈가 발생
    • 이를 위해 멀티 클라우드 지원은 포기하고, 오케스트레이션 레이어를 정하고 컨테이너로 제공
  • 고객에게 제공할 인프라에 쿠버네티스 구성을 해야하는 이슈 발생

어떻게 자동화 했나

  • 레이어 분리


    • 인프라 - 쿠버네티스 - 어플리케이션

Install

  • Terraform
    • Versionning = S3
    • Locking = Dynamo
  • Ansible
    • ZK 클러스터링과 같은 프로비저닝에 사용
  • kops
    • 쿠버네티스 설치
  • HELM
    • 쿠버네티스로 구성된 어플리케이션 레이어의 설치

Monitor

  • CloudWatch
    • AWSLOG (AWS Log Agent)
    • 인스턴스 구동 시 User Data에 부트스트랩 스크립트 실행을 넣어주어야함
    • 기본 영구저장이라 테라폼을 사용해서 Expire 일 수 지정하는 것을 권장
    • Disk, 메모리 모니터링을 위해서는 aws-script-mon 참고해서 EC2 User Data에 스크립트 추가
    • Alert 설정은 Lambda를 이용해서 오토스케일링 시 등록
  • Prometheus
    • 어플리케이션 모니터링
    • prometheus-operator를 사용하면 HELM으로 쉽게 설치 가능
  • Grafana
    • Import/Export 기능이 없어서 Wizzy 사용

Deploy

  • Spinnaker
    • 멀티 클라우드 배포
    • 구성이 어려워서 현재 진행 중
  • Helm Chart 또는 Operator
    • 온프레미스 배포
  • MINIO
    • K8s 위에서 S3 사용

그 외

  • k8s와 ECS를 병행해서 사용하는 이유
    • 내부 시스템으로는 k8s를 사용하지만 사용자에게 컨테이너를 제공해주기때문에 k8s를 사용하면 해당 호스트의 모든 권한이 사용자에게도 부여됨
    • 이를 해결하는 방법이 여러가지 있지만 현재 도입을 못해서 ECS를 사용

참고


댓글