Amazon Aurora MySQL 데이터베이스 성능 문제 해결 - Amazon Aurora

Amazon Aurora MySQL 데이터베이스 성능 문제 해결

이 주제에서는 몇 가지 일반적인 Aurora MySQL DB 성능 문제와 문제를 해결하거나 정보를 수집하여 이러한 문제를 신속하게 해결하는 방법을 중점적으로 다룹니다. 데이터베이스 성능은 다음 두 가지 범주로 나뉩니다.

  • 서버 성능 - 전체 데이터베이스 서버가 느리게 실행됩니다.

  • 쿼리 성능 - 하나 이상의 쿼리를 실행하는 데 시간이 더 오래 걸립니다.

AWS 모니터링 옵션

문제 해결에 도움이 되는 다음 AWS 모니터링 옵션을 사용하는 것이 좋습니다.

  • Amazon CloudWatch – Amazon CloudWatch는 AWS 리소스와 AWS에서 실행 중인 애플리케이션을 실시간으로 모니터링합니다. CloudWatch를 사용하여 리소스 및 애플리케이션에 대해 측정할 수 있는 변수인 지표를 수집하고 추적할 수 있습니다. 자세한 내용은 Amazon CloudWatch란 무엇인가요?를 참조하세요.

    AWS Management Console에서 DB 인스턴스에 대한 모든 시스템 지표 및 프로세스 정보를 볼 수 있습니다. 일반, 느린, 감사, 오류 로그 데이터를 Amazon CloudWatch Logs의 로그 그룹에 게시하도록 Aurora MySQL DB 클러스터를 구성할 수 있습니다. 이를 통해 추세를 확인하고, 호스트가 영향을 받는 경우 로그를 유지 관리하고, 이상 또는 변경 사항을 쉽게 식별할 수 있도록 '정상' 성능에 대한 기준을 만들 수 있습니다. 자세한 내용은 Amazon CloudWatch Logs에 Amazon Aurora MySQL 로그 게시 단원을 참조하십시오.

  • 향상된 모니터링 - Aurora MySQL 데이터베이스에 대해 Amazon CloudWatch 지표를 추가로 활성화하려면 향상된 모니터링을 켜세요. Aurora DB 클러스터를 생성하거나 수정할 때 향상된 모니터링 활성화를 선택합니다. 이를 통해 Aurora는 성능 지표를 CloudWatch에 게시할 수 있습니다. 사용 가능한 주요 지표로는 CPU 사용량, 데이터베이스 연결, 스토리지 사용량, 쿼리 지연 시간 등이 있습니다. 이러한 지표는 성능 병목 현상을 파악하는 데 도움이 됩니다.

    DB 인스턴스에 대해 전송되는 정보의 양은 확장 모니터링에 대해 정의된 세부 단위에 직접적으로 비례합니다. 모니터링 간격이 작을수록 OS 측정치가 더 자주 보고되고 모니터링 비용이 증가합니다. 비용을 관리하려면 AWS 계정의 여러 인스턴스에 대해 서로 다른 세부 단위를 설정합니다. 인스턴스 생성 시 기본 시간 세부 단위는 60초입니다. 자세한 내용은 Enhanced Monitoring 비용 단원을 참조하십시오.

  • 성능 개선 도우미 - 모든 데이터베이스 직접 호출 지표를 볼 수 있습니다. 여기에는 DB 잠금, 대기, 처리된 행 수가 포함되며, 이 모든 정보를 문제 해결에 사용할 수 있습니다. Aurora DB 클러스터를 만들거나 수정할 때 성능 개선 도우미 활성화를 선택합니다. 기본적으로 성능 개선 도우미의 데이터 보존 기간은 7일이지만 장기적인 성능 추세를 분석하도록 사용자 지정할 수 있습니다. 7일 넘게 보존하려면 유료 티어로 업그레이드해야 합니다. 자세한 내용은 성능 개선 도우미 요금을 참조하세요. 각 Aurora DB 인스턴스의 데이터 보존 기간을 개별적으로 설정할 수 있습니다. 자세한 내용은 성능 개선 도우미를 통한 Amazon Aurora 모니터링 단원을 참조하십시오.

Aurora MySQL 데이터베이스 성능 문제의 가장 일반적인 원인

다음 단계를 사용하여 Aurora MySQL 데이터베이스의 성능 문제를 해결할 수 있습니다. 이러한 단계는 논리적인 조사 순서로 나열되어 있지만 순서대로 따라야 하는 것은 아닙니다. 하나의 발견으로 여러 단계를 건너뛸 수 있으며 일련의 조사 경로가 가능해집니다.

  1. 워크로드 - 데이터베이스 워크로드를 이해합니다.

  2. 로깅 - 모든 데이터베이스 로그를 검토합니다.

  3. 쿼리 성능 - 쿼리 실행 계획을 검토하여 변경되었는지 확인합니다. 코드 변경으로 인해 계획이 변경될 수 있습니다.