로그를 사용해 Amazon Redshift 데이터베이스 클러스터의 활동을 추적하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Redshift 클러스터에서 데이터베이스를 감사하고 싶습니다.

간략한 설명


Amazon Redshift에는 로깅 옵션이 세 가지 있습니다.

감사 로깅 및 STL/SYS 테이블은 로그인한 사용자 및 로그인 시간과 같은 데이터베이스 수준 활동을 기록합니다. 또 사용자가 한 SQL 작업과 해당 작업을 실행한 시간이 기록됩니다. CloudTrail은 서비스 수준에서 사용자 활동을 추적합니다.

참고: 로그를 볼 때 외부 테이블을 사용하려면 Amazon Redshift Spectrum을 사용하세요. 자세한 내용은 Amazon Redshift Spectrum을 사용해 보안 및 규정 준수를 위한 데이터베이스 분석을 참고하세요.

해결 방법

감사 로깅 및 STL/ SYS 테이블

다음 표에서는 감사 로깅과 STL/SYS 테이블을 비교합니다. 사용 사례에 적합한 로깅 옵션을 선택하세요.

감사 로깅STL/SYS 테이블
Amazon Redshift 콘솔을 사용하거나 AWS Command Line Interface(AWS CLI) 및 Amazon Redshift를 사용해 감사 로깅을 활성화하세요.STL/SYS 테이블은 데이터 웨어하우스 클러스터의 모든 노드에서 자동으로 사용할 수 있습니다.
Amazon S3 수명 주기 규칙을 정의해 자동으로 파일을 보관하거나 삭제하지 않는 한 감사 로그 파일은 무기한 저장됩니다. 자세한 내용은 스토리지 수명 주기 관리를 참고하세요.로그 기록은 로그 사용량과 사용 가능한 디스크 공간에 따라 2~5일 동안 저장됩니다. 보존 기간을 연장하려면 GitHub 웹 사이트에서 Amazon Redshift 시스템 개체 지속성 유틸리티를 사용하세요.
감사 로그 파일에 액세스하기 위해 Amazon Redshift 데이터베이스에 액세스할 필요가 없습니다.STL/SYS 테이블에 액세스하려면 Amazon Redshift 데이터베이스에 액세스할 수 있어야 합니다.
Amazon S3에 저장된 로그를 검토하는 데 데이터베이스 컴퓨팅 리소스가 필요하지 않습니다.다른 쿼리를 실행할 때와 마찬가지로 STL/SYS 테이블 쿼리를 실행하려면 데이터베이스 컴퓨팅 리소스가 필요합니다.
타임스탬프를 사용해 프로세스 ID와 데이터베이스 활동의 상관관계를 파악할 수 있습니다. 클러스터를 재시작해도 Amazon S3 감사 로깅에는 영향을 주지 않습니다.클러스터가 재시작할 때 프로세스 ID를 재사용할 수 있기 때문에 프로세스 ID와 데이터베이스 활동의 상관 관계를 항상 파악할 수는 없습니다.
감사 로깅은 다음 로그 파일에 정보를 저장합니다. 연결 로그, 사용자 로그, 사용자 활동 로그 참고: 사용자 활동 로그를 사용하려면 데이터베이스 파라미터 enable_user_activity_logging을 활성화해야 합니다. 자세한 내용은 로깅 켜기를 참고하세요.상세 정보를 보려면 SVL_STATEMENTTEXT, STL_CONNECTION_LOG, SYS_CONNECTION_LOG를 사용하세요.
감사 로깅은 사용자 활동 로그에 SQL 문을 모두 기록합니다.실행하는 쿼리는 STL_QUERY에 로깅됩니다. DDL 명령문은 STL_DDLTEXT에 로깅됩니다. non-SELECT SQL 명령 텍스트는 STL_UTILITYTEXT에 로깅됩니다. Amazon Redshift Serverless의 경우 SYS_QUERY_HISTORYSYS_QUERY_DETAIL을 사용해 SQL 명령을 모두 확인할 수 있습니다.
문은 Amazon Redshift에서 받는 즉시 로깅됩니다. Amazon S3 파일은 배치별로 업데이트되고 표시되는 데 몇 시간이 걸릴 수 있습니다.로그는 각 SQL 문을 실행한 후에 생성됩니다.
감사 로깅의 경우 작업자, 작업 내용, 작업 시각을 로깅하지만 작업을 완료하는 데 걸린 시간은 로깅하지 않습니다.STARTTIME과 ENDTIME 열을 사용해 활동을 완료하는 데 걸린 시간을 확인할 수 있습니다. 작업자를 확인하려면 프로비저닝된 클러스터에서 SVL_STATEMENTTEXT(userid)와 PG_USER (usesysid)를 함께 사용하세요. YS_QUERY_HISTORY와 SYS_QUERY_DETAIL을 사용해 Amazon Redshift Serverless에서 활동을 완료하는 데 걸린 시간을 확인할 수 있습니다.
Amazon S3에서 로그가 사용하는 스토리지에 요금이 부과됩니다.STL/SYS 테이블 스토리지에 부과되는 추가 요금은 없습니다.
리더 노드에서 실행하는 쿼리만 기록됩니다.리더 노드에서 실행하는 쿼리만 기록되지 않습니다.

CloudTrail

CloudTrail이 수집하는 정보를 사용해 AWS 서비스에 보낸 요청 내용, 요청한 사람, 요청 시기를 확인할 수 있습니다. 자세한 내용은 AWS CloudTrail로 Amazon Redshift API 호출 로깅을 참고하세요.

수명 주기 규칙을 정의해 자동으로 파일을 보관하거나 삭제하지 않는 한 감사 로그 파일은 Amazon S3에 무기한 저장됩니다. 자세한 내용은 스토리지 수명 주기 관리를 참고하세요.

관련 정보

쿼리 성능 조정

AWS 공식
AWS 공식업데이트됨 일 년 전