[EKS] Pod - logging to CloudWatch

Hyun-Sung Kim·2025년 1월 3일

Kubernetes

목록 보기
6/24

CloudWatch logging

  • 개 요
    EKS on Fargate는 Fluent Bit를 기반으로 내장된 로그 라우터를 제공
    Amazone이 Fluent Bit 컨테이너를 사이드카로 자동 실행함
    • 로그 라우터를 사용하면 Fargate에서 Amazon CloudWatch로 로그를 직접 스트리밍할 수 있습니다.
    • 기술 문서
  • 중요 사항
    * ConfigMaps에 대한 모든 변경 사항은 새 포드에만 적용됩니다. 기존 포드에는 변경 사항이 적용되지 않습니다.
    • 이 로깅 환경을 사전 구성하지 않고, pod를 배포하게 되면 아래와 같이 pod 배포 시 마다 warning 메시지가 발생합니다.
      • Disabled logging because aws-logging configmap was not found. configmap "aws-logging" not found
  • 고려 사항
    * 애플리케이션에서 매우 높은 처리량으로 로그를 생성할 것으로 예상되는 경우, 로그 라우터에 대해 최대 100MB까지 계획

  • 적용 절차
    1) Log Router 구성
    1) aws-observability라는 전용 네임스페이스 생성

    2) ConfigMap(.yaml) 생성
    3) 위 매니페스트를 EKS cluster에 적용

4) CloudWatch IAM 정책을 컴퓨터에 다운로드

curl -o permissions.json https://raw.githubusercontent.com/aws-samples/amazon-eks-fluent-logging-examples/mainline/examples/fargate/cloudwatchlogs/permissions.json

5) 다운로드한 정책 파일에서 IAM 정책을 생성

aws iam create-policy --policy-name eks-fargate-logging-policy --policy-document file://permissions.json

6) IAM 정책을 Fargate 프로필에 지정된 포드 실행 역할에 연결

aws iam attach-role-policy \
--policy-arn arn:aws:iam::4xxxxxxxxxxx:policy/eks-fargate-logging-policy \
--role-name

aws iam attach-role-policy --policy-arn arn:aws:iam::4xxxxxxxxxxx:policy/eks-fargate-logging-policy --role-name

2) Fluent Bit 프로세스 로그를 CloudWatch로 전송
1) [기술 문서]에 명시된 Fitering을 적용 가능 (옵션)

3) 애플리케이션 test

  1. app을 deployment로 배포

  2. 위 'Config'에서 명시한 Target을 사용하여, 나의 app 로그를 확인

    • CloudWatch 콘솔 - Log group - Log stream

profile
Cloud Engineer

0개의 댓글