

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# CloudWatch Logs에 컨트롤 플레인 로그 전송
<a name="control-plane-logs"></a>

Amazon EKS 컨트롤 플레인 로깅은 Amazon EKS 컨트롤 플레인에서 계정의 CloudWatch Logs로 감사 및 진단 로그를 직접 제공합니다. 이러한 로그를 통해 클러스터를 쉽게 보호하고 실행할 수 있습니다. 필요한 로그 유형을 정확하게 선택할 수 있으며, 로그는 CloudWatch의 각 Amazon EKS 클러스터에 대한 그룹에 로그 스트림으로 전송됩니다. CloudWatch 구독 필터를 사용하여 로그에 대한 실시간 분석을 수행하거나 이를 다른 서비스로 전달할 수 있습니다(로그는 Base64로 인코딩되고 gzip 형식으로 압축됨). 자세한 내용은 [Amazon CloudWatch 로깅](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)을 참조하세요.

**참고**  
Amazon EKS 컨트롤 플레인 로그는 몇 분 안에 CloudWatch Logs로 전송됩니다. 그러나 로그 전송은 최선의 노력입니다.

각각의 새로운 또는 기존 Amazon EKS 클러스터에 대해 활성화하려는 로그 유형을 선택하여 Amazon EKS 컨트롤 플레인 로깅의 사용을 시작할 수 있습니다. AWS Management Console, AWS CLI(버전 `1.16.139` 이상)를 사용하거나 Amazon EKS API를 통해 클러스터 단위로 각 로그 유형을 활성화하거나 비활성화할 수 있습니다. 활성화하면 Amazon EKS 클러스터에서 동일한 계정의 CloudWatch Logs로 로그가 자동으로 전송됩니다.

Amazon EKS 컨트롤 플레인 로깅을 사용하면 실행하는 각 클러스터에 대해 표준 Amazon EKS 요금이 부과됩니다. 클러스터에서 CloudWatch Logs로 전송한 모든 로그에 대해 표준 CloudWatch Logs 데이터 수집 및 스토리지 비용이 부과됩니다. 또한 클러스터의 일부로 프로비저닝한 AWS 리소스(예: Amazon EC2 인스턴스 또는 Amazon EBS 볼륨)에 대해서도 요금이 부과됩니다.

