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 감사 로그 활성화에 대한 자세한 내용은 고급 감사 활성화 단원을 참조하십시오.

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

  • 감사 로그를 CloudWatch Logs에 게시하는 다른 방법은 고급 감사를 활성화한 다음 사용자 지정 DB 클러스터 파라미터 그룹을 만들고 server_audit_logs_upload 파라미터를 1로 설정하는 것입니다. server_audit_logs_upload DB 클러스터 파라미터의 기본값은 0입니다. 고급 감사 활성화에 대한 자세한 내용은 Amazon Aurora MySQL DB 클러스터에서 고급 감사 사용 섹션을 참조하세요.

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

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

  • Aurora Serverless v1 DB 클러스터의 절차는 프로비저닝된 DB 인스턴스 또는 Aurora Serverless v2 DB 인스턴스의 절차와 약간 다릅니다. Aurora Serverless v1 클러스터는 사용자가 구성 파라미터를 통해 활성화하는 모든 로그를 자동으로 업로드합니다.

    따라서 DB 클러스터 파라미터 그룹에서 다양한 로그 유형을 활성화하고 비활성화하는 방식으로 Aurora Serverless v1 DB 클러스터에 대한 로그 업로드를 활성화 또는 비활성화합니다. AWS Management Console, AWS CLI 또는 RDS API를 통해 클러스터 자체의 설정을 수정할 수는 없습니다. Aurora Serverless v1 클러스터에서 MySQL 로그 활성화 및 비활성화에 대한 자세한 내용은 Aurora Serverless v1 파라미터 그룹 섹션을 참조하세요.

콘솔에서 프로비저닝된 클러스터에 대한 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 클러스터를 수정합니다.

대상 LinuxmacOS, 또는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 클러스터를 생성합니다.

대상 LinuxmacOS, 또는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 로그 그룹에 저장됩니다.

클러스터의 모든 인스턴스에 있는 이벤트가 서로 다른 로그 스트림을 사용하는 로그 그룹으로 이동합니다. 다음 조건 중 어디에 해당하는지에 따라 달라집니다.

  • 지정된 이름의 로그 그룹이 존재합니다.

    Aurora는 기존 로그 그룹을 사용하여 클러스터의 로그 데이터를 내보냅니다. AWS CloudFormation 같은 자동 구성을 사용하여 미리 정의된 로그 보존 기간, 지표 필터 및 고객 액세스 권한이 있는 로그 그룹을 생성할 수 있습니다.

  • 지정된 이름의 로그 그룹이 존재하지 않습니다.

    인스턴스의 로그 파일에서 일치하는 로그 항목이 감지되면 Aurora MySQL은 CloudWatch Logs에 새 로그 그룹을 자동으로 생성합니다. 이 로그 그룹에는 기본 로그 보존 기간인 [만료되지 않음(Never Expire)]이 사용됩니다.

    로그 보존 기간을 변경하려면 CloudWatch Logs 콘솔, AWS CLI 또는 CloudWatch Logs API를 사용합니다. CloudWatch Logs의 로그 보존 기간 변경에 대한 자세한 내용은 CloudWatch Logs에서 로그 데이터 보존 변경을 참조하십시오.

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