Elastic Observability
소프트웨어 & 기술

Box: Observability를 위한 Elastic Stack 배포 — 한 번에 하나의 마이크로서비스

한 눈에 보기

  • 1,800억
    개의 Elasticsearch 문서
  • 190 TB
    총 데이터 크기
  • 20 TB
    일일 수집 비율

비용 절감

Splunk에서 Elastic으로 마이그레이션하면서 Box의 로깅 수집 비용이 절반으로 줄었습니다

Observability 증가

이제 더 이상 높은 수집 비용 때문에 제안된 로깅 프로젝트 작업의 진행을 포기하고 돌려보낼 필요가 없습니다

엔지니어 강화

엔지니어는 Box의 규모가 커짐에 따라 로깅을 수용하고 Observability를 확장시키고 있습니다


회사 소개

저장 공간 제공업체인 Box는 브랜드명 Cloud Content Management 플랫폼으로 변신하면서, 고객의 가장 귀중한 데이터인 고객 파일 및 중요 업무용 워크플로우를 보호하는 동시에 사업체들이 직원과 고객 생산성을 증가시킬 수 있도록 하고 있습니다.

경쟁이 심한 현재의 Cloud Content Management 환경에서는, Box가 그 어느 때보다도 신속하게 문제를 탐지하고, 식별하며, 빨리 해결하는 것이 필수적입니다. Box가 고객의 중요 업무용 워크플로우 수백만 건과 통합되어 있고, 회사는 안정성, 성능, 규정 준수 목적으로 엄격한 SLA에 따라 납품을 해야 하기 때문입니다.

회사가 고객에게 약속하는 SLA로 인해 오류는 거의 용납되지 않습니다. 이 모든 것은 Box가 강력한 observability 기능을 인프라에 포함시켜 95,000여 엔터프라이즈 고객 뿐만 아니라 수백만 사용자로부터 엄청난 수의 사용 사례를 지원해야 한다는 뜻입니다.

Box의 Observability 팀의 엔지니어링 관리자인 Deepak Wadhwani는 이렇게 말합니다. “우리 고객과 사용자는 콘텐츠 외에도 중요 업무용 작업을 Box에 맡깁니다. Box가 작동하지 않으면, 고객에게는 완전히 매출 손실 상황인 거죠.

Box의 웹사이트는 Allstate, AstraZeneca, Coca-Cola Company, Morgan Stanley, Oxfam, Olympus, Pandora, Who's Who 등 여러 고객들을 홍보하고 있습니다.

Box가 Elastic과 함께 한 여정

Elastic 여정의 시작

최근 몇 년간, Box의 엔지니어링 팀은 보고용 레거시 백 엔드에 확장성이 없다는 사실에 우려가 커지고 있었습니다. Box의 로드맵이 성장하고 있었기 때문에, Observability 팀은 Splunk가 제공했던 것보다 애플리케이션과 운영 로깅을 위해 보다 안정적이고 비용 효과적인 솔루션을 채택하는 데 관심이 있었습니다.

로깅은 중요성이 강화된 중요 업무용 프로세스였습니다. 특히, Box가 성장, 혁신, 그리고 새로운 고객 대면 기능 제공이 가능하도록 단일한 인프라를 수백 개의 마이크로서비스로 변환하는 작업을 계속 진행하면서 더욱 그러했습니다.

Box의 레거시 로깅 솔루션은 수집되는 데이터의 양에 따라 가격이 책정되었기 때문에, 비용을 제한하기 위해 때로는 Box가 로깅 프로젝트를 차단해야 하는 상황에 처하게 되기도 했습니다. 그렇지 않으면, Box 엔지니어가 새로 배포되는 마이크로서비스로부터 이벤트를 로그하지 않기로 결정하게 될 테니까요.

당시에는 그것이 피할 수 없는 현실이었고, 선도적인 Cloud Content Management 플랫폼으로 빠르게 혁신해가려는 Box의 사명과는 잘 맞지 않았습니다. 이 혁신을 위해 Box는 단일 구조를 마이크로서비스로 분할해야 했으며, 이는 로깅이 줄어드는 게 아니라 더 많은 그리고 포괄적인 로깅이 요구되는 방향이었습니다.

"비용 절감을 위해서는 로깅 데이터 볼륨을 줄여야 할 것인데, 이는 Box 시스템이 좀더 관측가능하게 만들려는 우리의 사명에 반하는 것이었습니다. 우리는 보다 비용 효과적인 시스템을 구축하고, 보다 가시성을 높인다는 사명을 위해 계속 작업하고 싶었습니다. 그래서 우리는 Elastic을 선택했습니다. 이것은 개발자가 개발자를 돕기 위해 구축한 것입니다."

