View a markdown version of this page

예약된 쿼리 생성 - Amazon CloudWatch Logs

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

예약된 쿼리 생성

CloudWatch Logs Insights 쿼리를 자동으로 실행하고 선택한 대상으로 결과를 전송하는 예약된 쿼리를 생성합니다.

사전 조건

예약된 쿼리를 생성하기 전에 다음이 있는지 확인합니다.

  • 로그 그룹 - 분석하려는 데이터가 포함된 하나 이상의 로그 그룹

  • 실행 IAM 역할 - 다음 권한이 있는 IAM 역할:

    • logs:StartQuery - CloudWatch Logs Insights 쿼리를 시작할 수 있는 권한

    • logs:GetQueryResults - 쿼리 결과를 검색할 수 있는 권한

    • logs:DescribeLogGroups - 로그 그룹 정보에 액세스할 수 있는 권한. 이는 로그 그룹 검색을 위한 접두사 기반 로그 그룹에만 필요합니다.

  • 대상 권한 - 선택한 대상에 대한 추가 IAM 권한:

    • Amazon S3 대상의 경우: s3:PutObject

  • AWS CLI 및 API 사용의 경우 - CloudWatch Logs APIs 호출할 수 있는 권한이 있는 구성된 AWS 자격 증명

자세한 IAM 정책 예제는 섹션을 참조하세요Amazon CloudWatch Logs용 Identity and Access Management. 또한 계정당 1,000개의 예약된 쿼리만 가질 수 있습니다.

Console
예약된 쿼리를 생성하려면(콘솔)
  1. CloudWatch Logs 콘솔을 여시겠습니까? https://us-east-1.console.aws.amazon.com/cloudwatch/homeregion=us-east-1#logsV2:logs-insights.

  2. 탐색 창에서 Logs Insights를 선택합니다.

  3. 예약된 쿼리 생성을 선택합니다.

  4. 쿼리 정의 섹션에서 다음을 수행합니다.

    1. 쿼리 언어의 경우 목록에서 사용할 쿼리 언어를 선택합니다.

    2. 쿼리 문자열의 경우 상자에 CloudWatch Logs Insights 쿼리를 입력합니다.

    3. 로그 그룹의 경우 목록에서 쿼리할 로그 그룹을 선택합니다.

  5. 일정 설정 섹션에서 다음을 수행합니다.

    1. 일정 표현식에서 쿼리 실행 시기를 구성합니다. 사전 정의된 옵션 중에서 선택하거나 사용자 지정 cron 표현식을 입력합니다.

    2. 생성 시 유효에서 일정이 활성화되는 시기를 지정합니다. YYYY/MM/DD 형식을 사용하여 즉시 또는 특정 날짜 및 시간에 시작하도록 선택합니다.

    3. 시간 범위에서 각 쿼리 실행의 룩백 기간을 지정합니다. 쿼리할 실행 시간과 얼마나 멀어지는지 정의하는 지속 시간을 분 단위로 입력합니다.

    4. 무기한 계속에서 일정이 종료되는 시간을 지정합니다. YYYY/MM/DD 형식을 사용하여 무기한 또는 특정 날짜 및 시간까지 실행하도록 선택합니다.

  6. 콘솔에는 구성을 기반으로 다음 3개의 예약된 쿼리 실행이 표시되며 쿼리가 실행되는 정확한 날짜와 시간을 UTC 단위로 표시합니다.

  7. 쿼리 결과를 S3에 게시 - 선택 사항 섹션에서(S3 대상을 사용하는 경우):

    1. S3 버킷의 경우 대상 버킷이 동일한 계정에 있는 경우 AWS 계정을 선택하고 버킷이 다른 계정에 있는 경우 다른 AWS 계정을 선택하고 버킷 소유 계정의 계정 ID를 입력으로 제공합니다.

    2. Amazon S3 URI에 결과를 저장할 Amazon S3 버킷과 접두사(예: s3://my-bucket/query-results/)를 입력합니다. 이 계정을 선택한 경우 Amazon S3 찾아보기를 선택하여 기존 Amazon S3 위치를 탐색하고 선택할 수 있습니다.

    3. (선택 사항) KMS 키 ARN에 고객 관리형 AWS KMS 키의 ARN을 입력하여 SSE-KMS를 사용하여 쿼리 결과를 암호화합니다. 키는 대상 Amazon S3 버킷과 동일한 AWS 리전에 있어야 합니다.

  8. Amazon S3에 쿼리 결과를 게시하기 위한 IAM 역할 섹션에서 다음 옵션 중 하나를 선택합니다.

    1. 기본 권한이 있는 새 역할 자동 생성을 선택하여 CloudWatch Logs가 Amazon S3에 쿼리 결과를 전달하는 데 필요한 권한이 있는 IAM 역할을 자동으로 설정합니다.

    2. 기존 역할 사용을 선택하여 CloudWatch Logs가 Amazon S3에 쿼리 결과를 전송하는 데 필요한 정책이 있는 기존 IAM 역할을 선택합니다. 검색 필드를 사용하여 목록에서 적절한 IAM 역할을 찾아 선택합니다.

  9. 예약된 쿼리 실행을 위한 IAM 역할 섹션에서 다음 옵션 중 하나를 선택합니다.

    1. 기본 권한이 있는 새 역할 자동 생성을 선택하여 CloudWatch Logs가 예약된 쿼리를 실행하는 데 필요한 권한이 있는 IAM 역할을 자동으로 설정합니다.

    2. 기존 역할 사용을 선택하여 CloudWatch Logs가 예약된 쿼리를 실행하는 데 필요한 정책이 있는 기존 IAM 역할을 선택합니다. 검색 필드를 사용하여 목록에서 적절한 IAM 역할을 찾아 선택합니다.

  10. 일정 생성을 선택하여 예약된 쿼리를 생성합니다.

AWS CLI
예약된 쿼리를 생성하려면(AWS CLI)
  • create-scheduled-query 명령을 사용하여 새 예약된 쿼리를 생성합니다.

    aws logs create-scheduled-query \ --name "ErrorAnalysisQuery" \ --query-language "CWLI" \ --query-string "fields @timestamp, @message | filter @message like /ERROR/ | stats count() by bin(5m)" \ --schedule-expression "cron(8 * * * ? *)" \ --execution-role-arn "arn:aws:iam::123456789012:role/CloudWatchLogsScheduledQueryRole" \ --log-group-identifiers "/aws/lambda/my-function" "/aws/apigateway/my-api" \ --state "ENABLED"
API
예약된 쿼리를 생성하려면(API)
  • CreateScheduledQuery 작업을 사용하여 새 예약된 쿼리를 생성합니다. 다음 예제에서는 1시간마다 실행되는 예약된 쿼리를 생성합니다.

    { "name": "ErrorAnalysisQuery", "queryLanguage": "CWLI", "queryString": "fields @timestamp, @message | filter @message like /ERROR/ | stats count() by bin(5m)", "scheduleExpression": "cron(8 * * * ? *)", "executionRoleArn": "arn:aws:iam::123456789012:role/CloudWatchLogsScheduledQueryRole", "logGroupIdentifiers": ["/aws/lambda/my-function", "/aws/apigateway/my-api"], "state": "ENABLED" }

예약된 쿼리를 생성한 후 예약된 쿼리 페이지에서 ListScheduledQueries API를 사용하여 해당 쿼리를 보고 관리할 수 있습니다.이 API에는 이름, 생성 날짜, 마지막 실행 상태, 마지막으로 트리거된 시간 및 반복 빈도와 함께 예약된 모든 쿼리가 표시됩니다.