Amazon RDS DB 인스턴스가 재시작, 복구 또는 장애 조치를 수행한 이유는 무엇입니까?

최종 업데이트 날짜: 2022년 7월 19일

Amazon Relational Database Service(RDS) DB 인스턴스의 재시작, 복구 또는 장애 조치의 근본 원인을 알고 싶습니다.

간략한 설명

Amazon RDS 데이터베이스 인스턴스는 다음과 같은 조건에서 자동으로 재시작을 수행합니다.

DB 인스턴스에서 잠재적인 문제가 표시되고 RDS 상태 확인에 응답하지 않으면 RDS는 단일 AZ 배포에 대해 단일 AZ 복구를 자동으로 시작하고 다중 AZ 배포에 대해서는 다중 AZ 장애 조치를 자동으로 시작합니다. 그런 다음 관리자의 개입 없이 최대한 신속하게 데이터베이스 작업을 재개할 수 있도록 DB 인스턴스가 재시작됩니다.

해결 방법

중단의 원인을 확인하려면 RDS DB 인스턴스에 대해 다음과 같은 로그 및 지표를 확인하세요.

Amazon RDS 이벤트

인스턴스에서 예상치 못한 중단의 근본 원인을 식별하려면 지난 24시간 동안의 모든 Amazon RDS 이벤트를 확인합니다. 모든 이벤트는 기본적으로 UTC/GMT 시간으로 등록됩니다. 이벤트를 더 오래 저장하려면 Amazon RDS 이벤트를 Amazon CloudWatch Events로 전송합니다. 자세한 내용은 Amazon RDS 이벤트에서 트리거되는 규칙 생성을 참조하세요. 인스턴스가 재시작되면 RDS 이벤트 알림에 다음 메시지 중 하나가 표시됩니다.

  • 고객이 RDS 인스턴스를 수정함: 이 RDS 이벤트 메시지는 RDS 인스턴스 수정으로 인해 장애 조치가 시작되었음을 나타냅니다.
  • 데이터베이스 인스턴스 클래스에 수정 적용: 이 RDS 이벤트 메시지는 DB 인스턴스 클래스 유형이 변경되었음을 나타냅니다.
    • 이 크기 조정 작업 중에는 몇 분 동안 단일 AZ 배포를 사용할 수 없게 됩니다.
    • 인스턴스가 장애 조치되는 시간 동안에는 다중 AZ 배포를 사용할 수 없습니다. 이 기간은 보통 약 60초입니다. 이는 새로 크기 조정된 데이터베이스에 장애 조치가 발생하기 전에 대기 데이터베이스가 업그레이드되기 때문입니다. 그러면 데이터베이스가 재시작되고 엔진이 복구를 수행하여 데이터베이스가 일관된 상태로 유지되도록 합니다.
  • 사용자가 DB 인스턴스의 장애 조치를 요청함: 이 메시지는 재부팅 또는 장애 조치와 함께 재부팅 옵션을 사용하여 DB 인스턴스의 수동 재부팅을 시작했음을 나타냅니다.
  • RDS 다중 AZ 인스턴스의 기본 호스트가 비정상임: 이 이유는 기본 인스턴스와의 통신이 끊어지는 일시적인 기본 하드웨어 문제를 나타냅니다. RDS 모니터링 시스템이 상태 확인을 수행하기 위해 RDS 인스턴스와 통신할 수 없기 때문에 이 문제로 인해 인스턴스가 비정상적일 수 있습니다.
  • 네트워크 연결 손실로 인해 RDS 다중 AZ 인스턴스의 기본 호스트에 연결할 수 없음: 이 이유는 다중 AZ 배포의 기본 호스트에 영향을 주는 일시적인 네트워크 문제로 인해 다중 AZ 장애 조치 및 데이터베이스 인스턴스 재시작이 발생했음을 나타냅니다. 내부 모니터링 시스템에서 이 문제를 감지하고 장애 조치를 시작했습니다.
  • RDS 다중 AZ 기본 인스턴스가 사용 중이며 응답하지 않음, 다중 AZ 인스턴스 활성화가 시작됨, 또는 다중 AZ 인스턴스 활성화가 완료됨: 다음과 같은 상황에서 이벤트 로그에 이러한 메시지가 표시됩니다.
    • 기본 DB 인스턴스가 응답하지 않습니다.
    • 데이터베이스의 과도한 메모리 소비 후 메모리 크런치로 인해 RDS 모니터링 시스템이 기본 호스트에 연결하지 못했습니다. 따라서 모니터링 시스템에 의해 사전 예방적 조치로 데이터베이스가 재시작됩니다.
    • DB 인스턴스에서 기본 호스트에 간헐적인 네트워크 문제가 발생했습니다.
    • 인스턴스가 데이터베이스 로드를 경험했습니다. 이 경우 CloudWatch 지표 CPUUtilization, DatabaseConnections, IOPS 지표처리량 세부 정보에서 급증이 있을 수 있습니다. Freeablememory의 고갈이 있을 수도 있습니다.
  • 데이터베이스 인스턴스 패치 적용: 이 메시지는 인스턴스에서 자동 마이너 버전 업그레이드 설정이 활성화되어 있어 유지 관리 기간 동안 DB 인스턴스가 마이너 버전 업그레이드를 수행했음을 나타냅니다.