Deepak Wadhwani, Observability 팀의 엔지니어링 관리자 | Box

게다가, Box가 엔터프라이즈 보고를 위해 사용하는 MySQL에 자체적인 문제가 있었습니다. 그 문제들 중 하나는 생성되는 막대한 양의 이벤트 때문에, 대규모 엔터프라이즈에서 파일을 열거나 다른 폴더로 옮길 때, 심지어 파일을 공유할 때도 사용 로그 데이터를 렌더링할 수 없다는 것이었습니다.

따라서 2015년을 시작으로, 요금제, 확장성, 지원 및 보안을 위한 경쟁력 있는 환경 설문 조사를 실시한 후, Box는 Elastic을 사용하기로 했습니다.

Elastic Stack을 이용함으로써, Box는 데이터 수집 대신 관리되는 메모리 양에 기반한 요금제 모델로 미래에 대비한, 확장 가능한 Observability 접근법을 채택했습니다. 이러한 Elastic으로의 전환은 Box의 보고 역량을 강화하고 비용을 극적으로 절감하면서 동시에 Box의 마이크로시스템 내에서 로그를 캡처하여 성능과 동작을 이해할 수 있게 해줍니다. 이러한 로그는 즉석에서 이용 가능합니다.

보고 사용 사례는 Box가 Elastic의 세계로 들어가는 진입점이었습니다. 보고를 위한 MySQL을 Elastic으로 교체하는 데 있어 이러한 성공은 Elastic에 대한 자신감과 신뢰를 갖게 했습니다. 이것은 Box가 로깅 솔루션을 당시로서는 새로운 마이크로서비스 중 하나인 Elastic으로 교체하기 시작하도록 만든 주요 요인이었습니다.

그럼에도, 새로운 보고 및 로깅 시스템은 엔지니어들로부터 승인을 생성해야 하며 그렇지 않으면 잠재적인 실패나 느린 채택률에 직면하게 됩니다. Box가 Elastic Stack을 선택하면서, 엔지니어들은 이제 그 어느 때보다도 대규모의 보고서를 실행하고 기존의 또는 새로운 마이크로서비스를 위한 로그를 프로그래밍하는 데 있어 한결 동기가 부여된 상태가 되었으며, 이 모든 것으로 인해 Box는 그 어느 때보다도 성공적인 위치를 확보하고 있습니다.

"우리 엔지니어들은 지금 훨씬 더 행복해하고 있으며, 쿼리는 거의 즉시 완료됩니다. 우리의 만족도 지수는 훨씬 더 높습니다."

Salman Ahmed, 데이터 플랫폼 및 Observability SRE 팀 엔지니어링 디렉터 | Box

그동안, Box의 초기 여정은 몇 테라바이트의 저장 공간과 저장 공간 팀의 소수의 개발자들로 시작되었고, 현장 Elastic 컨설턴트와 Elastic 교육 세션의 도움을 받아 Box의 새로운 보고 기능을 개발하고 채택했습니다. 현재, Box의 폭넓은 팀들에 걸쳐 약 500명의 엔지니어가 보고와 로깅 양쪽 모두를 위해 Elastic Stack을 포용하고 있으며, 수백 개의 Kibana 대시보드에서 날마다 테라바이트 단위의 데이터를 시각화하고 있습니다.

“뉴스룸”에 대해 모두 읽어보기

우리가 알고 있듯이, Box가 처음 Elastic과 했던 작업은 보고 목적으로 엔어프라이즈 로그를 Elasticsearch로 마이그레이션하고 데이터 분석을 위해 백 엔드로 서비스를 제공한 것이었습니다. 이 데이터 파이프라인은 나중에 Box의 새로운 Elastic 지원 로깅 환경으로 진화하게 됩니다.

보고 프로젝트의 경우, 회사는 역할 기반 액세스 제어와 사용자 인증 같은 권한 부여 보안 기능을 활용하고 있습니다. 누가 어느 Box 파일을 언제, 어디에서 액세스했는지 알려줄 수 있는 등의 이 기능과 다른 기능들은 Box가 보안과 개인에 관련된 규정 준수 요구사항을 충족할 수 있게 해주었습니다.

“뉴스룸”이라고 내부적으로 알려진 이 Elasticsearch 보고 프로젝트로의 초기 전환은 필터링 문제를 둘러싼 사안과 엔터프라이즈 로그 및 사업 분석 간의 불일치를 해결했습니다. Box는 예를 들어, 더 이상 SLA를 충족하는 보고서를 만드는 데 있어 아무런 문제도 없게 되었습니다. 대규모 엔터프라이즈의 경우, 때로는 보고서가 전혀 로딩되지 않았으며, 중간 규모의 엔터프라이즈의 경우, 반환하는 데 너무 오래 걸렸습니다.