사용할 수 있는 클러스터 컨트롤 플레인 로그 유형은 다음과 같습니다. 각 로그 유형은 Kubernetes 컨트롤 플레인의 구성 요소에 해당합니다. 이러한 구성 요소에 대한 자세한 내용은 Kubernetes 설명서의 [쿠버네티스 컴포넌트](https://kubernetes.io/docs/concepts/overview/components/)를 참조하십시오.

 **API 서버`api`(**)   
클러스터의 API 서버는 Kubernetes API가 표시되는 컨트롤 플레인 구성 요소입니다. 클러스터를 시작할 때 또는 직후에 API 서버 로그를 활성화하면 API 서버를 시작하는 데 사용된 API 서버 플래그가 로그에 포함됩니다. 자세한 내용을 알아보려면 Kubernetes 설명서의 [kube-apiserver](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/) 및 [audit policy](https://github.com/kubernetes/kubernetes/blob/master/cluster/gce/gci/configure-helper.sh#L1129-L1255)를 참조하세요.

 **감사`audit`(**)   
Kubernetes 감사 로그는 클러스터에 영향을 주는 개별 사용자, 관리자 또는 시스템 구성 요소를 제공합니다. 자세한 내용은 Kubernetes 설명서의 [Auditing](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/)을 참조하십시오.

 **인증자`authenticator`(**)   
인증자 로그는 Amazon EKS에 고유합니다. 이러한 로그는 Amazon EKS가 IAM 자격 증명을 사용한 Kubernetes [역할 기반 액세스 제어](https://kubernetes.io/docs/reference/access-authn-authz/rbac/)(RBAC) 인증에 사용하는 제어 플레인 구성 요소를 나타냅니다. 자세한 내용은 [클러스터 리소스 구성 및 모니터링](eks-managing.md) 섹션을 참조하세요.

 **컨트롤러 관리자`controllerManager`(**)   
컨트롤러 관리자는 Kubernetes와 함께 제공되는 핵심 컨트롤 루프를 관리합니다. 자세한 내용은 Kubernetes 설명서의 [kube-controller-manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)를 참조하십시오.

 **스케줄러`scheduler`(**)   
스케줄러 구성 요소는 클러스터에서 포드를 실행하는 시기와 위치를 관리합니다. 자세한 내용은 Kubernetes 설명서의 [kube-scheduler](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler/)를 참조하십시오.

## 컨트롤 플레인 로그 활성화 또는 비활성화
<a name="enabling-control-plane-log-export"></a>

기본적으로 클러스터 컨트롤 플레인 로그는 CloudWatch Logs로 전송되지 않습니다. 클러스터에 대해 로그를 전송하려면 각 로그 유형을 개별적으로 활성화해야 합니다. CloudWatch Logs 수집, 아카이브 스토리지 및 데이터 검색 요율이 활성화된 컨트롤 플레인 로그에 적용됩니다. 자세한 내용은 [CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing/)을 참조하세요.

컨트롤 플레인 로깅 구성을 업데이트하려면 Amazon EKS에서 각 서브넷에 최대 5개의 사용 가능한 IP 주소가 필요합니다. 로그 유형을 활성화하면 로그가 로그 세부 수준 `2`로 전송됩니다.

[AWS Management Console](#control-plane-console) 또는 [AWS CLI](#control-plane-cli)를 사용하여 컨트롤 플레인 로그를 활성화하거나 비활성화할 수 있습니다.

### AWS Management Console
<a name="control-plane-console"></a>

1. [Amazon EKS 콘솔](https://console.aws.amazon.com/eks/home#/clusters)을 엽니다.

1. 클러스터 이름을 선택하여 클러스터 정보를 표시합니다.

1. **관찰성** 탭을 선택합니다.

1. **컨트롤 플레인 로깅** 섹션에서 **로깅 관리**를 선택합니다.

1. 각 개별 로그 유형에 대해 로그 유형이 켜져 있거나 꺼져 있어야 하는지를 선택합니다. 기본적으로 각 로그 유형은 해제되어 있습니다.

1. **변경 사항 저장**을 선택하여 종료합니다.

### AWS CLI
<a name="control-plane-cli"></a>

1. AWS CLI 버전은 다음 명령을 통해 확인할 수 있습니다.

   ```
   aws --version
   ```

   AWS CLI 버전이 `1.16.139` 이하인 경우 먼저 최신 버전으로 업데이트해야 합니다. AWS CLI를 설치하거나 업그레이드하려면 [AWS 명령줄 인터페이스 사용 설명서](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)에서 *AWS 명령줄 인터페이스 설치*를 참조하세요.

1. 다음 AWS CLI 명령을 사용하여 클러스터의 컨트롤 플레인 로그 내보내기 구성을 업데이트합니다. *my-cluster*를 클러스터 이름으로 바꾸고 원하는 엔드포인트 액세스 값을 지정합니다.
**참고**  
다음 명령은 사용 가능한 모든 로그 유형을 CloudWatch Logs로 전송합니다.

   ```
   aws eks update-cluster-config \
       --region region-code \
       --name my-cluster \
       --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}'
   ```

   예제 출력은 다음과 같습니다.

   ```
   {
       "update": {
           "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9",
           "status": "InProgress",
           "type": "LoggingUpdate",
           "params": [
               {
                   "type": "ClusterLogging",
                   "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}"
               }
           ],
           "createdAt": 1553271814.684,
           "errors": []
       }
   }
   ```

1. 이전 명령에서 반환된 클러스터 이름과 업데이트 ID를 사용하여 다음 명령으로 로그 구성 업데이트의 상태를 모니터링합니다. 상태가 `Successful`로 표시되면 업데이트가 완료된 것입니다.

   ```
   aws eks describe-update \
       --region region-code\
       --name my-cluster \
       --update-id 883405c8-65c6-4758-8cee-2a7c1340a6d9
   ```

   예제 출력은 다음과 같습니다.

   ```
   {
       "update": {
           "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9",
           "status": "Successful",
           "type": "LoggingUpdate",
           "params": [
               {
                   "type": "ClusterLogging",
                   "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}"
               }
           ],
           "createdAt": 1553271814.684,
           "errors": []
       }
   }
   ```

## 클러스터 컨트롤 플레인 로그 보기
<a name="viewing-control-plane-logs"></a>

Amazon EKS 클러스터에 대한 컨트롤 플레인 로그 유형을 활성화하면 CloudWatch 콘솔에서 해당 유형을 볼 수 있습니다.

CloudWatch에서 로그 보기, 분석 및 관리에 대한 자세한 내용은 [Amazon CloudWatch Logs 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)를 참조하세요.

1. [CloudWatch 콘솔](https://console.aws.amazon.com/cloudwatch/home#logs:prefix=/aws/eks)을 엽니다. 이 링크는 콘솔을 열고 현재 사용 가능한 로그 그룹을 표시하며 `/aws/eks` 접두사로 해당 로그 그룹을 필터링합니다.

1. 로그를 보려는 클러스터를 선택합니다. 로그 그룹 이름 형식은 `/aws/eks/my-cluster/cluster`입니다.

1. 보려는 로그 스트림을 선택합니다. 다음 목록에는 각 로그 유형의 로그 스트림 이름 형식에 대한 설명이 나와 있습니다.
**참고**  
로그 스트림 데이터가 증가함에 따라 로그 스트림 이름이 교체됩니다. 특정 로그 유형에 대해 여러 로그 스트림이 있는 경우 최신 **마지막 이벤트 시간**으로 로그 스트림 이름을 찾아 최신 로그 스트림을 볼 수 있습니다.
   +  **Kubernetes API 서버 구성 요소 로그(`api`)** - `kube-apiserver-1234567890abcdef01234567890abcde ` 
   +  **감사(`audit`)** - `kube-apiserver-audit-1234567890abcdef01234567890abcde ` 
   +  **인증자(`authenticator`)** - `authenticator-1234567890abcdef01234567890abcde ` 
   +  **컨트롤러 관리자(`controllerManager`)** - `kube-controller-manager-1234567890abcdef01234567890abcde ` 
   +  **스케줄러(`scheduler`)** - `kube-scheduler-1234567890abcdef01234567890abcde ` 

1. 로그 스트림의 이벤트를 살펴봅니다.

   예를 들어 상위 `kube-apiserver-1234567890abcdef01234567890abcde `를 볼 때 클러스터의 초기 API 서버 플래그가 표시되어야 합니다.
**참고**  
로그 스트림의 시작 부분에 API 서버 로그가 표시되지 않으면 서버에서 API 서버 로깅을 활성화하기 전에 서버에서 API 서버 로그 파일이 교체되었을 수 있습니다. API 서버 로깅이 활성화되기 전에 교체되는 모든 로그 파일은 CloudWatch로 내보낼 수 없습니다.

그러나 동일한 Kubernetes 버전으로 새 클러스터를 생성하고 클러스터를 생성할 때 API 서버 로깅을 활성화할 수 있습니다. 동일한 플랫폼 버전의 클러스터에는 동일한 플래그가 활성화되어 있으므로 플래그가 새 클러스터의 플래그와 일치해야 합니다. CloudWatch에서 새 클러스터에 대한 플래그 보기를 마치면 새 클러스터를 삭제할 수 있습니다.