CloudWatch 지표

Amazon RDS 인스턴스에 대한 CloudWatch 지표를 보고 데이터베이스 로드 문제로 인해 중단이 발생했는지 확인합니다. 자세한 내용은 Amazon CloudWatch로 Amazon RDS 지표 모니터링을 참조하세요. RDS 인스턴스의 가용성 및 상태를 나타내는 다음 주요 지표에서 급증이 있는지 확인합니다.

  • DatabaseConnections
  • CPUUtilization
  • FreeableMemory
  • WriteIOPS
  • ReadIOPS
  • ReadThroughput
  • WriteThroughput
  • DiskQueueDepth

Enhanced Monitoring

Amazon RDS는 Enhanced Monitoring의 지표를 사용자의 Amazon CloudWatch Logs 계정으로 전달합니다. 이는 DB 인스턴스가 실행되는 운영 체제에 대한 실시간 지표를 제공합니다. 콘솔에서는 DB 인스턴스에 대한 모든 시스템 지표와 프로세스 정보를 볼 수 있습니다.

고급 모니터링 기능의 세부 수준을 1, 5, 10, 15, 30 또는 60으로 설정할 수 있습니다.

Amazon RDS 인스턴스에 대해 Enhanced Monitoring을 켜려면 Enhanced Monitoring 설정 및 활성화를 참조하세요.

성능 개선 도우미

성능 개선 도우미 대시보드에는 성능 문제를 분석하고 해결하는 데 도움이 되는 데이터베이스 성능과 관련된 정보가 포함되어 있습니다. 또한 DB 인스턴스에서 과도한 리소스를 소비하는 쿼리 및 대기 이벤트를 식별할 수 있습니다. 성능 개선 도우미는 데이터베이스 수준에서 데이터를 수집하여 해당 데이터를 성능 개선 도우미 대시보드에 표시합니다. 자세한 정보는 Amazon RDS의 성능 개선 도우미로 DB 로드 모니터링을 참조하세요. 애플리케이션 측에서 리소스 소비가 증가하면 성능 개선 도우미 대시보드의 Support SQL ID를 사용하여 해당 쿼리와 일치시킵니다. 이 정보를 사용하여 DBA의 지침에 따라 쿼리 성능을 조정하고 워크로드를 최적화하는 것이 모범 사례입니다.

  1. Amazon RDS 콘솔을 엽니다.
  2. 탐색 창에서 성능 개선 도우미(Performance Insights)를 선택합니다.
  3. 성능 개선 도우미 페이지에서 DB 인스턴스를 선택합니다. 이 DB 인스턴스에 대한 성능 개선 도우미 대시보드를 볼 수 있습니다.
  4. 문제가 발생한 기간을 선택합니다.
  5. 최상위 SQL(Top SQL) 탭을 선택합니다.
  6. 설정(settings) 아이콘을 선택한 다음 지원 ID(Support ID)를 켭니다.
  7. 저장(Save)을 선택합니다.

