AWS CodeDeploy는 코드를 고객에게 더 빠르고 안정적으로 제공하는 데 도움이 됩니다.
Nick Elser Director of Engineering

Instacart는 고객이 즐겨 이용하는 현지 상점에서 물건을 픽업해 집까지 배달해주는 물품 구매 대행업체와 고객을 연결하여 온라인으로 식료품을 주문할 수 있도록 지원합니다. 2012년 샌프란시스코에서 설립된 Instacart는 미국 전역의 18개 대도시 지역으로 빠르게 사업을 확장했으며, Whole Foods Market, Costco, Petco 등의 유명 전국 체인점은 물론, 지역 식료품점을 포함한 수십 개의 식료품 소매업체와 제휴했습니다.

  • Instacart는 원래 자체 개발 배포 도구를 사용하여 모든 애플리케이션을 배포했습니다. 
  • 이 도구를 모니터링하고 유지 관리하기 위해 매주 한두 명의 개발자가 2~3시간 동안 작업을 수행해야 했으며 기능이 제한적이었습니다.
  • 이 회사는 다양한 크기의 클러스터에 대해 하루에 수백 건의 배포 작업을 수행하는 만큼, 이러한 배포를 안정적으로 수행하고 모니터링할 수 있는 방법이 필요했습니다.
  • AWS CodeDeploy를 사용하여 소비자용 웹 사이트, API, 모바일 앱, 내부 도구, 메시징 인프라 및 처리 시스템을 비롯한 모든 프런트엔드 및 백엔드 서비스를 배포하기 시작
  • CodeDeploy는 Instacart의 기존 지속적 통합 및 전송 파이프라인 설정과 연동됨
  • 엔지니어가 CodeDeploy 콘솔과 CodeDeploy API를 사용하여 각 배포의 상태를 모니터링
  • 배포되는 애플리케이션 및 관련 SLA에 따라 CodeDeploy의 배포 구성 옵션 사용 - 소비자용 웹 서비스의 단계적 업데이트와 백그라운드 작업 처리 시스템의 전체 업데이트 또는 2회에 걸친 업데이트
  • CodeDeploy의 수명 주기 이벤트 후크를 사용하여 각 배포의 여러 단계에서 스크립트를 자동으로 트리거하여 적절한 구성과 라이브러리가 자동으로 설치되도록 하고, 애플리케이션이 올바르게 부팅되었는지 확인하고, 단계적 업데이트가 실패할 경우 이를 알립니다.
  • CodeDeploy는 애플리케이션을 일상적으로 사용하는 50~60명의 엔지니어를 위해 Instacart의 프런트엔드 및 백엔드 애플리케이션을 AWS에 안정적으로 배포
  • 개발자는 핵심 제품에 집중하고 배포 작업 부담을 덜 수 있음
  • Instacart 팀이 더 이상 자체 내부 배포 도구를 유지 관리하는 데 시간과 리소스를 허비할 필요가 없음
  • CodeDeploy의 콘솔 보기는 처음부터 끝까지 모든 배포에 대한 실시간 상태 업데이트를 제공하므로, 엔지니어가 배포 운영 상태를 효과적으로 파악하고 문제를 해결할 수 있음
  • 배포 구성을 통해 Instacart는 애플리케이션과 상황에 맞는 배포 방법을 선택할 수 있음(예: 단계적 업데이트 구성을 통해 배포 위험을 줄이고 소비자용 미션 크리티컬 웹 서비스의 가동 중지 시간을 최소화)

AWS가 배포 운영을 자동화하는 데 어떤 도움을 줄 수 있는지 자세히 알아보려면 AWS CodeDeploy 세부 정보 페이지를 참조하세요.