KeyBank가 Elastic을 사용해 엔터프라이즈 모니터링 솔루션을 구축한 방법
이 포스팅은 Elastic{ON} 2019년 시카고 투어에서 이루어진 커뮤니티 대담을 요약한 것입니다. 이런 대담을 좀더 보고 싶으세요? 컨퍼런스 아카이브를 확인하시거나 Elastic{ON} 투어가 언제 가까운 도시에서 개최되는지 알아보세요.
KeyBank는 미국에서 가장 규모가 큰 은행 중 하나입니다. 그리고 은행이 성장해감에 따라 엔드 투 엔드 모니터링 시스템도 성장하게 되었습니다. 15개 주에 걸쳐 1,100여 개의 지점과 1,400여 개의 ATM을 갖춘 KeyBank의 인프라는 KeyBank의 클라우드 네이티브 담당 수석 제품 관리자 Mick Miller의 말에 따르면 “노아의 방주 디자인”으로 진화해갔습니다. 다시 말해, 모든 것을 한 쌍씩 갖춘 21개의 서로 다른 데이터 섬이 된 것입니다. “우리의 평균 문제 해결 시간은 정말 느리지만, 책임 소재에 대해 비난하는 데 걸린 평균 시간은 정말 빠르다는 것을 알게 되었습니다.”
근본 원인 파악
시스템은 너무 많고 사일로 간에 데이터를 손쉽게 서로 연결할 수 있는 방법은 없기 때문에, 팀에게는 문제의 근본 원인을 파악할 수 있는 가시성이 전혀 없었습니다. 지점들은 워크스테이션의 성능이 형편없다는 보고를 하고 있었고, 모바일 뱅킹 앱 평점은 급격하게 하락하고 있었지만 서로 관련된 가시성 데이터 없이는 아무 것도 할 수 없었습니다. 뿐만 아니라, 로깅과 메트릭 시스템 때문에 저장 공간 용량이 부족해지기 시작했습니다. 모든 새로운 모니터링은 중지되었고 예전의 서비스 제공자 라이선스를 업그레이드하는 비용은 너무 비싸서 고려조차 해볼 수 없었습니다.
팀에게 모니터링 요청의 엄청난 백로그가 생기기 시작하면서, 새로운 시스템을 개발하는 데 필요한 시간 여유가 없어졌고, 심지어 성능으로 인한 고객 손실이라는 훨씬 더 중요한 문제까지 발생했습니다. 예를 들어, 어떤 고객들이 계좌를 개설하기 위해 들어왔을 때, 시스템의 작동이 자꾸 중단되었고, 이로 인해 지연 시간이 길어지고 사용자 경험이 나빠졌습니다. 그리고 잠재적인 고객이 손쉽게 계좌를 개설할 수 없으면 다른 은행을 찾게 됩니다.
Elasticsearch를 통한 가시성 강화
보안과 관련되지 않은 다른 문제들을 조사하기 위해 필요한 로그와 메트릭을 더 이상 시스템이 제공하지 못하게 되면서 KeyBank는 Elastic Stack으로 전환하게 되었습니다. 설정한 Elasticsearch 개발 클러스터를 사용하여, Winlogbeat와 Metricbeat를 지점 네트워크에서 수천 대의 워크스테이션으로 배포했고 로그와 메트릭 데이터를 색인하기 시작했습니다. 며칠 후, 풍부한 인사이트를 갖게 되었고 세 가지 근본 원인을 파악해냈습니다. 지속적으로 디스크 I/O 비율이 높고, 이용 가능한 메모리가 적으며, 네트워크는 완전히 포화 상태였습니다.
더 많은 KeyBank 직원들이 Kibana 내에서 시각화된 응답 시간 데이터를 보게 될수록, 긴박감이 높아졌습니다. 팀은 전체 시스템에 걸쳐 엄청난 복구 노력을 시작해야 했고, 경영진은 첫 번째 프로덕션 클러스터를 배포하도록 허가해 주었습니다. 가시성 데이터가 쇄도하면서 필요한 가시성을 얻게 되었지만 또 다른 문제에 직면했습니다. 스트림이 개발 환경으로 밀려들고 있었습니다. 성장을 위한 계획이 필요하다는 것을 깨닫게 되었습니다.
"나쁜 소식은 작업량을 정확히 예측하는 것이 사실상 불가능하다는 거죠. 그렇지만 좋은 소식은 우리가 꼭 필요한 변경 작업을 하며서 배웠다는 것입니다. 따라서 우리는 가동 중단 시간 없이 우리 시스템을 재구성할 수 있도록 하기 위해 우리 시스템의 아키텍처를 설계했습니다." — Mick Miller, KeyBank
외과적인 확장
모니터링 필요가 증가하면서, KeyBank는 엔드 투 엔드 시스템을 확장하기 위해 반복적인 접근 방법을 사용하여 Elasticsearch 모니터링 시스템을 발전시키고 있습니다. 약간의 미세 조정을 한 후, 이제 그 아키텍처는 변경 사항이 “외과적”이 되도록 할 수 있는 몇 가지 핵심 원리에 따르고 있으며, 전체 시스템에는 영향을 미치지 않습니다. 각 논리적 계층은 다음과 같은 특성을 가져야 합니다.
- 독립적인 확장성
- 고가용성
- 내결함성
다행히도 이것은 Elasticsearch와 그 수평적 아키텍처가 독보적인 영역입니다. KeyBank가 색인된 성능으로 엔드 투 엔드 수집을 하는 데는 1/2초 미만이 소요되며, 따라서 SLA를 충족하지 않는 경우, 확장하기만 하면 됩니다. Miller 수석 제품 관리자는 “한 곳에 모든 데이터를 보유하게 되면서 이 모든 예상치 못한 장점들이 생겨났고, 우리는 Elasticsearch가 이를 위한 훌륭한 솔루션이라고 생각한다”고 말합니다.
Elastic{ON} 2019년 시카고 투어에서 KeyBank가 Elastic을 사용해 엔터프라이즈 모니터링 솔루션을 구축한 방법을 시청하시고 여러분의 Elasticsearch 시스템을 어떻게 (그리고 언제) 확장할 것인지에 대해 더 자세히 알아보세요. 또한 KeyBank가 물리적인 컴퓨팅 리소스에 대해 자동화와 분산된 가상화를 구현하고 5백만 달러 이상을 절약한 방법에 대해서도 들어보실 수 있습니다.