Amazon Relational Database Service
사용 설명서 (API 버전 2014-10-31)

Amazon RDS 성능 개선 도우미 사용

Amazon RDS 성능 개선 도우미는 데이터베이스 성능을 분석하고 문제를 해결할 수 있도록 Amazon RDS DB 인스턴스 부하를 모니터링해 줍니다. Amazon RDS Performance Insights는 현재 PostgreSQL용 Amazon Aurora 및 PostgreSQL용 Amazon RDS 버전 10에서 제공되고 있습니다. Performance Insights는 db.t2 인스턴스 클래스에서 지원되지 않습니다.

Performance Insights는 기존 Amazon RDS 모니터링 기능을 확장한 것으로서 데이터베이스 성능을 표시하여 성능 문제를 분석하는 데 효과적입니다. Performance Insights 대시보드가 데이터베이스 부하를 시각화하여 대기 시간, SQL 문, 호스트 또는 사용자를 기준으로 부하를 필터링합니다. Performance Insights는 기본적으로 Aurora PostgreSQL 및 RDS PostgreSQL 데이터베이스 엔진 콘솔 생성 마법사에 있습니다. DB 인스턴스의 데이터베이스가 2개 이상인 경우에는 모든 데이터베이스에 대한 성능 데이터가 DB 인스턴스에 수집됩니다.

Performance Insights의 중앙 지표는 데이터베이스 엔진에서 활성 세션의 평균 수를 의미하는 DB 부하입니다. 여기에서 활성 세션이란 데이터베이스 엔진에게 작업을 제출하여 현재 응답 대기 중인 연결 세션을 말합니다. 예를 들어 데이터베이스 엔진에게 SQL 쿼리를 제출하면 데이터베이스 엔진이 이 쿼리를 처리하는 동안 해당하는 데이터베이스 세션이 활성화됩니다.

DB Load대기 이벤트 데이터를 결합하여 활성 세션의 전체 상태를 파악할 수 있습니다. 대기 이벤트는 데이터베이스 엔진마다 다릅니다. 모든 PostgreSQL 대기 이벤트의 전체 목록은 PostgreSQL Wait Events를 참조하십시오. Amazon Aurora PostgreSQL 이벤트에서는 Aurora PostgreSQL에 대해 가장 일반적으로 사용하는 대기 이벤트의 목록을 참조하십시오.

세션 정보는 수집 및 집계 후 대시보드에 평균 활성 세션 차트로 표시됩니다. 평균 활성 세션 차트에는 최대 CPU 값이 선으로 표시되기 때문에 활성 세션이 최대 값을 초과하는지 알 수 있습니다. 최대 CPU 값은 DB 인스턴스에서 vCPU(가상 CPU) 코어의 수로 결정됩니다.

평균 활성 세션 차트의 부하가 최대 CPU 선을 상회하는 경우가 잦아지고, CPU가 기본 대기 상태라면 시스템 CPU에서 과부하가 발생한 것입니다. 이러한 경우 연결 수를 인스턴스에 맞게 조절하거나, CPU 부하가 높은 SQL 쿼리를 모두 조정하거나, 인스턴스 클래스의 크기를 늘리는 것이 좋습니다. 부하가 최대 CPU 선을 넘지 않는데도 대기 상태의 인스턴스가 일관적으로 높게 나타난다면 병목 현상 또는 리소스 유지 문제가 원인일 수 있으므로 반드시 해결해야 합니다.

다음 비디오에서는 성능 개선 도우미의 개요를 볼 수 있습니다.

Performance Insights 활성화

성능 개선 도우미를 사용하려면 DB 인스턴스에서 이 기능을 활성화해야 합니다.

AWS Management 콘솔

새 DB 인스턴스를 생성할 때 콘솔을 사용하여 성능 개선 도우미를 활성화할 수 있습니다. 성능 개선 도우미를 활성화하도록 DB 인스턴스를 수정할 수도 있습니다.

DB 인스턴스를 생성할 때 콘솔을 사용하여 성능 개선 도우미 활성화

새 DB 인스턴스를 생성할 때 Performance Insights(성능 개선 도우미) 섹션에서 Enable Performance Insights(성능 개선 도우미)를 선택하면 성능 개선 도우미가 활성화됩니다.