다음과 같은 다른 수정 사항도 포함되었습니다.

  • 사용자/폴더를 기반으로 효율적으로 사용 로그를 필터링하기 위한 기능 추가
  • 엔터프라이즈에서 또는 특정 폴더에서 특정 사용자들과 관련된 이벤트를 획득할 수 있음
  • 관리자 콘솔에서 표시되는 통계 보고서가 끊어지지 않음
  • 엔터프라이즈 로그와 비즈니스 분석의 불일치 해결

안녕, "Arta"

Box의 이전 로깅 솔루션은 수집된 데이터의 양에 따라 가격이 책정되었으며, 이는 당시에는 하루에 약 7테라바이트였습니다. 이것은 그 이래로 계속 성장하여 하루 약 20테라바이트가 되었고, 앞으로 훨씬 더 증가할 것으로 보입니다. 은행을 털지 않는 한, Box는 그 어느 때보다도 빠르게 성장하고 있는 마이크로서비스 플래폼에서 어디에 Observability 기능을 구현해야 할 지 선택해야 한다는 뜻이었습니다. 이 옹호할 수 없는 사안은 Elastic으로 전환하면서 해결되었습니다.

비용이 유일한 우려사항은 아니었습니다. 이전의 로깅 플랫폼에서, 인덱서는 오류가 발생할 때가 있었습니다. 대기 시간도 문제였고, 알림도 안정적이지 않았습니다.

"우리는 이렇게 생각하고 있었습니다. 우리는 계속 규모가 커지고 있는데, 이 모든 것이 5년 후에는 어떤 의미가 될 것인가? Elastic으로 전환하면서 여러 가지로 도움이 되었습니다. 테라바이트당 비용은 반으로 줄었고, 우리 개발자들에게는 한결 작업이 편해졌으며, 이들이 구축하고 있는 마이크로서비스에 대해 Observability 기능을 제공했습니다. 우리는 더 이상 비용 때문에 로깅 프로젝트를 거절하고 돌려보낼 필요가 없게 되었습니다."

Deepak Wadhwani, Observability 팀의 엔지니어링 관리자 | Box

이를 염두에 두고, 일일 로깅의 데이터 확장이 폭발적인 상황에서, 회사는 2017년에 그 로깅 인프라를 다시 엔지니어링했습니다.

Box는 Almost-Real-Time-Analytics, 즉, "Arta"라는 내부 코드명의 파이프라인을 통해 유지, 임시, 대화형 로깅을 분리하는 세 갈래로 된 접근법으로 계속해서 모든 운영 및 애플리케이션 로깅을 안전하게 Elasticsearch로 이전하고 있습니다.

중요 업무용 사업 직능

Box는 보증된 SLA로 수행되는 엔터프라이즈 등급의 시스템을 만들고 유지관리하는 것이 중요하다고 말합니다. 따라서, Box 엔지니어들은 자신이 생성하고 있는 시스템과 로그에 대한 가시성을 확보해야 합니다. Ahmed는 Elastic이 Box의 Observability 팀에게 최소한의 색인 오버헤드로 정교한 쿼리 기능을 제공하는 로깅 시스템을 갖추도록 해주었다고 말합니다. Box가 확장함에 따라 합리적인 비용으로 가능하도록 말이죠.

"Elastic Stack은 우리에게도 중요합니다. 날마다 전 세계 수백만 명의 사용자와 고객이 중요 업무용 사업 직능을 실행하기 위해 Box를 신뢰합니다. Elasticsearch는 Box의 Observability 팀이 안정적이고 비용 효과적인 로깅 시스템으로 작업할 수 있도록 해주었습니다."

Salman Ahmed, 데이터 플랫폼 및 Observability SRE 팀 엔지니어링 디렉터 | Box

이 데이터를 시각화하는 수백 개의 Kibana 대시보드뿐 아니라, 이 Elastic 주도의 Observability로, Box 엔지니어들은 금방 인사이트를 얻을 수 있습니다. 이들은 고객들이 Box 파일을 열 때 문제가 있는지 여부를 볼 수 있으며, 파일에 공동작업자가 추가되었는지, 폴더에 파일이 추가되었는지도 볼 수 있습니다. 그 밖에도 수많은 것들을 볼 수 있죠. 로깅은 또한 엔지니어들이 가동 시간 SLA 요건 목표를 유지하기 위해 예를 들어 고객 파일 업로드 대기 시간 같은 문제를 수정하기 위한 빠른 경로를 제공해줍니다.