RDS 데이터베이스 로그

Amazon RDS DB 인스턴스의 중단 원인을 해결하려면 Amazon RDS 콘솔 또는 Amazon RDS API 작업을 사용하여 데이터베이스 로그 파일을 보거나 다운로드하거나 관찰할 수 있습니다. 데이터베이스 테이블에 로드되는 데이터베이스 로그 파일을 쿼리할 수도 있습니다. 자세한 내용은 Amazon RDS 로그 파일 모니터링을 참조하세요.

RDS 인스턴스 중단을 처리할 때는 다음 모범 사례를 기억하세요.

  • 인스턴스에서 다중 AZ 배포를 활성화하여 중단 시 가동 중지 시간을 줄입니다. 다중 AZ 배포를 사용하면 RDS가 다른 가용 영역 또는 두 개의 읽기 가능한 대기 복제본에 동기식 예비 복제본을 자동으로 프로비저닝하여 유지합니다. 자세한 내용은 Amazon RDS 다중 AZ를 참조하세요.
  • 기본 설정에 따라 DB 인스턴스 유지 관리 기간을 조정합니다. DB 인스턴스 클래스 변경과 같은 시스템 변경 사항이 적용되어 중단이 필요한 경우 이 기간 동안에만 DB 인스턴스를 사용할 수 없으며 필요한 변경을 수행하는 데 소요되는 최소 시간 동안만 해당됩니다. 자세한 내용은 DB 인스턴스 유지 관리를 참조하세요. 인스턴스가 자동 마이너 버전 업그레이드를 거치지 않도록 하려면 이 옵션을 끌 수 있습니다. 자세한 내용은 마이너 엔진 버전 자동 업그레이드를 참조하세요.
  • 쿼리를 실행할 수 있는 충분한 리소스가 데이터베이스에 할당되어 있는지 확인합니다. Amazon RDS의 경우 할당된 리소스의 양은 인스턴스 유형에 따라 다릅니다. 또한 저장 프로시저와 같은 특정 쿼리는 무제한의 메모리를 사용할 수 있습니다. 따라서 리소스 부족으로 인해 인스턴스가 자주 재시작되는 경우 데이터베이스 인스턴스 클래스를 확장하여 증가하는 애플리케이션 요구에 부응하는 것이 좋습니다.
  • 인스턴스 제한을 방지하려면 RDS 인스턴스의 가용성 및 상태를 나타내는 RDS 주요 지표에 Amazon CloudWatch 경보를 구성합니다. 예를 들면 사용 가능한 메모리가 95%에 도달할 때 알림을 수신하도록 FreeableMemory 지표에 대한 CloudWatch 경보를 설정할 수 있습니다. 인스턴스 메모리의 5% 이상을 여유 공간으로 유지하는 것이 모범 사례입니다. 자세한 내용은 Enhanced Monitoring CloudWatch Logs를 필터링하여 Amazon RDS에 대한 자동화된 사용자 지정 지표를 생성하려면 어떻게 해야 합니까?를 참조하세요.
  • RDS 인스턴스에 장애 조치가 발생할 때마다 알림을 받으려면 Amazon RDS 이벤트 알림을 구독하세요. 자세한 내용은 Amazon RDS 이벤트 구독 생성 방법을 참조하세요.
  • 데이터베이스 성능을 최적화하려면 쿼리가 제대로 조정되었는지 확인합니다. 그렇지 않으면 성능 문제가 발생하고 대기 시간이 연장될 수 있습니다.
  • CPU, 메모리 또는 기타 리소스 크런치와 관련된 모든 종류의 로드 문제를 해결하려면 Amazon RDS 또는 Amazon Aurora PostgreSQL의 높은 CPU 사용률 문제를 해결하려면 어떻게 해야 합니까?를 참조하세요.