DB 인스턴스를 생성하려면 Amazon RDS DB 인스턴스 생성의 DB 엔진에 대한 지침을 따르십시오. 다음 이미지는 Performance Insights(성능 개선 도우미) 섹션을 보여줍니다.

 콘솔을 사용하여 DB 인스턴스 생성 중 성능 개선 도우미 활성화

Enable Performance Insights(성능 개선 도우미 활성화)를 선택할 때 다음 옵션이 있습니다.

  • Retention(보존) – 성능 개선 도우미 데이터를 보존할 시간입니다. 7일(기본값) 또는 2년.

  • Master key(마스터 키) – AWS Key Management Service(AWS KMS) 키를 지정합니다. 성능 개선 도우미는 AWS KMS 키를 사용하여 잠재적으로 민감한 모든 데이터를 암호화합니다. 데이터는 암호화된 상태로 전송 및 저장됩니다. 자세한 내용은 Amazon RDS 리소스 암호화 단원을 참조하십시오.

DB 인스턴스를 수정 때 콘솔을 사용하여 성능 개선 도우미 활성화

콘솔을 사용하여 성능 개선 도우미를 활성화하도록 DB 인스턴스를 수정할 수 있습니다.

콘솔을 사용하여 DB 인스턴스의 성능 개선 도우미를 활성화하려면

  1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 인스턴스를 선택합니다.

  3. 수정할 DB 인스턴스를 선택하고 Instance action(인스턴스 작업)에서 Modify(수정)를 선택합니다.

  4. Performance Insights(성능 개선 도우미) 섹션에서 Enable Performance Insights(성능 개선 도우미 활성화).

    Enable Performance Insights(성능 개선 도우미 활성화)를 선택할 때 다음 옵션이 있습니다.

    • Retention(보존) – 성능 개선 도우미 데이터를 보존할 시간입니다. 7일(기본값) 또는 2년.

    • Master key(마스터 키) – AWS Key Management Service(AWS KMS) 키를 지정합니다. 성능 개선 도우미는 AWS KMS 키를 사용하여 잠재적으로 민감한 모든 데이터를 암호화합니다. 데이터는 암호화된 상태로 전송 및 저장됩니다. 자세한 내용은 Amazon RDS 리소스 암호화 단원을 참조하십시오.

  5. [Continue]를 선택합니다.

  6. Scheduling of Modifications(수정 사항 예약)에서 다음 중 하나를 선택합니다.

    • 예약된 다음 유지 관리 기간에 적용성능 개선 도우미 수정 사항의 적용을 다음 유지 관리 기간까지 기다립니다.

    • Apply immediately(즉시 적용)Performance Insights(성능 개선 도우미) 수정 사항을 최대한 빨리 적용합니다.

  7. Modify Instance(DB 인스턴스)를 선택합니다.

CLI

create-db-instance AWS CLI 명령을 사용하여 새 DB 인스턴스를 생성하면 --enable-performance-insights를 지정할 때 성능 개선 도우미가 활성화됩니다.

다음 AWS CLI 명령으로 --enable-performance-insights 값을 지정할 수도 있습니다.

다음 절차에서는 AWS CLI를 사용하여 DB 인스턴스의 성능 개선 도우미를 활성화하는 방법을 설명합니다.

AWS CLI를 사용하여 DB 인스턴스의 성능 개선 도우미를 활성화하려면

  • modify-db-instance AWS CLI 명령을 호출하고 다음 값을 입력합니다.

    • --db-instance-identifier – DB 인스턴스의 이름입니다.

    • --enable-performance-insights

    다음 예제에서는 sample-db-instance에 대한 성능 개선 도우미를 활성화합니다.

    Linux, OS X, Unix의 경우:

    aws rds modify-db-instance \ --db-instance-identifier sample-db-instance \ --enable-performance-insights

    Windows의 경우:

    aws rds modify-db-instance ^ --db-instance-identifier sample-db-instance ^ --enable-performance-insights

성능 개선 도우미를 활성화할 때 선택적으로 --performance-insights-retention-period 옵션을 사용하여 성능 개선 도우미 데이터를 보존할 시간을 일 단위로 지정할 수 있습니다. 유효한 값은 7(기본값) 또는 731(2년)입니다.

다음 예제에서는 sample-db-instance의 성능 개선 도우미를 활성화하고 성능 개선 도우미 데이터가 2년 동안 보존되도록 지정합니다.

Linux, OS X, Unix의 경우:

aws rds modify-db-instance \ --db-instance-identifier sample-db-instance \ --enable-performance-insights \ --performance-insights-retention-period 731

