Elastic Machine Learning을 이용한 GoDaddy 사용자 환경 개선
이 포스팅은 Elastic{ON} 2018에서 이루어진 커뮤니티 대담을 요약한 것입니다. 이런 대담을 좀더 보고 싶으세요? 컨퍼런스 아카이브를 확인하시거나 Elastic{ON}{ON} 투어가 언제 가까운 도시에서 개최되는지 알아보세요.
최근에 슈퍼볼 경기를 시청하신 분이라면 아시겠지만, GoDaddy는 웹 호스팅과 도메인 관리로 잘 알려진 기업입니다. 그러나 1,700만 이상의 고객과 7,500만 개의 도메인, 천만 개의 호스팅 사이트를 보유하고 있어, 빅 데이터에도 정통합니다. 사이트들이 계속 순조롭게 실행되도록 하려면 가상 서버 패치 수준에서부터 네트워크 문제와 악의적인 공격에 이르기까지 모든 인프라를 구석구석 통찰할 수 있어야 합니다. 초당 20만 개 이상의 메시지(DNS 쿼리, 시스템 로그, 비즈니스 이벤트 등)가 들어오는 상황에서는 이것이 어려울 수 있지만, 그 규모의 속도라면 Elastic Stack은 그 작업을 감당할 수 있습니다.
GoDaddy의 Elasticsearch 도입은 오픈소스 소프트웨어를 사용하는 다른 기업들과 상당히 비슷했습니다. 회사 전체에 걸쳐 별도의 팀들이 각각 고유한 필요를 처리하기 위해 자체적인 클러스터를 설정했습니다. 업무를 완수하게 해주긴 했지만 관리되지 않는 이러한 배포 모델은 다양한 버전의 Elasticsearch에서 실행되는 수백 개의 클러스터가 사일로화된 데이터를 분석하는 상황으로 이어졌습니다. GoDaddy에서는 더 나은 방법이 있다는 것을 알고 있었기 때문에, 2014년에 Elasticsearch 배포 관리를 위한 팀을 구성했습니다. 이 팀은 현재 회사 전체의 모든 팀으로부터 들어오는 피드와 700개 이상의 Docker 컨테이너에 걸쳐 60여 개의 Elasticsearch 클러스터를 관리하고 있습니다. 이 클러스터는 (11 PB) HDFS 환경에서 270TB 이상의 데이터를 차지합니다.
새로운 Elasticsearch 팀이 씨름했던 첫 번째 사용 사례 중 하나는 전체 에코시스템에 걸친 패치 준수 관리였습니다. 2014년에 Beats가 도입되기 전에, GoDaddy는 (Auditbeat 및 Winlogbeat와 유사한) Windows와 Linux 에이전트를 개발하여 시스템 데이터를 Elasticsearch로 전송했습니다. 모든 (베어메탈 및 가상) 서버에 설치된 이 에이전트를 이용해, GoDaddy는 전체 인프라에 걸쳐 패칭 수준과 준수에 대한 귀중한 통찰을 얻을 수 있었습니다. 그리고 Kibana 내에서 여러 다른 대시보드와 가상화를 활용함으로써, 관리자와 엔지니어에게는 세분화된 수준의 패치 정보를, 임원에게는 고급 수준의 비즈니스 보고서를 손쉽게 제공할 수 있었습니다. 이 모두가 동일한 중앙 집중식 데이터에 액세스하며 이루어지고 모든 사람이 동일한 정보를 공유할 수 있습니다.
서버 패치 수준을 유지하는 것은 사이트 트래픽이 계속 흐르도록 하기 위해 중요하며, 그 흐름은 사용자들이 계속해서 참여하도록 하는 데 도움이 됩니다. 웹사이트 로딩 속도가 느리면, 방문자들은 다른 곳으로 가버리게 됩니다. 따라서, 수백만 고객들의 환경을 염두에 두고, GoDaddy는 데이터 센터가 얼마나 작업을 잘 수행하고 있는지 그리고 그 성능이 방문자들에게 어떤 영향을 미치는지 추적해야 한다는 것을 알았습니다. 시스템의 모든 구성 요소가 로그를 생성했기 때문에 필요한 데이터는 이미 모두 있었지만, 전체적으로 그것을 볼 수 있는 방법이 필요했습니다.
Machine Learning을 이용한 중앙화된 로깅으로 이상 징후 탐색
GoDaddy는 다양한 성능 및 참여 데이터 세트를 중앙화하고 분석해야 했으며, Elastic Stack이 그 답이었습니다. 넷플로우 데이터, sFlow 데이터, 실제 사용자 관리(RUM), 그리고 피어링 관계 및 라우팅 데이터를 Elasticsearch로 전송함으로써, 사용자 환경과 시스템 성능 데이터에 대해 훨씬 더 상세한 보기를 얻을 수 있었습니다. 이러한 정도의 상세함은 모든 다른 데이터 소스를 동시에 분석함으로써만 확인할 수 있는 것입니다. 그 이래로, GoDaddy는 Elastic 머신 러닝 기능의 도움으로 그 데이터를 훨씬 더 상세하게 파악하기 시작했습니다.
엄청나게 많은 시스템 데이터에 대해 중앙화된 액세스가 가능하다는 것은 큰 장점이지만, 문제를 추적하는 것은 어려울 수 있습니다. GoDaddy는 모든 사용자 클릭과 웹 사이트 상호 작용을 추적하지만, 전 세계적으로 수백 만 페이지를 운영하면 인간의 팀으로는 어떤 식으로도 그 모든 데이터를 꼼꼼하게 살펴 추려낼 수 없을 것입니다. 다행히도, Elastic 머신 러닝 기능은 간단하게 이상 징후를 탐색할 수 있게 해줍니다. Elastic의 머신 러닝 전문가들과 함께 작업하여 GoDaddy는 RUM 중심의 머신 러닝 작업을 실행해왔고, 이를 통해 이상 징후를 쉽게 탐색할 수 있었습니다.
“전체적인 노력이라는 면에서, Elastic 팀을 활용하세요. 정말로 큰 도움이 됩니다. 우리는 아주 긴밀하게 협력해 왔으며, 자주 전화 통화를 하고, 모든 업데이트에 대해 완전히 개방된 커뮤니케이션 라인을 구축하여, 어딘가에서 문제가 생겨 어떻게 할지 모르게 되면 Elastic 팀을 이용합니다. Elastic 팀은 문제 해결의 전문가입니다.” - Felix Gorodishter, 수석 아키텍트, GoDaddy
페이지 로딩 시간의 임계값과 페이지 트래픽에 대한 매개 변수를 지정함으로써, GoDaddy 팀은 Elastic 머신 러닝 기능이 무엇이 정상이고 무엇이 비정상인지를 알아내는 작업을 처리한 다음, 문제가 있을 때마다 알려주도록 합니다. 머신 러닝은 불필요한 데이터를 차단함으로써 GoDaddy가 중요한 것에 집중할 수 있게 해줍니다.
GoDaddy가 어떻게 Elastic 머신 러닝 기능을 활용해 호스팅 사이트 성능을 모니터링하는지 알아보려면, Elastic{ON} 2018의 GoDaddy 구현 사례: 빅 데이터에 대한 통찰이 큰 이익이 되는 방법(Stories from the Trenches at GoDaddy: How Big Data Insights Equal Big Money)을 시청하세요. 아울러 제품 수용에 대한 비즈니스 KPI를 모니터링하기 위해 머신 러닝을 이용하는 흥미로운 방법들도 엿보게 되고 그 과정에서 배운 교훈에 대해서도 듣게 됩니다.