고급 컨테이너 모니터링을 달성하기 위한 6가지 핵심 요소
2023년 10월 16일
4분 분량

보다 확장 가능하고 효율적이며 민첩한 인프라를 구축하기 위해 컨테이너화를 도입하는 조직이 점점 더 많아지고 있습니다. 컨테이너화에는 코드를 실행하는 데 필요한 라이브러리와 종속성으로 소프트웨어 코드를 패키징하는 작업이 포함됩니다. 이를 통해 데스크톱, 온프레미스 IT 또는 클라우드 네이티브 등 모든 인프라에서 실행할 수 있는 독립형 코드가 생성됩니다.

컨테이너는 이동성과 리소스 효율성이 뛰어난 기술을 필요로 하는 조직이 늘어나면서 그 중요성이 더욱 커져 최신 클라우드 네이티브 애플리케이션의 사실상 컴퓨팅 단위로 자리 잡았습니다. CIO의 보고에 따르면, Gartner는 2026년까지 글로벌 기업의 90%가 컨테이너화된 애플리케이션을 사용하고 앱 5개 중 1개가 컨테이너에서 실행될 것으로 예측했습니다.

컨테이너화된 애플리케이션을 구축, 배포 및 관리하기 위한 오픈 소스 플랫폼인 Docker가 2013년에 출시된 이후 컨테이너의 인기와 채택이 증가했습니다.

컨테이너 작동 방식

컨테이너는 운영 체제(OS) 가상화를 활용하고 OS 커널(예: Linux 네임스페이스 및 cgroup, Windows 사일로 및 작업 개체)을 사용하여 프로세스를 격리하고 해당 프로세스가 액세스할 수 있는 CPU, 메모리 및 디스크의 양을 제어할 수 있습니다.

컨테이너의 개발 속도 덕분에 기업은 새로운 비즈니스 서비스를 신속하게 구축, 배포하고 확장할 수 있습니다. 모든 인스턴스에서 게스트 OS를 필요로 하는 것이 아니라 호스트 OS의 기능과 리소스를 활용한다는 점에서 이는 가상 머신과 다릅니다.

조직이 마이크로서비스, 서버리스, DevOps 등의 최신 개발 기술을 수용하면서 소규모 단위로 정기적으로 코드를 배포하는 것이 더욱 중요해졌습니다.

마이크로서비스 아키텍처는 애플리케이션을 작고 자율적인 서비스로 나눕니다. 컨테이너와 마이크로서비스는 서로 다른 개념이며 별도로 사용할 수 있지만, 컨테이너에 마이크로서비스를 배포하는 것이 일반적입니다. 컨테이너화는 DevOps 팀이 소프트웨어를 테스트 단계에서 프로덕션 단계로 옮길 때 발생하는 복잡한 문제를 방지하는 데 도움이 됩니다.

컨테이너 모니터링이 중요한 이유

조직은 다른 소프트웨어와 마찬가지로 컨테이너화된 애플리케이션의 상태를 모니터링하고 성능 문제를 추적해야 합니다. 컨테이너 가시성을 유지하고 포괄적인 컨테이너 메트릭을 추적하면 조직은 사용 사례 전반에 걸쳐 비용을 절감하고 소프트웨어 라이프사이클을 더 잘 관리할 수 있습니다.

애플리케이션 모니터링 및 애플리케이션 성능 관리(APM)의 한 측면인 컨테이너 모니터링은 성능 메트릭 추적, 컨테이너 효율성 증진, 평균 복구 시간(MTTR) 단축, 워크로드의 신뢰성 향상 등 조직에 여러 가지 이점을 제공합니다. 이를 위해 조직은 컨테이너 성능에 대한 실시간 가시성을 제공하는 컨테이너 모니터링 솔루션을 활용할 수 있습니다. 컨테이너 모니터링은 관측 가능성을 확보하고 궁극적으로 IT 서비스의 가용성을 보장하는 데 도움이 됩니다.

팀이 전체 컨테이너식 환경을 완벽하게 파악할 수 있도록 전체 애플리케이션의 성능을 추적하고 모든 특정 구성 요소 및 계층에 대한 가시성을 확보하는 것이 필수적입니다.

조직이 컨테이너의 성능과 상태를 설정, 모니터링 및 극대화하는 6가지 방법

1. 모니터링 KPI 정의

포괄적인 컨테이너 모니터링 전략을 위해서는 처음부터 KPI를 설정하여 비즈니스 목표에 부합하는지 확인해야 합니다. 조직은 컨테이너 전략과 관련하여 서로 다른 요구 사항과 목표를 가질 수 있으며 측정 대상을 이러한 목표에 맞게 조정해야 합니다.