Windows의 경우:

aws rds modify-db-instance ^ --db-instance-identifier sample-db-instance ^ --enable-performance-insights ^ --performance-insights-retention-period 731
API

CreateDBInstance 작업 Amazon RDS API 작업을 사용하여 새 DB 인스턴스를 생성할 떄 EnablePerformanceInsightsTrue로 설정하면 성능 스키마가 활성화됩니다.

다음 API 작업으로 EnablePerformanceInsights 값을 지정할 수도 있습니다.

성능 개선 도우미를 활성화할 때 선택적으로 PerformanceInsightsRetentionPeriod 파라미터를 사용하여 성능 개선 도우미 데이터를 보존할 시간을 일 단위로 지정할 수 있습니다. 유효한 값은 7(기본값) 또는 731(2년)입니다.

Performance Insights 대시보드 사용

Performance Insights 대시보드에는 성능 문제를 분석하여 해결할 수 있는 데이터베이스 성능 정보가 포함됩니다. 메인 대시보드 페이지에는 데이터베이스 부하에 대한 정보가 표시되며, 특정 대기 상태, SQL 쿼리, 호스트 또는 사용자에 대한 세부 정보도 알아볼 수 있습니다.

Performance Insights 대시보드 열기

Performance Insights 대시보드는 다음 절차에 따라 확인할 수 있습니다.

AWS Management Console에서 Performance Insights 대시보드를 보려면

  1. https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Performance Insights]를 선택합니다.

  3. DB 인스턴스를 선택합니다. 선택한 인스턴스에 대한 Performance Insights 대시보드가 표시됩니다.

    인스턴스 목록에서 [Current Activity] 위젯을 선택하여 대시보드로 이동할 수도 있습니다.

     측정치 필터링
     측정치 필터링

Performance Insights 대시보드는 기본적으로 마지막 60분 동안 수집된 데이터를 표시합니다. 하지만 마지막 5분, 60분, 6시간 또는 24시간 동안 데이터를 표시하도록 수정할 수 있습니다.

 측정치 필터링

Performance Insights 대시보드 구성 요소

대시보드는 2개 부분으로 구분됩니다.

  1. 평균 활성 세션 차트 - 데이터베이스 부하와 DB 인스턴스 용량을 비교하여 최대 CPU 선으로 표시합니다.

  2. 상위 부하 항목 테이블 - 데이터베이스 부하에 가장 많이 영향을 미치는 항목을 보여 줍니다.

평균 활성 세션 차트

평균 활성 세션 차트는 데이터베이스 부하와 DB 인스턴스 용량의 비교 방식을 최대 CPU 선으로 표시합니다. 기본적으로 부하는 대기 상태를 기준으로 구분된 활성 세션으로 표시됩니다. 또한 SQL 쿼리, 호스트 또는 사용자로 구분된 활성 세션으로 부하를 표시하도록 선택할 수도 있습니다.

 측정치 필터링

선택한 기간의 항목 세부 정보를 범례에 표시하려면 평균 활성 세션 차트의 임의 항목 위로 마우스 포인터를 가져가면 됩니다.

 측정치 필터링

상위 부하 항목 테이블

[Top Load Items] 테이블에는 데이터베이스 부하에 영향을 끼치는 상위 항목이 표시됩니다. 기본적으로 데이터베이스 부하에 영향을 미치는 상위 SQL 쿼리가 표시됩니다. 쿼리는 구조적으로 유사한 실제 쿼리가 다수 요약되어 표시되지만 다른 파라미터가 존재할 가능성도 있습니다. 그 밖에 최상위 대기 상태, 호스트 또는 사용자를 표시하도록 선택할 수도 있습니다.

 측정치 필터링

각 상위 부하 항목과 관련된 데이터베이스 부하 비율(%)는 [DB Load by Waits] 열에 표시됩니다. 이 열에는 현재 평균 활성 세션 차트에서 어떤 구분 기준을 선택하든 그 기준에 따라 해당 항목의 부하가 반영됩니다. 예를 들어, 평균 활성 세션 차트가 호스트별로 구분되어 있고 상위 부하 항목 테이블에서 SQL 쿼리를 살펴보고 있다고 가정합니다. 이 경우 [DB Load by Waits] 막대는 관련 호스트에 대한 쿼리의 부하를 반영하며, 평균 활성 세션 차트의 해당 호스트에 컬러 코드로 매핑합니다.

