Amazon Managed Service for Apache Flink는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려졌습니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Managed Service for Apache Flink에서 애플리케이션 로깅 설정
Managed Service for Apache Flink 애플리케이션에 Amazon CloudWatch 로깅 옵션을 추가하여 애플리케이션 이벤트 또는 구성 문제를 모니터링할 수 있습니다.
이 주제에서는 CloudWatch Logs 스트림에 애플리케이션 이벤트를 작성하도록 애플리케이션을 구성하는 방법을 설명합니다. CloudWatch 로깅 옵션은 애플리케이션이 애플리케이션 이벤트를 CloudWatch Logs에 쓰는 방법을 구성하는 데 사용하는 애플리케이션 설정 및 권한의 모음입니다. AWS Management Console 또는 ()를 사용하여 CloudWatch 로깅 옵션을 추가하고 구성할 수 있습니다 AWS Command Line Interface AWS CLI.
애플리케이션에 CloudWatch 로깅 옵션을 추가하는 방법은 다음과 같습니다.
-
콘솔을 사용하여 CloudWatch 로깅 옵션을 추가하면 Managed Service for Apache Flink가 CloudWatch 로그 그룹과 로그 스트림을 생성하고 애플리케이션이 로그 스트림에 작성하는 데 필요한 권한을 추가합니다.
-
를 사용하여 CloudWatch 로깅 옵션을 추가할 때는 애플리케이션의 로그 그룹 및 로그 스트림도 생성하고 애플리케이션이 로그 스트림에 작성하는 데 필요한 권한을 추가API해야 합니다.
콘솔을 사용하여 CloudWatch 로깅 설정
콘솔에서 애플리케이션에 대한 CloudWatch 로깅을 활성화하면 CloudWatch 로그 그룹과 로그 스트림이 생성됩니다. 또한 스트림에 쓸 수 있는 권한으로 애플리케이션의 권한 정책이 업데이트됩니다.
Managed Service for Apache Flink는 다음 규칙을 사용하여 라는 로그 그룹을 생성합니다.ApplicationName
는 애플리케이션의 이름입니다.
/AWS/KinesisAnalytics/
ApplicationName
Managed Service for Apache Flink는 새 로그 그룹에 다음과 같은 이름으로 로그 스트림을 생성합니다.
kinesis-analytics-log-stream
애플리케이션 구성 페이지의 모니터링 로그 수준 섹션을 사용하여 애플리케이션 모니터링 지표 수준 및 모니터링 로그 수준을 설정합니다. 애플리케이션 로그 수준에 대한 자세한 내용은 애플리케이션 모니터링 수준 제어 섹션을 참조하세요.
를 사용하여 CloudWatch 로깅 설정 CLI
를 사용하여 CloudWatch 로깅 옵션을 추가하려면 다음을 AWS CLI수행합니다.
-
CloudWatch 로그 그룹 및 로그 스트림을 생성합니다.
-
CreateApplication 작업을 사용하여 애플리케이션을 생성할 때 로깅 옵션을 추가하거나 작업을 사용하여 기존 애플리케이션에 로깅 옵션을 추가합니다AddApplicationCloudWatchLoggingOption.
-
애플리케이션 정책에 로그에 쓸 수 있는 권한을 추가합니다.
CloudWatch 로그 그룹 및 로그 스트림 생성
CloudWatch 로그 콘솔 또는 를 사용하여 CloudWatch 로그 그룹을 생성하고 스트리밍합니다API. CloudWatch 로그 그룹 및 로그 스트림 생성에 대한 자세한 내용은 로그 그룹 및 로그 스트림 작업을 참조하세요.
애플리케이션 CloudWatch 로깅 옵션 작업
다음 API 작업을 사용하여 새 또는 기존 애플리케이션에 CloudWatch 로그 옵션을 추가하거나 기존 애플리케이션에 대한 로그 옵션을 변경합니다. API 작업에 대한 입력에 JSON 파일을 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요Managed Service for Apache Flink API 예제 코드.
애플리케이션 생성 시 CloudWatch 로그 옵션 추가
다음 예제에서는 애플리케이션을 생성할 때 CreateApplication
작업을 사용하여 CloudWatch 로그 옵션을 추가하는 방법을 보여줍니다. 예제에서 를 바꿉니다.Amazon Resource Name
(ARN) of the CloudWatch Log stream to add to the new
application
자신의 정보를 사용합니다. 이러한 작업에 대한 자세한 내용은 CreateApplication
섹션을 참조하세요.
{ "ApplicationName": "test", "ApplicationDescription": "test-application-description", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation":{ "BucketARN": "arn:aws:s3:::amzn-s3-demo-bucket", "FileKey": "myflink.jar" } }, "CodeContentType": "ZIPFILE" } }, "CloudWatchLoggingOptions": [{ "LogStreamARN": "
<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>
" }] }
기존 애플리케이션에 CloudWatch 로그 옵션 추가
다음 예제에서는 AddApplicationCloudWatchLoggingOption
작업을 사용하여 기존 애플리케이션에 CloudWatch 로그 옵션을 추가하는 방법을 보여줍니다. 예제에서 각각을 바꿉니다.user input placeholder
자신의 정보를 사용합니다. 이러한 작업에 대한 자세한 내용은 AddApplicationCloudWatchLoggingOption
섹션을 참조하세요.
{ "ApplicationName": "
<Name of the application to add the log option to>
", "CloudWatchLoggingOption": { "LogStreamARN": "<ARN of the log stream to add to the application>
" }, "CurrentApplicationVersionId":<Version of the application to add the log to>
}
기존 CloudWatch 로그 옵션 업데이트
다음 예제에서는 UpdateApplication
작업을 사용하여 기존 CloudWatch 로그 옵션을 수정하는 방법을 보여줍니다. 예제에서 각각을 바꿉니다.user input placeholder
자신의 정보를 사용합니다. 이러한 작업에 대한 자세한 내용은 UpdateApplication
섹션을 참조하세요.
{ "ApplicationName": "
<Name of the application to update the log option for>
", "CloudWatchLoggingOptionUpdates": [ { "CloudWatchLoggingOptionId": "<ID of the logging option to modify>
", "LogStreamARNUpdate": "<ARN of the new log stream to use>
" } ], "CurrentApplicationVersionId":<ID of the application version to modify>
}
애플리케이션에서 CloudWatch 로그 옵션 삭제
다음 예제에서는 DeleteApplicationCloudWatchLoggingOption
작업을 사용하여 기존 CloudWatch 로그 옵션을 삭제하는 방법을 보여줍니다. 예제에서 각각을 바꿉니다.user input
placeholder
자신의 정보를 사용합니다. 이러한 작업에 대한 자세한 내용은 DeleteApplicationCloudWatchLoggingOption
섹션을 참조하세요.
{ "ApplicationName": "
<Name of application to delete log option from>
", "CloudWatchLoggingOptionId": "<ID of the application log option to delete>
", "CurrentApplicationVersionId":<Version of the application to delete the log option from>
}
애플리케이션 로깅 수준 설정
애플리케이션 로깅 수준을 설정하려면 CreateApplication
작업의 MonitoringConfiguration
파라미터 또는 UpdateApplication
작업의 MonitoringConfigurationUpdate
파라미터를 사용합니다.
애플리케이션 로그 수준에 대한 자세한 내용은 애플리케이션 모니터링 수준 제어 섹션을 참조하세요.
애플리케이션 생성 시 애플리케이션 로깅 수준 설정
다음 예제의 CreateApplication
요청은 애플리케이션 로그 수준을 INFO
로 설정합니다.
{ "ApplicationName": "MyApplication", "ApplicationDescription": "My Application Description", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::amzn-s3-demo-bucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": "MonitoringConfiguration": { "ConfigurationType": "CUSTOM", "LogLevel": "INFO" } }, "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole" }
애플리케이션 로깅 수준 업데이트
다음 예제의 UpdateApplication
요청은 애플리케이션 로그 수준을 INFO
로 설정합니다.
{ "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "LogLevelUpdate": "INFO" } } } }
CloudWatch 로그 스트림에 쓸 수 있는 권한 추가
Managed Service for Apache Flink에는 잘못된 구성 오류를 에 쓸 수 있는 권한이 필요합니다 CloudWatch. Managed Service for Apache Flink가 수임하는 AWS Identity and Access Management (IAM) 역할에 이러한 권한을 추가할 수 있습니다.
Managed Service for Apache Flink에 대한 IAM 역할 사용에 대한 자세한 내용은 섹션을 참조하세요Amazon Managed Service for Apache Flink의 자격 증명 및 액세스 관리.
신뢰 정책
Managed Service for Apache Flink에 IAM 역할을 수임할 수 있는 권한을 부여하려면 다음 신뢰 정책을 서비스 실행 역할에 연결할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kinesisanlaytics.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
권한 정책
Managed Service for Apache Flink 리소스 CloudWatch 에서 로그 이벤트를 에 쓸 수 있는 권한을 애플리케이션에 부여하려면 다음 IAM 권한 정책을 사용할 수 있습니다. 로그 그룹 및 스트림에 대한 올바른 Amazon 리소스 이름(ARNs)을 제공합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt0123456789000", "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:log-stream:my-log-stream*", "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:*", "arn:aws:logs:us-east-1:123456789012:log-group:*", ] } ] }
애플리케이션 모니터링 수준 제어
애플리케이션의 모니터링 지표 수준 및 모니터링 로그 수준을 사용하여 애플리케이션 로그 메시지 생성을 제어할 수 있습니다.
애플리케이션의 모니터링 지표 수준은 로그 메시지의 세분성을 제어합니다. 모니터링 지표 수준은 다음과 같이 정의됩니다.
-
애플리케이션: 지표의 범위는 전체 애플리케이션으로 지정됩니다.
-
작업: 지표의 범위는 각 작업별로 지정됩니다. 작업에 대한 자세한 내용은 Managed Service for Apache Flink에서 애플리케이션 확장 구현 섹션을 참조하세요.
-
연산자: 지표의 범위는 각 연산자별로 지정됩니다. 연산자에 대한 자세한 내용은 를 사용하여 Managed Service for Apache Flink의 연산자를 사용하여 데이터 변환 DataStream API 섹션을 참조하세요.
-
병렬 처리: 지표의 범위는 애플리케이션 병렬 처리로 지정됩니다. 이 지표 수준은 UpdateApplication 의 MonitoringConfigurationUpdate 파라미터를 통해서만 설정할 수 있습니다API. 콘솔을 사용하여 이 지표 수준을 설정할 수는 없습니다. 병렬 처리에 대한 자세한 내용은 Managed Service for Apache Flink에서 애플리케이션 확장 구현 섹션을 참조하세요
애플리케이션의 모니터링 로그 수준은 애플리케이션 로그의 상세 정보를 제어합니다. 모니터링 로그 수준은 다음과 같이 정의됩니다.
-
오류: 애플리케이션의 잠재적 재해 이벤트.
-
경고: 애플리케이션의 잠재적으로 위험한 상황입니다.
-
정보: 애플리케이션의 정보 및 일시적 오류 이벤트. 이 로그 수준을 사용하는 것이 좋습니다.
-
디버그: 애플리케이션을 디버깅하는 데 가장 유용한 세분화된 정보 이벤트입니다. 참고: 이 수준은 임시 디버깅 용도로만 사용하세요.
로깅 모범 사례 적용
애플리케이션에서는 정보 로깅 수준을 사용하는 것이 좋습니다. 오류 수준이 아닌 정보 수준에서 기록되는 Apache Flink 오류가 표시되도록 하려면 이 수준을 사용하는 것이 좋습니다.
애플리케이션 문제를 조사하는 동안에는 디버그 수준을 일시적으로만 사용하는 것이 좋습니다. 문제가 해결되면 정보 수준으로 다시 전환하세요. 디버그 로깅 수준을 사용하면 애플리케이션 성능이 크게 영향을 받습니다.
과도한 로깅은 애플리케이션 성능에도 상당한 영향을 미칠 수 있습니다. 예를 들어 처리된 모든 레코드에 대해 로그 항목을 작성하지 않는 것이 좋습니다. 과도한 로깅은 데이터 처리에 심각한 병목 현상을 일으킬 수 있으며, 소스에서 데이터를 읽는 데 배압이 발생할 수 있습니다.
로깅 문제 해결 수행
애플리케이션 로그가 로그 스트림에 기록되지 않는 경우 다음을 확인하세요.
-
애플리케이션의 IAM 역할 및 정책이 올바른지 확인합니다. 로그 스트림에 액세스하려면 애플리케이션 정책에 다음과 같은 권한이 필요합니다.
logs:PutLogEvents
logs:DescribeLogGroups
logs:DescribeLogStreams
자세한 내용을 알아보려면 CloudWatch 로그 스트림에 쓸 수 있는 권한 추가 섹션을 참조하세요.
-
애플리케이션이 실행 중인지 확인합니다. 애플리케이션 상태를 확인하려면 콘솔에서 애플리케이션 페이지를 보거나 DescribeApplication 또는 ListApplications 작업을 사용합니다.
-
와 같은 CloudWatch 지표를 모니터링
downtime
하여 다른 애플리케이션 문제를 진단합니다. CloudWatch 지표 읽기에 대한 자세한 내용은 섹션을 참조하세요.
CloudWatch Logs Insights 사용
애플리케이션에서 CloudWatch 로깅을 활성화한 후 CloudWatch Logs Insights를 사용하여 애플리케이션 로그를 분석할 수 있습니다. 자세한 내용은 로그 인사이트를 통한 CloudWatch 로그 분석 단원을 참조하십시오.