RDS for PostgreSQL 데이터베이스 로그 파일 - Amazon Relational Database Service

RDS for PostgreSQL 데이터베이스 로그 파일

RDS for PostgreSQL은 기본 PostgreSQL 로그 파일에 데이터베이스 활동을 로깅합니다. 온프레미스 PostgreSQL DB 인스턴스의 경우 이러한 메시지가 log/postgresql.log에 로컬로 저장됩니다. RDS for PostgreSQL DB 인스턴스의 경우 Amazon RDS 인스턴스에서 로그 파일을 사용할 수 있습니다. 또한 Amazon RDS 콘솔을 사용하여 콘텐츠를 보거나 다운로드해야 합니다. 기본 로깅 수준에서는 로그인 실패, 치명적인 서버 오류, 교착 상태 및 쿼리 실패를 캡처합니다.

파일 기반 데이터베이스 로그 보기, 다운로드 및 조사 방법에 대한 자세한 내용은 Amazon RDS 로그 파일 모니터링 섹션을 참조하세요. PostgreSQL 로그에 대한 자세한 내용은 Working with Amazon RDS and Aurora PostgreSQL logs: Part 1(RDS 및 Aurora PostgreSQL 로그로 작업하기: 파트 1) 및 Working with Amazon RDS and Aurora PostgreSQL logs: Part 2(RDS 및 Aurora PostgreSQL 로그로 작업하기: 파트 2)를 참조하세요.

이 주제에서 설명하는 표준 PostgreSQL 로그 외에 RDS for PostgreSQL은 PostgreSQL Auidt 확장(pgAudit)도 지원합니다. 대부분의 규제 대상 산업 및 정부 기관은 법적 요구 사항을 준수하기 위해 데이터 변경에 대한 감사 로그 또는 감사 추적을 보존해야 합니다. pgAudit 설치 및 사용에 대한 자세한 내용은 pgAudit를 사용하여 데이터베이스 활동 로깅 섹션을 참조하세요.

Amazon CloudWatch Logs에 PostgreSQL 로그 게시

매우 내구력 있는 스토리지에 PostgreSQL 로그 레코드를 저장하려면 Amazon CloudWatch Logs를 사용하면 됩니다. CloudWatch Logs를 사용하면 로그 데이터에 대한 실시간 분석을 수행하고 CloudWatch를 통해 지표를 보고 경보를 생성할 수도 있습니다. 예를 들어, log_statementddl로 설정하면 DDL 문이 실행될 때마다 경고하도록 경보를 설정할 수 있습니다. RDS for PostgreSQL DB 인스턴스를 생성하는 동안 PostgreSQL 로그가 CloudWatch Logs에 업로드되도록 선택할 수 있습니다. 이때 로그를 업로드하지 않도록 선택한 경우 나중에 인스턴스를 수정하여 해당 시점부터 로그 업로드를 시작하도록 할 수 있습니다. 즉, 기존 로그는 업로드되지 않습니다. 수정된 RDS for PostgreSQL DB 인스턴스에 생성된 새 로그만 업로드됩니다.

현재 사용 가능한 모든 RDS for PostgreSQL 버전에서는 CloudWatch Logs에 로그 파일 게시를 지원합니다. 자세한 내용은 Amazon RDS for PostgreSQL 릴리스 정보에서 Amazon RDS for PostgreSQL 업데이트 내용을 참조하세요.

CloudWatch Logs로 작업하려면 로그 그룹에 로그 데이터를 게시하도록 RDS for PostgreSQL DB 인스턴스를 구성하십시오.

RDS for PostgreSQL용 CloudWatch Logs에 다음 로그 유형을 게시할 수 있습니다.

  • Postgresql 로그

  • 업그레이드 로그

구성을 완료하고 나면 Amazon RDS에서 CloudWatch 로그 그룹 내 로그 스트림에 로그 이벤트를 게시합니다. 예를 들면 PostgreSQL 로그 데이터가 로그 그룹 /aws/rds/instance/my_instance/postgresql 안에 저장됩니다. 로그를 보려면 https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

콘솔을 사용하여 PostgreSQL 로그를 CloudWatch Logs에 게시하려면
  1. https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 데이터베이스를 선택합니다.

  3. 수정할 DB 인스턴스를 선택한 다음 수정을 선택합니다.

  4. 로그 내보내기 섹션에서 CloudWatch Logs에 게시하기 시작할 로그를 선택합니다.

    로그 내보내기 섹션은 CloudWatch Logs에 게시하는 기능을 지원하는 PostgreSQL 버전에서만 제공됩니다.

  5. [Continue]를 선택한 후, 요약 페이지에서 [Modify DB Instance]를 선택합니다.

AWS CLI를 통해 PostgreSQL 로그를 게시할 수 있습니다. 다음 파라미터로 modify-db-instance 명령을 호출할 수 있습니다.

  • --db-instance-identifier

  • --cloudwatch-logs-export-configuration

참고

--cloudwatch-logs-export-configuration 옵션에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 --apply-immediately--no-apply-immediately 옵션은 지정해도 아무런 효과가 없습니다.

또한 다음 CLI 명령을 호출하여 PostgreSQL 로그를 게시할 수도 있습니다.

다음 옵션으로 CLI 명령 중 하나를 실행합니다.

  • --db-instance-identifier

  • --enable-cloudwatch-logs-exports

  • --db-instance-class

  • --engine

실행하는 CLI 명령에 따라 다른 옵션이 필요할 수 있습니다.

예 로그를 CloudWatch Logs에 게시하도록 인스턴스 수정

다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 기존 PostgreSQL DB 인스턴스를 수정합니다. --cloudwatch-logs-export-configuration 값은 JSON 객체입니다. 이 객체에 대한 키는 EnableLogTypes이며, 해당 값은 postgresqlupgrade의 조합을 사용하는 문자열의 배열입니다.

대상 LinuxmacOS, 또는Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql", "upgrade"]}'

Windows의 경우:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","upgrade"]}'
예 로그를 CloudWatch Logs에 게시하도록 인스턴스 생성

다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 PostgreSQL DB 인스턴스를 생성합니다. --enable-cloudwatch-logs-exports 값은 문자열의 JSON 배열입니다. 문자열은 postgresqlupgrade의 조합일 수 있습니다.

대상 LinuxmacOS, 또는Unix:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' \ --db-instance-class db.m4.large \ --engine postgres

Windows의 경우:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' ^ --db-instance-class db.m4.large ^ --engine postgres

RDS API를 사용하여 PostgreSQL 로그를 게시할 수 있습니다. 다음 파라미터로 ModifyDBInstance 작업을 호출할 수 있습니다.

  • DBInstanceIdentifier

  • CloudwatchLogsExportConfiguration

참고

CloudwatchLogsExportConfiguration 파라미터에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 ApplyImmediately 파라미터는 지정해도 아무런 효과가 없습니다.

또한 다음 RDS API 작업을 호출해 PostgreSQL 로그를 게시할 수 있습니다.

다음 파라미터로 RDS API 작업 중 하나를 실행합니다.

  • DBInstanceIdentifier

  • EnableCloudwatchLogsExports

  • Engine

  • DBInstanceClass

실행하는 작업에 따라 다른 파라미터가 필요할 수 있습니다.