0Pricing
Cloud & IT Cert Prep · 강의

CloudWatch 대시보드 및 Container Insights

여러 서비스의 운영 대시보드를 구축하고, ECS 및 EKS 클러스터 수준의 성능 지표를 위해 Container Insights를 활성화합니다.

CloudWatch 대시보드 및 Container Insights은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

CloudWatch Dashboards 개요

CloudWatch Dashboards는 AWS 인프라를 여러 위젯으로 구성해 사용자 지정할 수 있는 화면으로, 운영 상태를 통합해서 보여 줍니다. 하나의 대시보드에서 선 그래프, 숫자 위젯, 게이지, 경보, 로그 쿼리 결과를 사용해 여러 AWS 서비스와 계정의 메트릭을 한 화면에 표시할 수 있습니다. 대시보드는 전역 리소스이므로 하나의 대시보드에서 모든 Region의 메트릭을 표시할 수 있습니다. 대시보드를 공개적으로 공유하거나 IAM 정책을 통해 액세스를 제한할 수 있습니다.

대시보드 위젯

CloudWatch 대시보드는 여러 위젯 유형을 지원합니다. 시계열 메트릭에는 선 및 누적 영역 그래프를, 최신 메트릭 값에는 숫자 위젯을 사용할 수 있으며 KPI를 표시하는 데 특히 유용합니다. 비교에는 막대 차트를, 용량 지표에는 게이지를, 경보 상태 요약에는 경보 상태를, Live Tail 또는 Insights 쿼리 결과에는 로그 테이블을, 레이블과 문서에는 텍스트를 사용할 수 있습니다. 여러 위젯 유형을 하나의 대시보드에 결합하면 팀에서 시스템 상태를 한눈에 평가할 수 있습니다.

# Create a dashboard via CLI (body must be escaped JSON)
aws cloudwatch put-dashboard \
  --dashboard-name ProductionOverview \
  --dashboard-body '{
    "widgets": [
      {
        "type": "metric",
        "properties": {
          "metrics": [["AWS/EC2","CPUUtilization","AutoScalingGroupName","my-asg"]],
          "period": 60,
          "stat": "Average",
          "title": "ASG CPU Utilization"
        }
      }
    ]
  }'

계정 간 및 리전 간 대시보드

CloudWatch는 모니터링 계정과 소스 계정을 사용한 계정 간 관찰성을 지원합니다. 중앙 모니터링 계정을 지정하고 소스 계정을 연결한 다음, 연결된 모든 계정에서 메트릭과 로그를 가져오는 대시보드를 만들 수 있습니다. 따라서 여러 계정으로 구성된 환경을 관찰하기 위해 콘솔 계정을 전환할 필요가 없습니다. 동일한 계정 내의 리전 간 위젯은 대시보드 JSON 정의에서 Region을 지정하여 기본적으로 사용할 수 있습니다.

# Enable cross-account sharing in a source account
aws cloudwatch put-dashboard \
  --dashboard-name MultiRegionView \
  --dashboard-body '{
    "widgets": [
      {
        "type": "metric",
        "properties": {
          "metrics": [
            ["AWS/RDS","DatabaseConnections","DBInstanceIdentifier","prod-db",{"region":"us-east-1"}],
            ["AWS/RDS","DatabaseConnections","DBInstanceIdentifier","prod-db-eu",{"region":"eu-west-1"}]
          ],
          "title": "DB Connections: us-east-1 vs eu-west-1"
        }
      }
    ]
  }'

CloudWatch Live Tail

CloudWatch Live Tail(2023년 출시)을 사용하면 하나 이상의 로그 그룹에서 로그 이벤트를 거의 실시간으로 스트리밍하여 CloudWatch 콘솔 또는 CLI에서 직접 확인할 수 있습니다. 로그 파일에서 tail -f를 실행하는 것과 비슷합니다. 필터 패턴을 적용하여 일치하는 이벤트만 볼 수 있습니다. 전체 Insights 쿼리를 실행하지 않고 애플리케이션이 현재 수행하는 작업을 확인해야 하는 배포 또는 장애 조사 상황에서 Live Tail은 매우 유용합니다.