이 Kibana 대시보드는 중요 업무용 워크플로우에 대한 책임을 담당하는 Box의 저장 공간 팀에게 여러 다른 파일 크기에 걸쳐 사용되는 웹 클라이언트뿐 아니라, 업로드된 파일 유형에 대해 집계되는 파일 업로드에 대한 가시성을 제공해줍니다.

또한, Box 고객들이 계속해서 훌륭한 사용자 환경을 경험할 수 있도록 하기 위해, 로깅은 Box에서 코딩 행위의 중심으로, 코드 변경이 커밋되도록 해준다고 Box의 엔지니어링 선임 디렉터인 Dave Ward는 말합니다.

“새로운 기능을 추가하거나 수정하기 위해 변경을 할 때, 내 변경 사항을 통해 바라는 결과를 얻게 되었나?” Ward는 이렇게 묻습니다. “코드를 푸싱할 때 내가 오류를 보고 있는 건가? Observability 파이프라인이 의도한 대로 기능하지 않는다면, 우리는 우리 시스템의 건전성을 보장할 수 없을 것입니다. Elasticsearch를 활용하는 Arta는 우리의 민첩성을 유지하고 대규모로 케이던스를 릴리즈하는 데 중요한 사명입니다."

Box를 위한 Elastic의 향후 로드맵

현재, Box는 그 프로덕션 수준의 개발자 중심 로깅 스트림 대부분을 Arta에서 실행하는 중에 있습니다. 회사가 계속해서 지속적인 마이크로서비스 개발로부터 새로운 그리고 기존의 로깅 스트림을 추가하기 때문에, Box 팀은 안정성, 복원력, 운영 효율성에서 더욱 더 개선을 하고, 비용을 보다 절감하려고 노력하고 있습니다.

앞으로 Box는 Elastic의 시스템 하에서 하나의 플랫폼으로 더 많은 추적 메트릭을 중앙화할 것을 고려하고 있습니다. Box는 Elastic 엔지니어들과 적극적으로 파트너가 되어 제품 피드백을 정교하게 다듬고 공유하고 있습니다.

애플리케이션 성능 모니터링을 위한 Elastic APM, 문제를 탐색하고 알리는 데 도움이 되는 machine learning, Elastic의 geoIP 매핑 기능 등과 같은 다른 Elastic 기능에 관심이 있으며, 따라서 Box는 Kibana에서 IP 주소부터 시작해 세계 어디에서 쿼리가 들어오는지 시각화할 수 있습니다.

Box는 또한 Elastic SIEM을 탐색하여 보안 운영을 추진하고,Canvas로 Kibana 대시보드를 아름답게 만드는 작업을 하고 있으며, 아울러 수많은 다른 Elastic 기능들에 대한 설문조사를 실시하고 있습니다.

투자 수익률(ROI)

금융 용어로, Elastic의 채택은 데이터 작업량과 관련해 가격을 반으로 절감하도록 도와주었습니다. 또한, 보고 문제와 MySQL 하에서의 몇 가지 문제에 대한 해결책을 강화해주었습니다. 그리고 부분적으로는 작성 시 색인을 하는 Elastic에 비해 읽기 시 색인을 하는 이전의 로깅 솔루션으로 인해 발생하던 대기 시간이 이제 과거의 일이 되고 있습니다.

“데이터를 얻으려면 바닷물을 끓이든, 연못물을 끓이든 해라.” 이것이 Wadhwani가 대기 시간의 차이를 설명하는 방식입니다. Wadhwani는 이렇게 말합니다. “Elasticsearch로 Kibana에서 쿼리 작업을 하는 것이 훨씬 더 빠릅니다.

수량화할 수 없는 수준에서, ROI와 관련해, Box는 엔지니어들이 엔터프라이즈 등급 제품을 구축하는 데 필요한 Observability 수준을 얻기 위해 적절한 양의 로그를 생성하도록 적극 권장하고 있습니다.

이것과 아울러 다른 뉘앙스의 변화들이 Box가 내부 및 외부의 SLA 합의를 충족하도록 돕는 한편, 동시에 Box의 규모가 커짐에 따라 Box의 개발자들이 혁신하도록 권장하고 있습니다.

Box 클러스터

  • 클러스터 수
    1개
  • 노드 수
    데이터 85개, 마스터 3개, 클라이언트 6개
  • LS 인스턴스/Beats 수
    Logstash 20개
  • 총 문서 수
    1,800억 개
  • 총 데이터 크기
    190TB
  • 일일 수집 비율
    20TB
  • 인덱스 수
    250개
  • 쿼리 비율
    초당 쿼리 25개
  • 복제
    1개
  • 시계열 인덱스
    매일
  • 노드 사양: 총 메모리, CPU, 디스크 유형(SSD, HDD)
    AWS i3.4XLarge