AWS 관리형 Microsoft AD 높은 CPU 사용률 문제 해결 - AWS Directory Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS 관리형 Microsoft AD 높은 CPU 사용률 문제 해결

다음은 AWS 관리형 Microsoft AD 도메인 컨트롤러에서 높은 CPU 문제를 해결하는 데 도움이 될 수 있습니다.

근본 원인 찾기

높은 CPU 사용률 문제를 해결하는 첫 번째 단계는 CloudWatch 지표를 분석하여 리소스 소비 증가를 설명할 수 있는 패턴을 식별하는 것입니다.

1단계: Directory Service CloudWatch 지표 검토

CloudWatch 지표를 사용하여 AWS 관리형 Microsoft AD 성능을 모니터링하여 높은 CPU 사용량과 상관관계가 있는 트래픽 패턴을 식별합니다. Directory Service 지표 보기 및 해석에 대한 자세한 내용은 섹션을 참조하세요CloudWatch를 사용하여 AWS 관리형 Microsoft AD 도메인 컨트롤러의 성능 모니터링.

CPU 증가를 설명할 수 있는 다음 주요 지표에서 시프팅 패턴을 찾습니다.

  • 초당 DNS 쿼리 - 갑작스러운 스파이크는 DNS 해결 문제 또는 잘못 구성된 애플리케이션을 나타낼 수 있습니다.

  • Kerberos/NTLM 인증 - 사용자 로그온 또는 서비스 계정의 인증 비율이 높습니다.

  • 초당 LDAP 쿼리 - 애플리케이션 또는 서비스의 LDAP 트래픽 증가.

현재 지표를 과거 기준과 비교하여 높은 CPU 사용률이 시작된 시기를 식별하고 이를 특정 트래픽 증가와 연관시킵니다. 지표에서 상관관계가 없는 경우 근본 원인은 트래픽의 압도적인 증가가 아닙니다. 대신 근본 원인은 비효율적인 LDAP 쿼리일 수 있으므로 로 건너뜁니다3단계: 트래픽 미러링을 사용하여 세부 트래픽 분석 캡처.

2단계: VPC 흐름 로그를 사용하여 소스 시스템 식별

VPC 흐름 로그는 도메인 컨트롤러로 트래픽을 생성하는 시스템의 소스 IP 주소를 식별하는 효과적인 방법을 제공합니다. 자세한 내용은 VPC 흐름 로그를 사용하여 IP 트래픽 로깅을 참조하세요. 대상 포트 번호를 사용하여 서비스를 구분합니다.

  • 포트 53 - DNS 쿼리

  • 포트 88 - Kerberos 인증

  • 포트 123 - NTP 클럭 동기화

  • 포트 135, 49152-65535 – RPC

  • 포트 389, 636, 3268, 3269 – LDAP 쿼리(표준 LDAP의 경우 389 또는 3268, LDAPS의 경우 636 또는 3269)

  • 포트 445 - SMB 파일 공유(그룹 정책)

  • 포트 464 - Kerberos 암호 변경

  • 포트 9389 – Active Directory 웹 서비스

VPC 흐름 로그를 활성화하고 분석하려면:

  • 도메인 컨트롤러 ENIs가 포함된 서브넷에 대해 VPC 흐름 로그를 활성화합니다.

  • 대상 포트별로 로그를 필터링하여 트래픽 패턴을 식별합니다.

  • 일정 기간 동안 대부분의 패킷 및/또는 대부분의 바이트를 기준으로 구성합니다.

  • 소스 IP 주소를 분석하여 트래픽을 가장 많이 생성하는 시스템을 결정합니다.

3단계: 트래픽 미러링을 사용하여 세부 트래픽 분석 캡처

VPC 흐름 로그는 요청의 실제 콘텐츠에 대한 제한된 정보를 제공합니다. 자세한 분석을 위해 트래픽 미러링을 고려하여 전체 패킷 데이터를 캡처합니다. 자세한 내용은 트래픽 미러링을 사용하여 네트워크 트래픽 모니터링 시작하기를 참조하세요. 이는 다음을 분석해야 할 때 특히 유용합니다.

  • LDAP 필터 복잡성 및 효율성

  • 특정 DNS 쿼리 패턴

  • 인증 요청 세부 정보

트래픽 미러링을 사용하면 도메인 컨트롤러 인스턴스로 전송된 전체 네트워크 패킷을 캡처하여 CPU 사용률이 높은 트래픽에 대한 심층 분석을 수행할 수 있습니다.

4단계: 소스 애플리케이션 조사 및 트래픽 최적화

소스 시스템과 트래픽 패턴을 식별한 후에는 트래픽을 생성하는 애플리케이션을 조사합니다.

  • 애플리케이션 구성 검토 - 애플리케이션이 비효율적인 쿼리 또는 과도한 요청을 수행하고 있는지 확인합니다. 애플리케이션을 단일 도메인 컨트롤러로 하드 코딩하지 마십시오.

  • LDAP 쿼리 분석 - 비효율적인 LDAP 쿼리는 도메인 컨트롤러 CPU가 높은 가장 일반적인 원인입니다. 속성 인덱싱의 이점을 누릴 수 있는 복잡한 필터를 찾습니다.

  • DNS 캐싱 검사 - 반복적인 쿼리를 줄이기 위해 DNS 클라이언트 캐싱이 활성화되어 있는지 확인합니다.

  • 인증 패턴 확인 - 서비스 계정이 너무 자주 인증하는지 확인합니다.

해결 전략

조사를 기반으로 적절한 최적화 전략을 구현합니다.

애플리케이션 최적화

  • LDAP 쿼리 최적화 - 복잡한 LDAP 쿼리를 다시 작성합니다. 검색 기반을 도메인의 루트로 설정하지 말고 대신 검색하려는 객체가 있는 OU로 구성합니다. 하위 트리 검색을 수행하는 검색 범위를 사용하지 마세요. 대신 기본 또는 단일 수준 범위를 사용합니다. 필터에 객체 클래스를 포함합니다. 예: (objectClass=user) 또는 (objectClass=computer). 속성이 인덱싱되지 않는 한 필터에서 와일드카드를 사용하지 마세요. 와일드카드 스캔이 필요한 경우 인덱스를 추가합니다. 자세한 내용은 AWS 관리형 Microsoft AD 스키마 확장 단원을 참조하십시오. 인덱싱 프로세스도 CPU 사용률을 높이기 때문에 모든 것을 인덱싱하지 마세요.

    # Sample LDIF code to index the email attribute dn: CN=mail,CN=Schema,CN=Configuration,DC=yourdomain,DC=com changetype: modify replace: searchFlags searchFlags: 1
  • DNS 클라이언트 캐싱 활성화 - DNS 응답을 로컬로 캐싱하도록 클라이언트를 구성하여 서버 로드를 줄입니다.

  • 연결 풀링 구현 - 각 쿼리에 대해 새 연결을 생성하는 대신 LDAP 연결을 재사용하도록 애플리케이션을 구성합니다.

디렉터리 인프라 확장

트래픽 최적화로 CPU 사용률이 높아지지 않는 경우:

AWS 관리형 Microsoft AD 에디션에 대한 요금 정보는 Directory Service 요금을 참조하세요.