또 다른 예로, 평균 활성 세션 차트가 대기 상태별로 구분되어 있고 상위 부하 항목 테이블에서 SQL 쿼리를 살펴보고 있다고 가정합니다. 이때 [DB Load by Waits] 막대는 쿼리가 영향을 미치는 대기 상태의 정도와, 대기 상태가 해당 쿼리에 영향을 미치는 정도를 크기, 세그먼트 및 컬러 코드로 표시합니다. 해당 쿼리에 영향을 미치는 대기 상태도 표시합니다.

 측정치 필터링

Performance Insights 대시보드를 사용한 데이터베이스 부하 분석

평균 활성 세션 차트가 병목 현상을 보일 때는 부하가 발생하는 위치를 찾아낼 수 있습니다. 이렇게 하려면 평균 활성 세션 차트 아래에 있는 상위 부하 항목 테이블을 살펴봅니다. SQL 쿼리나 사용자 같은 특정 항목을 선택하여 드릴다운을 통해 세부 정보까지 확인할 수 있습니다.

대기 상태와 상위 SQL 쿼리를 기준으로 구분된 DB 부하가 일반적으로 성능 문제에 대해 가장 큰 인사이트를 제공하는 조합이기 때문에 Performance Insights 대시보드의 기본 뷰로 사용됩니다. 대기 상태를 기준으로 구분된 DB 부하는 데이터베이스의 리소스 또는 동시성 병목 현상 유무를 표시합니다. 이 경우 상위 항목 테이블의 [SQL] 부하를 야기하는 쿼리를 표시합니다.

성능 문제를 진단하는 일반 워크플로우는 다음과 같습니다.

  1. 평균 활성 세션 차트를 보면서 데이터베이스 부하가 최대 CPU 선을 상회하는지 모니터링합니다.

  2. 상회하는 경우가 있으면 평균 활성 세션 차트를 보면서 원인이 되는 대기 상태를 식별합니다.

  3. 상위 부하 항목 테이블의 [SQL] 탭에서 어떤 쿼리가 대기 상태에 가장 큰 영향을 미치는지 모니터링하면서 부하를 야기하는 요약 쿼리를 식별합니다. [DB Load by Wait] 열을 보면 이러한 요약 쿼리를 식별할 수 있습니다.

  4. [SQL] 탭에서 요약 쿼리 중 하나를 선택하여 확장한 다음 구성하고 있는 하위 쿼리를 확인합니다.

예를 들어 다음 대시보드에서 IO:XactSync 대기 시간은 빈번한 문제입니다. [CPU] 대기 시간은 비교적 빈번하지는 않지만 부하에 여전히 중요한 역할을 합니다.

상위 부하 항목 테이블의 [SQL] 탭에서 처음 4개의 롤업 쿼리는 첫 번째 상태와 매우 밀접한 관계가 있습니다. 따라서 이러한 쿼리의 하위 쿼리까지 세부 정보를 확인해야 합니다. 이러한 쿼리가 성능 문제에 어떻게 영향을 끼치고 있는지 알아보려면 이렇게 확인해야 합니다.

마지막 3개의 롤업 쿼리는 CPU 부하에 중요한 역할을 하며, CPU 부하가 문제인지 여부를 조사하는 쿼리가 됩니다.

 측정치 필터링

추가 사용자 인터페이스 기능

Performance Insights 사용자 인터페이스의 다른 기능을 사용해 성능 데이터를 분석할 수 있습니다.

클릭하여 끌어 확대

Performance Insights 인터페이스에서 부하 차트의 작은 부분을 선택하여 확대해 자세히 볼 수 있습니다.

 확대

부하 차트의 한 부분을 확대하려면 시작 시간을 선택하고 원하는 기간 끝까지 끕니다. 이렇게 하면 선택한 영역이 강조 표시됩니다. 마우스를 놓으면 부하 차트의 선택한 영역이 확대되고 [Top N] 테이블이 다시 계산됩니다.

일시 중지 및 축소

부하 차트의 오른쪽 맨 위에는 [Pause] 및 [Zoom out] 도구가 있습니다.

 일시 중지 및 축소

[Pause]를 선택하면 부하 차트가 자동 새로 고침을 중지합니다. [Pause]를 다시 선택하면 부하 차트가 자동 새로 고침을 다시 시작합니다.

[Zoom out]을 선택하면 부하 차트가 다음으로 가장 큰 시간 간격으로 축소됩니다.

관련 주제