AWS에서 서버리스 프레임워크를 사용할 때 CloudWatch 로그 보존 기간 제어
5510 단어 serverlesscloudawslambda
문제
서버리스 프레임워크로 Lambda 함수를 생성할 때 CloudWatch 로그가 생성되고 기본적으로 "never expire"로그 보존 기간이 있습니다. 이것은 몇 달이 지나면서 매우 비쌀 수 있으며 이러한 CloudWatch 로그를 저장하기 위해 비용을 지불하게 됩니다. 가격은 GB당 약 $0.03입니다. CloudWatch 요금에 대한 자세한 내용은 설명서https://aws.amazon.com/cloudwatch/pricing/를 참조하십시오.
이것은 많은 트래픽을 수신하는 함수의 경우 비용이 많이 들 수 있으며 실제로 작년의 기가바이트의 람다 함수 로그 데이터가 필요합니까? 사용 사례에 따라 그렇지 않을 수도 있습니다.
그것에 대해 무엇을 할 수 있습니까?
로그에 지출하는 금액을 줄이기 위한 몇 가지 솔루션은 다음과 같습니다.
CloudWatch에 로그인되는 데이터 양 줄이기
Lambda 함수에 디버깅에 사용되는 불필요한 로깅 문이 많이 있는 경우 프로덕션 환경에 존재할 필요가 없는 로그 항목입니다. 실행을 추적하기 위해 함수 코드 전체에 console.log/print 문이 필요하지 않습니다. 필요할 때만 기록
로그 보존 기간 줄이기
수동 접근
서버리스 프레임워크 또는 CloudFormation 외부에서 생성된 항목에 대한 로그 그룹인 경우 CloudWatch로 이동하여 AWS 콘솔에서 수동으로 수행할 수 있습니다.
로그로 이동하여 로그 그룹을 선택합니다.
원하는 로그 그룹을 클릭한 다음 작업을 클릭하고 보존 설정을 편집합니다.
그런 다음 다양한 날짜 목록에서 선택할 수 있습니다.
서버리스 프레임워크 접근 방식
Serverless Framework를 사용하는 경우 기능에 대해 자동으로 생성되는 로그이기 때문에 약간 덜 명확해집니다. Serverless.yml 파일에 정의되어 있지 않습니다.
간단한 HTTP 서버리스 함수 소스 코드( https://github.com/serverless/examples/tree/v3/aws-node-http-api )를 사용하여 예제를 살펴보겠습니다.
달리다 serverless deploy
숨겨진 serverless 폴더가 생성되며, cloudformation-template-update-stack.json
파일을 확인해보면 해당 기능에 대해 자동으로 생성된 로그 그룹이 있음을 알 수 있습니다.
항상 끝에 LogGroup
가 있는 함수의 카멜케이스 이름입니다.
serverless.yml 파일에 리소스 섹션을 추가하여 로그 보존 기간을 추가할 수 있습니다.
service: aws-node-rest-api
frameworkVersion: "2"
provider:
name: aws
runtime: nodejs12.x
lambdaHashingVersion: "20201221"
functions:
hello:
handler: handler.hello
events:
- http:
path: /
method: get
resources:
Resources:
HelloLogGroup:
Type: "AWS::Logs::LogGroup"
Properties:
RetentionInDays: "7"
서버리스 배포를 다시 실행하면 CloudFormation 템플릿에 로그 보존 기간이 추가되었음을 알 수 있습니다.
AWS 콘솔에서도 확인할 수 있습니다.
대청소
서버리스 애플리케이션을 배포한 경우 생성된 리소스를 삭제하는 것을 잊지 마십시오sls remove
.
이 패턴을 사용하여 원하는 대로 다른 속성을 편집할 수도 있습니다.
Reference
이 문제에 관하여(AWS에서 서버리스 프레임워크를 사용할 때 CloudWatch 로그 보존 기간 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/femilawal/controlling-cloudwatch-log-retention-period-when-using-serverless-framework-on-aws-3jdj
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
로그에 지출하는 금액을 줄이기 위한 몇 가지 솔루션은 다음과 같습니다.
CloudWatch에 로그인되는 데이터 양 줄이기
Lambda 함수에 디버깅에 사용되는 불필요한 로깅 문이 많이 있는 경우 프로덕션 환경에 존재할 필요가 없는 로그 항목입니다. 실행을 추적하기 위해 함수 코드 전체에 console.log/print 문이 필요하지 않습니다. 필요할 때만 기록
로그 보존 기간 줄이기
수동 접근
서버리스 프레임워크 또는 CloudFormation 외부에서 생성된 항목에 대한 로그 그룹인 경우 CloudWatch로 이동하여 AWS 콘솔에서 수동으로 수행할 수 있습니다.
로그로 이동하여 로그 그룹을 선택합니다.
원하는 로그 그룹을 클릭한 다음 작업을 클릭하고 보존 설정을 편집합니다.
그런 다음 다양한 날짜 목록에서 선택할 수 있습니다.
서버리스 프레임워크 접근 방식
Serverless Framework를 사용하는 경우 기능에 대해 자동으로 생성되는 로그이기 때문에 약간 덜 명확해집니다. Serverless.yml 파일에 정의되어 있지 않습니다.
간단한 HTTP 서버리스 함수 소스 코드( https://github.com/serverless/examples/tree/v3/aws-node-http-api )를 사용하여 예제를 살펴보겠습니다.
달리다
serverless deploy
숨겨진 serverless 폴더가 생성되며,
cloudformation-template-update-stack.json
파일을 확인해보면 해당 기능에 대해 자동으로 생성된 로그 그룹이 있음을 알 수 있습니다.항상 끝에
LogGroup
가 있는 함수의 카멜케이스 이름입니다.serverless.yml 파일에 리소스 섹션을 추가하여 로그 보존 기간을 추가할 수 있습니다.
service: aws-node-rest-api
frameworkVersion: "2"
provider:
name: aws
runtime: nodejs12.x
lambdaHashingVersion: "20201221"
functions:
hello:
handler: handler.hello
events:
- http:
path: /
method: get
resources:
Resources:
HelloLogGroup:
Type: "AWS::Logs::LogGroup"
Properties:
RetentionInDays: "7"
서버리스 배포를 다시 실행하면 CloudFormation 템플릿에 로그 보존 기간이 추가되었음을 알 수 있습니다.
AWS 콘솔에서도 확인할 수 있습니다.
대청소
서버리스 애플리케이션을 배포한 경우 생성된 리소스를 삭제하는 것을 잊지 마십시오sls remove
.
이 패턴을 사용하여 원하는 대로 다른 속성을 편집할 수도 있습니다.
Reference
이 문제에 관하여(AWS에서 서버리스 프레임워크를 사용할 때 CloudWatch 로그 보존 기간 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/femilawal/controlling-cloudwatch-log-retention-period-when-using-serverless-framework-on-aws-3jdj
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWS에서 서버리스 프레임워크를 사용할 때 CloudWatch 로그 보존 기간 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/femilawal/controlling-cloudwatch-log-retention-period-when-using-serverless-framework-on-aws-3jdj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)