많은 분들이 이미 ELK 스택의 이점이 무엇이고 ELK를 사용하는 팀이 많은 이유를 알고 있습니다. ELK는 버그 및 프로덕션 문제를 진단하고 해결하는 데 중요할 뿐만 아니라 고객 인사이트를 얻는 데 있어서도 그 유용성이 커지고 있습니다. 게다가 시스템 상태 및 사용량에 대한 추가 지표를 확보하여 팀의 경쟁력을 강화할 수 있습니다. 다른 회사들이 부족한 영역을 찾느라 애를 쓸 때 ELK를 사용하는 팀은 데이터를 실험하고 조정하여 시스템에 꼭 필요한 것을 제공할 수 있습니다.
관리자는 엔지니어와 DevOps 팀에 좋은 로깅 솔루션을 제공하는 것에 대해 고민하는 경우가 많습니다. 그러나 이와 관련된 비용이 발생한다는 것도 알고 있습니다. 인프라 비용 외에도 업그레이드, 패치 및 배포를 다루어야 합니다. 이 모든 일에는 시간, 노력 및 전문성이 필요합니다.
유지 관리와 지원이 간편하면서도 성능이 우수한 로깅 솔루션을 제공하려면 어떻게 해야 할까요? 골칫거리 없이 ELK 스택의 모든 이점을 누리는 방법은 없을까요?
로깅은 왜 그렇게 중요할까요?
머신 데이터가 증가하면서 로깅의 중요성이 나날이 커지고 있습니다. 문제를 진단하고 해결하여 애플리케이션 성능을 최적화하려면 로깅이 중요합니다. 로그에서 중요한 비즈니스 지표 및 데이터를 가져오는 데 사용되는 도구도 많습니다. 로깅은 더 이상 단순히 문제를 찾는 데만 사용되지 않습니다. 시스템 모니터링에도 사용됩니다.
로깅이 중요하다는 데는 의심의 여지가 없습니다. 그렇다면 로깅을 구현하는 방법에 대해 말해 봅시다. 현재 많이 사용되는 방법 중 하나는 ELK 스택입니다. Apache 2.0 라이선스 버전의 Elasticsearch 및 Kibana(7.10.2 버전까지)를 사용하여 직접 ELK 스택을 배포하고 관리하거나, ELK 스택의 오픈 소스 대안으로 OpenSearch, OpenSearch 대시보드 및 Logstash를 자체 관리할 수 있습니다.
ELK 스택을 원하는 이유는 무엇일까요?
아시다시피 ELK는 Elasticsearch, Logstash 및 Kibana의 중심에 구성되는 스택입니다. 각각의 요약을 살펴봅시다.
Elasticsearch: 전체 텍스트 검색과 로그 및 지표 분석에 사용되는 검색 및 분석 엔진입니다.
Logstash: 로그 및 이벤트를 수집하고 변환하는 오픈 소스 도구입니다.
Kibana: 로그 및 이벤트 검토를 위한 데이터 시각화 및 탐색 도구입니다.
ELK 스택의 구성 요소를 함께 사용하면 모든 시스템의 로그를 집계할 수 있습니다. 로그에서 문제를 분석할 수 있을 뿐만 아니라 시스템 사용을 모니터링하고 개선 기회를 찾을 수도 있습니다. ELK가 제공하는 데이터 분석 및 시각화는 최고 수준입니다.
그렇다면 관리형 서비스를 ELK에 사용하는 이유는 무엇일까요? 훌륭한 팀이 있습니다. 단일 호스팅 공급업체에 종속되고 싶지 않습니다. 특정 사용 사례에 맞게 모든 것을 구성할 수 있는 유연성을 원합니다. ELK를 직접 관리하지 않는 이유는 무엇일까요?
간단히 말해 어렵습니다.
자체 ELK 스택의 관리에서 무엇이 그렇게 어려운 것일까요?
ELK 관리를 직접 하지 않는 것이 좋은 몇 가지 이유를 살펴봅시다.
설치가 쉽지 않음
통합 시스템을 볼 때는 설치가 항상 간단하지는 않다는 점을 잊지 말아야 합니다. 최상의 구성은 무엇입니까? 비밀은 어디에서 관리합니까? 하드웨어는 얼마나 필요합니까?
간단한 인터넷 검색으로 ELK 설치 방법을 설명하는 많은 자료를 찾을 수 있습니다. 한 번 보면 클릭 한 번으로 배포하여 시작하는 것과는 거리가 멀다는 것을 알게 됩니다. 실제로는 많은 사전 요구 사항이 있습니다. 모든 항목에 대한 즉시 사용 가능한 구성이 포함된 기본 설치를 사용하거나 시간을 더 들여서 모든 구성 옵션을 조사할 수 있습니다. 데이터 수집 제한은 얼마입니까? 보존 계획은 어떻게 됩니까? 그것이 왜 중요합니까?
이제, 보유한 각 환경에 대해 이 일을 여러 번 한다고 상상해 보세요.
모든 것에 자동화된 스크립트를 사용한다고 해도 모두 설정하고 원활하게 실행하기까지는 상당한 시간이 걸립니다. 이 시간은 고객에게 가치를 제공하는 데 쓰여지는 시간이 아닙니다. Amazon OpenSearch Service와 같은 관리형 서비스를 사용하면 ELK 스택을 간편하게 반복적으로 배포할 수 있습니다.
거의 빠르지 않음
대부분의 회사는 제품을 시장에 빨리 내놓으려고 합니다. 하지만 스택과 인프라를 프로덕션 준비 상태로 만드는 데 몇 주 또는 심지어 몇 개월을 써야 한다면 출시를 앞당길 수 없습니다.
애플리케이션을 프로덕션으로 전환할 때 사용하는 현재의 프로세스는 무엇입니까? 철저한 준비를 위해 어떤 테스트, 확인 및 조정 작업을 수행합니까? 쓰기 집약적 작업에 맞게 하드웨어 설정을 최적화해야 한다면 프로덕션 전환 전에 이 최적화를 완료할 수 있습니까? 업그레이드 계획은 어떻게 됩니까?
자체 ELK 스택을 관리하는 경우 익숙하지 않은 인프라 및 애플리케이션에서 이 모든 작업을 수행해야 합니다. Amazon OpenSearch Service와 같은 서비스는 인프라, 구현 및 지속적인 유지 관리 비용을 크게 줄이는 데 도움이 될 수 있습니다.
복원력에 더 많은 시간을 들여야 함
ELK 스택을 관리할 때 문제가 되는 것은 복원력입니다. Elasticsearch 노드 중 하나가 중단되면 어떻게 해야 합니까? Kibana 성능을 사용할 수 없게 되면 어떻게 합니까?
뿐만 아니라 위의 단계에서 인프라를 올바르게 설정하는 과정에서도 문제가 생길 수 있습니다. Logstash와 Elasticsearch는 메모리 집약적입니다. 동일한 소형 하드웨어에 모두 설치하여 시간과 비용을 줄이려고 한다면 엉망이 됩니다. 게다가 버전 업데이트나 보안 문제 모니터링 및 패치 적용 계획에 대한 이야기는 아직 시작하지도 않았습니다!
AWS는 이러한 요구 사항을 지원할 수 있습니다. 예를 들어 Elasticsearch 노드를 생각해 봅시다. 노드가 중단되면 Amazon OpenSearch Service가 중단을 감지하고 중단된 노드를 교체합니다. 이러한 작업을 걱정하느라 시간을 쓰지 않아도 됩니다.
기본적으로 팀 규모를 키우고 싶다면 그렇게 해도 됩니다. 자체 관리를 하면 팀 규모가 훨씬 더 커지기 때문입니다. 반대로 Elasticsearch 클러스터를 실행하는 것이 중요하지 않은 사업부라면 AWS를 통해 관리하는 것이 좋습니다. 엔지니어에게 월급을 주는 이유는 ELK 스택 관리를 맡기기 위해서가 아니라 비즈니스 가치를 창출하기 위해서입니다.
ELK 스택의 복잡한 작업을 방지하는 데 도움이 되는 도구
ELK를 구축, 실행 및 지원하려면 도구 1개를 지원하는 것으로 끝나지 않습니다. 이제 구축, 실행 및 지원이라는 3가지 작업을 걱정해야 합니다. 프로덕션에서 실행할 때는 또 다른 문제가 나타납니다. 자체 관리라는 퀘스트를 지원하려면 이 외의 또 다른 문제도 발생할 수 있습니다.
예를 들어 복원력을 개선하려면 로그를 쿼리할 때 Kafka를 사용하는 것이 좋을 수 있습니다. 트래픽이 높은 시기에 ELK 스택의 문제로 인해 로그가 손실되는 일은 없어야 하니까요. 그러면 Kafka 관리도 준비해야 합니다. 그게 싫다면 Redis를 사용하여 피크 시간 중의 로드를 관리할 수 있습니다. 잠깐, 그러면 관리해야 할 항목이 또 늘어나지 않을까요? 시스템 모니터링에 필요한 분석 자료는 어떻게 꺼냅니까? 여기에서도 수동 작업이 필요할까요? 아니면, 필요한 모니터링을 제공하는 또 다른 시스템을 설치하고 구성해야 할까요?
대안이 있습니다. Amazon Cloudwatch와 같은 서비스를 사용하여 도움을 받을 수 있습니다. 이 서비스는 Kibana와 연동되며 간편하게 로그를 분석할 수 있습니다.
마지막으로, Amazon OpenSearch Service와 같은 관리형 Elasticsearch 서비스를 사용하면 VPC 지원, 저장 중 및 이동 데이터에 대한 기본 암호화 및 사용자 인증과 같은 보안 통합도 지원할 수 있습니다.
관리형 솔루션이 회사에 적합할까요?
많은 회사가 자체 호스팅을 옵션 중 하나로 둡니다. 그러나 모든 회사가 원활한 실행에 필요한 작업 및 기술 리소스와 전문성을 고려하지는 않습니다. 고객에게 우수한 제품을 제공하는 데 쓸 수 있는 시간을 시스템 실행 및 유지 관리에 쓰려는 회사는 없습니다.
자체 호스팅에 대해 생각해 왔다면 Amazon OpenSearch Service와 같은 관리형 서비스로 시작하여 설정 및 실행을 가속화하는 것을 고려하세요. Amazon OpenSearch Service와 같은 관리형 서비스를 한 번 사용해 보면 더 중요한 일에 시간을 쓸 수 있다는 것을 알게 됩니다.
OpenSearch에는 Elasticsearch B.V. 및 다른 소스 코드의 특정 Apache 라이선스 Elasticsearch 코드가 포함됩니다. Elasticsearch B.V.는 다른 소스 코드의 소스가 아닙니다. ELASTICSEARCH는 Elasticsearch B.V.의 등록 상표입니다.
Amazon OpenSearch Service 요금에 대해 자세히 알아보기