# Start a Live Tail session for a Lambda function's logs
aws logs start-live-tail \
  --log-group-identifiers '/aws/lambda/my-function' \
  --log-event-filter-pattern 'ERROR'

# The output streams log events in real time until you cancel (Ctrl+C)

Container Insights란 무엇인가요?

CloudWatch Container Insights는 CloudWatch의 기능으로, Amazon ECS(EC2 및 Fargate)와 Amazon EKS(EC2 및 Fargate)에서 실행되는 컨테이너화된 워크로드의 메트릭과 로그를 수집하고 집계하며 요약합니다. 각 애플리케이션을 수동으로 계측하지 않아도 클러스터, 서비스, 노드 및 파드 수준의 성능을 확인할 수 있는 사전 구축 대시보드를 제공합니다. Container Insights는 CloudWatch Agent 또는 EKS Fargate 로그 라우터를 사용하여 데이터를 수집합니다.

# Enable Container Insights on an ECS cluster
aws ecs update-cluster-settings \
  --cluster my-ecs-cluster \
  --settings name=containerInsights,value=enabled

# Enable Container Insights on EKS (via CloudWatch Agent DaemonSet)
eksctl utils update-cluster-logging \
  --cluster my-eks-cluster \
  --enable-types all \
  --region us-east-1

Container Insights 메트릭

Container Insights는 ECS/ContainerInsights 및 ContainerInsights 네임스페이스에서 메트릭을 수집합니다. EKS의 경우 다음 메트릭이 포함됩니다. 파드 수준 — pod_cpu_utilization, pod_memory_utilization, pod_network_rx_bytes; 노드 수준 — node_cpu_utilization, node_memory_utilization, node_filesystem_utilization; 클러스터 수준 — cluster_failed_node_count, cluster_node_count. 정확한 필터링을 위해 모든 메트릭에는 클러스터, 네임스페이스, 서비스 및 파드 차원이 태그로 지정됩니다.

# Query pod memory utilization for a specific namespace
aws cloudwatch get-metric-statistics \
  --namespace ContainerInsights \
  --metric-name pod_memory_utilization \
  --dimensions \
    Name=ClusterName,Value=my-cluster \
    Name=Namespace,Value=production \
  --statistic Average \
  --period 60 \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z

콘솔의 Container Insights 대시보드

Container Insights를 활성화하면 CloudWatch 콘솔에서 사전 구축된 Container Map 및 Performance Monitoring 보기를 자동으로 제공합니다. Container Map은 ECS 태스크 또는 EKS 파드를 상태별 색상으로 구분한 시각적 토폴로지로 보여 주며, 개별 컨테이너 메트릭까지 단계적으로 확인할 수 있습니다. Performance Monitoring 보기는 수동으로 대시보드를 구성하지 않아도 클러스터, 노드, 파드 및 컨테이너 성능의 시계열 그래프를 제공합니다.

Container Insights를 사용한 ECS 태스크 성능

EC2에서 실행되는 ECS의 경우 Container Insights가 각 컨테이너 인스턴스에 CloudWatch Agent를 데몬 서비스로 설치합니다. Fargate에서 실행되는 ECS의 경우 Container Insights는 Fargate 플랫폼 버전 1.4.0의 사이드카 메트릭 수집기를 사용합니다. 클러스터, 서비스, 태스크 또는 컨테이너 차원별로 ECS 메트릭에 액세스할 수 있습니다. 일반적인 경보 패턴은 태스크의 MemoryReserved 값에 MemoryUtilized가 근접할 때 경보를 발생시키는 것입니다. 이렇게 하면 태스크가 종료되기 전에 잠재적인 OOM 상태를 감지할 수 있습니다.