개별 KPI에 대해 집중해야 할 세 가지 핵심 영역이 있습니다.

  • 성능 모니터링: 컨테이너 성능을 추적하는 것은 클러스터 수준과 컨테이너 런타임 내에서 모두 중요합니다. 조직은 최종 사용자가 조직의 애플리케이션 및 웹 서비스에 대해 긍정적인 경험을 할 수 있도록 응답 시간 및 네트워크 지연 시간과 같은 KPI에 집중해야 합니다.
  • 리소스 사용률 모니터링: 컨테이너에는 상당한 리소스가 필요할 수 있으므로 CPU 사용량, 디스크 공간 사용량, 메모리 사용률과 같은 KPI를 추적하여 각 컨테이너가 사용하는 컴퓨팅 리소스의 양을 모니터링하는 것이 중요합니다. 이렇게 하면 컨테이너의 CPU 또는 메모리 용량이 모두 소진되기 전에 노드를 추가하는 등 잠재적인 인시던트가 더 큰 문제로 발전하기 전에 해결할 수 있습니다.
  • 보안 및 규정 준수 모니터링: 조직은 컨테이너 이미지 및 인증과 같은 영역에 대한 공격 시도에 중점을 두고 컨테이너 환경의 보안 모니터링에 우선순위를 두어야 합니다. 컨테이너 모니터링은 컨테이너 이미지 및 런타임 환경, 사용자 MFA 비율, 방화벽 위반 시도 및 런타임 이상에 대한 취약성 스캔을 제공할 수 있으며, 이는 취약성 평가 점수, 인시던트 대응 시간 및 규정 준수 상태와 같은 KPI에 기여합니다.

2. 필요한 종속성 및 통합 파악

컨테이너 모니터링 툴은 Prometheus, JMX 및 statsD와 같은 오픈 소스 컨테이너화 도구와 통합되어야 하며, 이를 통해 조직은 환경에 대한 인사이트를 얻을 수 있습니다. 또한 컨테이너 모니터링 툴은 호스트, OS, Java Virtual Machine(JVM), Cassandra 노드 및 MySQL과 같은 종속성에 대한 가시성을 제공해야 합니다. IBM Instana Observability 플랫폼은 동적 그래프를 사용하여 조직의 애플리케이션을 모델링하여 구성 요소의 모든 물리적 및 논리적 종속성을 파악합니다.

3. 대시보드 만들기 및 사용자 지정

대시보드는 인프라를 모니터링하고 컨테이너의 상태를 평가하는 데 중요한 구성 요소입니다. 직원들은 문제가 발생했을 때 개입할 수 있도록 컨테이너 환경에서 무슨 일이 일어나고 있는지 확인해야 합니다.

최신 컨테이너 모니터링 툴은 DevOps 팀이 컨테이너 데이터를 집계 및 특정 데이터를 표시하는 개별 시각화에서 볼 수 있는 대시보드를 생성합니다. Instana는 동적 그래프와 컨텍스트 가이드를 통해 컨텍스트와 함께 가시성을 제공합니다. 이러한 기능은 사용자가 애플리케이션 간의 관계를 보고, 문제를 진단하고, 그 영향을 확인하는 데 도움이 됩니다.

4. 컨테이너 오케스트레이션과 통합:

많은 조직이 Kubernetes와 같은 오픈 소스 도구를 통해 컨테이너화된 애플리케이션의 프로비저닝, 배포 및 관리를 자동화하는 컨테이너 오케스트레이션을 사용합니다. Kubernetes 컨테이너화된 환경은 자동화를 사용하여 사람의 개입 없이 배포, 로드 밸런싱 및 확장과 같은 작업을 수행합니다. 그러나 조직이 각 Kubernetes 클러스터를 볼 수 있도록 모니터링은 여전히 중요합니다. 컨테이너는 오케스트레이션 프로세스를 개선하는 데 도움이 될 수 있는 상당한 양의 성능 데이터를 생성하며, 모니터링은 오케스트레이션이 제대로 작동하는지 확인하는 데 도움이 됩니다.

5. 워크플로 자동화:

자동화는 컨테이너 모니터링의 중요한 구성 요소입니다. 특정 자동화된 워크플로를 설정하면 DevOps 팀의 부담을 최소화하고, 인적 오류를 최소화하여 컨테이너 상태와 효율성을 촉진하고, 시스템이 사람보다 더 빠르게 개입할 수 있습니다.

6. 성능 인시던트 알림 생성:

컨테이너 내 성능 인시던트를 신속하게 진단하고 해결하려면 이상 징후 감지 기능이 필요합니다. 컨테이너 모니터링 솔루션은 인시던트 발생 시 이를 기록해야 하며, DevOps 팀과 사이트 안정성 엔지니어는 이를 개별적으로 해결하고 문제 해결에 참여하거나 근본 원인 분석 및 보다 포괄적인 대응이 필요한 문제인지 판단할 수 있습니다.

IBM 및 컨테이너 모니터링

점점 더 많은 조직이 컨테이너화를 도입함에 따라 가동 시간, 우수한 서비스 제공, 향상된 사용자 경험을 보장하기 위해 강력하고 체계적인 컨테이너 모니터링 관행을 만드는 것이 더욱 중요해질 것입니다.

컨테이너형 환경에서는 애플리케이션 상태를 유지할 뿐만 아니라, 민첩성과 효율성을 극대화하여 컨테이너화된 애플리케이션에 대한 투자 수익을 극대화하는 데도 가시성과 모니터링이 매우 중요합니다.

IBM Instana Observability를 통한 컨테이너 모니터링은 이러한 문제를 해결하고 호스트, 컨테이너, 미들웨어, 실행 중인 마이크로서비스 등 모든 기술 계층에 대한 완전한 컨텍스트와 함께 지속적인 자동 가시성을 제공합니다. 모니터링 대시보드는 모든 컨테이너, 컨테이너 내부에서 실행되는 전체 기술 스택 및 그 위에서 실행되는 앱에 대한 자동화된 관측성을 제공합니다.

 
작가
Keith O'Brien Writer, IBM Consulting