Amazon CloudWatch Logs에 Amazon Aurora MySQL 로그 게시 - Amazon Aurora

Amazon CloudWatch Logs에 Amazon Aurora MySQL 로그 게시

일반, 느린, 감사, 오류 로그 데이터를 Amazon CloudWatch Logs의 로그 그룹에 게시하도록 Aurora MySQL DB 클러스터를 구성할 수 있습니다. CloudWatch Logs를 통해 로그 데이터에 대한 실시간 분석을 수행할 수 있고, CloudWatch를 사용하여 경보를 만들고 지표를 볼 수 있습니다. CloudWatch Logs를 사용하여 내구성이 뛰어난 스토리지에 로그 레코드를 저장할 수 있습니다.

CloudWatch Logs로 로그를 게시하려면 각 로그를 활성화해야 합니다. 오류 로그는 기본적으로 활성화되어 있지만 다른 유형의 로그는 명시적으로 활성화해야 합니다. MySQL에서 로그를 활성화하는 내용은 MySQL 설명서에 있는 일반 쿼리와 느린 쿼리 로그 출력 대상 선택을 확인하십시오. Aurora MySQL 감사 로그 활성화에 대한 자세한 내용은 고급 감사 활성화 단원을 참조하십시오.

참고

다음에 유의하십시오.

  • 중국(닝샤) 리전의 경우 CloudWatch Logs에 로그를 게시할 수 없습니다.

  • 로그 데이터 내보내기를 비활성화하면 Aurora가 기존 로그 그룹 또는 로그 스트림을 삭제하지 않습니다. 로그 데이터 내보내기를 비활성화하면 CloudWatch Logs에서 기존 로그 데이터를 계속 사용할 수 있으며, 로그 보존에 따라 저장된 감사 로그 데이터 비용이 발생합니다. CloudWatch Logs 콘솔, AWS CLI 또는 CloudWatch Logs API를 사용하여 로그 스트림 및 로그 그룹을 삭제할 수 있습니다.

  • 감사 로그를 CloudWatch Logs에 게시하는 다른 방법은 고급 감사를 활성화하고 클러스터 수준의 DB 파라미터 server_audit_logs_upload1로 설정하는 것입니다. server_audit_logs_upload 파라미터의 기본 값은 0입니다.

    대안인 이 방법을 사용하는 경우 CloudWatch Logs에 액세스하고 aws_default_logs_role 클러스터 수준 파라미터를 이 역할에 대한 ARN으로 설정하는 IAM 역할을 보유해야 합니다. 역할에 대한 상세 정보는 AWS 서비스에 액세스할 수 있는 IAM 역할 설정 단원을 참조하십시오. 하지만 AWSServiceRoleForRDS 서비스 연결 역할이 있는 경우 CloudWatch Logs에 대한 액세스를 제공하고 모든 사용자 정의 역할을 무시합니다. Amazon RDS에 대한 서비스 연결 역할에 대한 자세한 내용은 Amazon Aurora에 서비스 연결 역할 사용 단원을 참조하십시오.

  • 감사 로그를 CloudWatch Logs로 내보내고 싶지 않은 경우, 감사 로그를 내보내는 모든 방법이 비활성화되었는지 확인하십시오. AWS Management 콘솔, AWS CLI, RDS API, server_audit_logs_upload 파라미터가 그러한 방법에 해당합니다.

  • Aurora Serverless 클러스터에 대한 절차는 프로비저닝된 클러스터에 대한 절차와 약간 다릅니다. 서버리스 클러스터는 사용자가 구성 파라미터를 통해 활성화하는 모든 종류의 로그를 자동으로 업로드할 수 있습니다. 따라서 DB 클러스터 파라미터 그룹에서 다양한 로그 유형을 켜고 끄는 방식으로 서버리스 클러스터에 대한 로그 업로드를 활성화 또는 비활성화합니다. AWS Management 콘솔, AWS CLI 또는 RDS API를 통해 클러스터 자체의 설정을 수정할 수는 없습니다. 서버리스 클러스터에 대해 MySQL 로그를 활성화하는 방법에 관한 자세한 내용은 Aurora Serverless 및 파라미터 그룹 단원을 참조하십시오.

콘솔에서 프로비저닝된 클러스터에 대한 Aurora MySQL 로그를 CloudWatch Logs에 게시할 수 있습니다.

콘솔에서 Aurora MySQL 로그를 게시하려면

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

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

  3. 로그 데이터를 게시하려는 DB 클러스터의 Aurora MySQL을 선택합니다.

  4. 수정을 선택합니다.

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

  6. 계속을 선택한 후, 요약 페이지에서 Modify DB Cluster(DB 클러스터 수정)를 선택합니다.