# Get memory reservation and utilisation for a service
aws cloudwatch get-metric-statistics \
  --namespace ECS/ContainerInsights \
  --metric-name MemoryUtilized \
  --dimensions Name=ClusterName,Value=my-cluster Name=ServiceName,Value=api-service \
  --statistic Average \
  --period 300 \
  --start-time $(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ) \
  --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ)

Application Signals 및 ServiceLens

CloudWatch ServiceLens는 메트릭, 로그 및 트레이스를 통합된 서비스 맵으로 결합합니다. CloudWatch와 함께 AWS X-Ray를 활성화해야 합니다. ServiceLens는 서비스 간 종단 간 요청 흐름을 시각화하고, 지연 시간 병목을 강조하며, 서비스별 오류율을 보여 줍니다. CloudWatch Application Signals(더 새로운 후속 기능)는 코드 변경 없이 애플리케이션을 자동으로 계측하여 SLO와 SLI를 표시하므로, 원시 메트릭을 넘어 안정성을 추적할 수 있습니다.

대시보드 모범 사례

효과적인 CloudWatch 대시보드는 다음 모범 사례를 따릅니다. 사용자에 따라 대시보드를 분리하고(운영, 경영진, 개발자용), 온콜 중인 팀이 가장 먼저 보는 항목으로 경보 상태 위젯을 사용하며, 자주 액세스하는 대시보드는 고정하고, CloudFormation의 동적 참조를 사용하여 대시보드의 메트릭 참조가 실제 리소스 이름과 일치하도록 유지합니다. 하나의 대시보드에 너무 많은 내용을 넣지 마세요. 긴급한 상황에서 장애를 진단할 때는 가독성이 중요합니다.

CloudWatch Contributor Insights

CloudWatch Contributor Insights는 구조화된 로그 데이터를 분석하여 시간 경과에 따른 메트릭의 상위 N개 기여자를 식별합니다. 예를 들어 가장 많은 5xx 오류를 생성하는 IP 주소, 요청량이 가장 많은 API 경로, DynamoDB 스로틀이 가장 많이 발생하는 고객 ID를 보여 줄 수 있습니다. 규칙에서 추출하고 집계할 JSON 필드를 정의합니다. 새 로그 데이터가 도착하면 결과가 계속 업데이트되는 시계열 그래프로 표시됩니다.

# Enable Contributor Insights on a DynamoDB table
aws dynamodb enable-kinesis-streaming-destination \
  --table-name my-table

# Or enable CloudWatch Contributor Insights via the console:
# CloudWatch -> Contributor Insights -> Create rule
# Log group: /aws/dynamodb/tables
# Contributor field: $.TableName
# Aggregation: COUNT by $.requestID

빠른 확인

이 lesson에서 다룬 AWS 솔루션 아키텍트(SAA-C03) 개념에 대한 이해도를 확인해 보세요.

lesson 요약

이 lesson에서는 다음을 배웠습니다. CloudWatch Dashboards는 여러 위젯 유형을 지원하며 계정과 리전에 걸쳐 메트릭을 집계할 수 있고, Container Insights는 수동 계측 없이 ECS와 EKS에서 파드 및 노드 수준의 메트릭을 자동으로 수집하며, Contributor Insights는 구조화된 로그 데이터에서 상위 기여자를 식별합니다. 다음으로 API 수준 감사를 위한 CloudTrail Trails와 Event History를 살펴보겠습니다.

자주 묻는 질문

“CloudWatch 대시보드 및 Container Insights” 강의는 무료인가요?

네 — “CloudWatch 대시보드 및 Container Insights” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

“CloudWatch 대시보드 및 Container Insights”에서 뭘 배우나요?

여러 서비스의 운영 대시보드를 구축하고, ECS 및 EKS 클러스터 수준의 성능 지표를 위해 Container Insights를 활성화합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“CloudWatch 대시보드 및 Container Insights” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. CloudWatch 지표, 네임스페이스 및 차원
  2. CloudWatch 경보 및 복합 경보
  3. CloudWatch 로그 및 Log Insights
  4. CloudWatch 대시보드 및 Container Insights
← Cloud & IT Cert Prep(으)로 돌아가기