AWS CLI에서 프로비저닝된 클러스터에 대한 Aurora MySQL 로그를 게시할 수 있습니다. 이를 위해서는 modify-db-cluster AWS CLI 명령을 다음 옵션과 함께 실행해야 합니다.

  • --db-cluster-identifier—DB 클러스터 식별자입니다.

  • --cloudwatch-logs-export-configuration—DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

또 다음 AWS CLI 명령 중 하나를 실행하여 Aurora MySQL 로그를 게시할 수 있습니다.

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

  • --db-cluster-identifier—DB 클러스터 식별자입니다.

  • --engine—데이터베이스 엔진입니다.

  • --enable-cloudwatch-logs-exports—DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

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

다음 명령은 CloudWatch Logs에 로그 파일을 게시하도록 기존 Aurora MySQL DB 클러스터를 수정합니다.

Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","general","slowquery","audit"]}'

Windows의 경우:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","general","slowquery","audit"]}'

다음 명령은 CloudWatch Logs에 로그 파일을 게시하도록 Aurora MySQL DB 클러스터를 생성합니다.

Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

aws rds create-db-cluster \ --db-cluster-identifier mydbcluster \ --engine aurora \ --enable-cloudwatch-logs-exports '["error","general","slowquery","audit"]'

Windows의 경우:

aws rds create-db-cluster ^ --db-cluster-identifier mydbcluster ^ --engine aurora ^ --enable-cloudwatch-logs-exports '["error","general","slowquery","audit"]'

RDS API에서 프로비저닝된 클러스터에 대한 Aurora MySQL 로그를 게시할 수 있습니다. 이를 위해서는 다음 옵션과 함께 ModifyDBCluster 작업을 실행해야 합니다.

  • DBClusterIdentifier—DB 클러스터 식별자입니다.

  • CloudwatchLogsExportConfiguration—DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

또한 다음 RDS API 작업 중 하나를 실행하여 RDS API로 Aurora MySQL 로그를 게시할 수 있습니다.

다음 파라미터로 RDS API 작업을 실행합니다.

  • DBClusterIdentifier—DB 클러스터 식별자입니다.

  • Engine—데이터베이스 엔진입니다.

  • EnableCloudwatchLogsExports—DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

실행하는 AWS CLI 명령에 따라 다른 파라미터가 필요할 수 있습니다.

Amazon CloudWatch에서 로그 이벤트 모니터링

Aurora MySQL 로그 이벤트를 활성화한 후에 Amazon CloudWatch Logs에서 이 이벤트를 모니터링할 수 있습니다. 다음 접두사 밑에 Aurora DB 클러스터의 새 로그 그룹이 자동으로 생성됩니다. 여기서 cluster-name은 DB 클러스터 이름, log_type은 로그 유형을 나타냅니다.

/aws/rds/cluster/cluster-name/log_type

예를 들어 mydbcluster라는 이름의 DB 클러스터에 느린 쿼리 로그를 포함하도록 내보내기 함수를 구성하면, 느린 쿼리 데이터가 /aws/rds/cluster/mydbcluster/slowquery 로그 그룹에 저장됩니다.

DB 클러스터의 모든 DB 인스턴스에 있는 모든 이벤트가 서로 다른 로그 스트림을 사용하는 로그 그룹으로 이동합니다.

지정된 이름이 있는 로그 그룹이 존재할 경우 Aurora은 이 로그 그룹을 사용하여 Aurora DB 클러스터의 로그 데이터를 내보냅니다. AWS CloudFormation 같은 자동 구성을 사용하여 미리 정의된 로그 보존 기간, 메트릭 필터 및 고객 액세스 권한이 있는 로그 그룹을 생성할 수 있습니다. 또는 기본 로그 보존 기간인 만기 없음을 CloudWatch Logs에서 사용하면 새 로그 그룹이 자동으로 생성됩니다. CloudWatch Logs 콘솔, AWS CLI 또는 CloudWatch Logs API를 사용하여 로그 보존 기간을 변경할 수 있습니다. CloudWatch Logs의 로그 보존 기간 변경에 대한 자세한 내용은 CloudWatch Logs에서 로그 데이터 보존 변경을 참조하십시오.

CloudWatch Logs 콘솔, AWS CLI 또는 CloudWatch Logs API를 사용하여 DB 클러스터의 로그 이벤트 안에서 정보를 검색할 수 있습니다. 로그 데이터 검색 및 필터링에 관한 자세한 내용은 로그 데이터 검색 및 필터를 참조하십시오.