• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

AWS Lambda 모니터링 소개

조직이 AWS Lambda를 사용하여 FaaS(Function-as-a-Service) 아키텍처로 전환함에 따라 원활하고 효율적인 사용자 경험을 보장하려면 기능 성능을 이해하고 최적화하는 것이 중요해졌습니다. 각 Lambda 호출은 잠재적인 병목 현상, 병목지점 또는 개선 기회를 나타냅니다.

AWS Lambda 용 뉴렐릭의 일러스트레이션은 함수의 내부 작동에 대한 심층적인 가시성을 제공합니다. 뉴렐릭 에이전트를 함수에 추가하면 함수가 호출될 때마다 뉴렐릭도 호출됩니다. 지속 시간, 콜드 스타트, 예외, 역추적과 같은 주요 성능 지수를 인사이트에서 얻을 수 있습니다.

이 문서에서는 뉴렐릭의 Lambda 모니터링에 대해 설명하고 AWS 와 뉴렐릭 계정을 연결하는 방법을 안내합니다. 함수를 소비하기 전에 계정을 연결해야 합니다.

Lambda 계측 작동 방식

뉴렐릭을 사용한 AWS Lambda 의 필수 요소는 다음과 같습니다.

  • 귀하의 기능: 귀하의 기능은 이해하려는 코드입니다. 언제 오류가 발생하는지, 왜 느린지, 얼마나 자주 호출되는지 알고 싶습니다.
  • 뉴렐릭 에이전트 또는 SDK: 뉴렐릭은 함수가 작성된 언어에 따라 다양한 에이전트 또는 SDK를 제공합니다. 그 임무는 코드를 실제로 모니터링하는 것입니다. 함수 호출 기간을 측정하고, 발생한 오류를 기록하고, 소스 이벤트에 대한 세부 정보와 함수 응답을 기록합니다. 이렇게 하려면 Lambda 호출 핸들러 함수를 래핑해야 합니다.
  • 뉴렐릭 Lambda 확장 기능: 함수에서 뉴렐릭 Lambda 확장 프로그램을 사용하면 코드와 함께 Lambda 실행 환경 내에서 실행됩니다. 요원이 모아서 뉴렐릭의 백앤드에게 일괄적으로 보내는 텔메트리를 강화한 것입니다. 또한 함수의 로그를 뉴렐릭으로 보낼 수도 있습니다. 블루렐릭으로 함수를 모니터링하는 데에는 Lambda 확장이 필요하지 않습니다.

배송 방법을 선택하세요

뉴렐릭 AWS Lambda 설명서를 배송하는 방법에는 세 가지가 있습니다. 선택하는 배송 방법은 데이터 요구 사항에 따라 다릅니다.

  • 비용: AWS Lambda 사용하여 결제하는 가장 비용 효율적인 방법은 Lambda 확장을 포함하는 모든 레이어를 사용하는 것입니다. 기본적으로 확장 프로그램은 AWS CloudWatch로 데이터를 전송하지 않습니다.
  • 안정성: CloudWatch를 통해서만 데이터를 전송할 수 있습니다. 이를 위해 블루렐릭 Lambda 확장 프로그램을 비활성화합니다. 이는 Lambda 함수가 더 가벼워지고 호출 시 실행할 추가 프로세스가 없다는 것을 의미합니다. 이 경우, 쿠쿠와 페이로드는 확장 프로그램이 아닌 CloudWatch를 통해 뉴렐릭으로 배송됩니다.
  • 두 가지 장점 모두: AWS CloudWatch와 함께 확장 기능을 대체 수단으로 사용하면 비용을 절감하는 동시에 확장 기능에 문제가 있을 경우 안전 장치를 제공할 수 있습니다.

우리는 HTML 문서의 각 메서드를 사용하여 Lambda 함수를 로그아웃하는 방법을 보여드리겠습니다.

시작하기 전에

Lambda 계층을 사용하여 서버리스 모니터링을 활성화하려면 다음이 필요합니다.

  1. 관리자 역할이 있거나 Infrastructure manager [출력 관리자]추가 기능 역할이 있는 뉴렐릭 계정.

  2. .

  3. IAM 리소스, 관리형 암호 및 Lambda를 생성할 수 있는 권한이 있는 AWS 계정. CloudFormation 스택 및 S3 버킷을 생성하기 위한 권한도 필요합니다.

그런 다음 다음을 완료해야 합니다.

  1. aws configure 사용하여AWS CLI v2 구성을 설치합니다. AWS 액세스 키 ID와 AWS 비밀 액세스 키가 필요합니다.

  2. Python 버전 3.3 이상을 설치합니다.

  3. newrelic-lambda CLI를 설치합니다. 설치하려면 다음을 실행하세요.

    bash
    $
    pip3 install newrelic-lambda-cli
  4. 기본적으로 AWS 관리형 정책 ReadOnlyAccess 을 사용합니다. 이를 통해 인프라 통합은 Lambda 함수 및 CloudWatch 지표뿐만 아니라 계정의 모든 리소스를 볼 수 있습니다. 뉴렐릭은 이 기본값을 권장하지만 일부 조직은 타사 통합에 대해 엄격한 보안 태세를 선호한다는 것을 알고 있습니다. 뉴렐릭의 액세스를 제한하려면 최소한 다음 권한으로 IAM 역할을 부여할 수 있습니다.

Resource: "*"
Action:
- "cloudwatch:GetMetricStatistics"
- "cloudwatch:ListMetrics"
- "cloudwatch:GetMetricData"
- "lambda:GetAccountSettings"
- "lambda:ListFunctions"
- "lambda:ListAliases"
- "lambda:ListTags"
- "lambda:ListEventSourceMappings"
  1. CLI를 실행하기 전에 뉴렐릭에게 AWS 에서 최소한 다음 권한을 부여해야 합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CLIAccessPolicy",
"Action": [
"cloudformation:CreateChangeSet",
"cloudformation:CreateStack",
"cloudformation:DescribeStacks",
"cloudformation:ExecuteChangeSet",
"iam:AttachRolePolicy",
"iam:CreateRole",
"iam:GetRole",
"iam:PassRole",
"lambda:AddPermission",
"lambda:CreateFunction",
"lambda:GetFunction",
"logs:DeleteSubscriptionFilter",
"logs:DescribeSubscriptionFilters",
"logs:PutSubscriptionFilter",
"s3:GetObject",
"serverlessrepo:CreateCloudFormationChangeSet",
"secretsmanager:CreateSecret"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Sid": "NRLogAccessPolicy",
"Effect": "Allow",
"Action": [
"serverlessrepo:CreateCloudFormationTemplate",
"serverlessrepo:GetCloudFormationTemplate"
],
"Resource": "arn:aws:serverlessrepo:us-east-1:463657938898:applications/NewRelic-log-ingestion"
}
]
}

CLI에 대해 자세히 알아보려면 CLI 리포지터리를 참조하세요.

다음 런타임을 권장합니다.

  • Node.js: nodejs16.x , nodejs18.x , nodejs20.x
  • 파이썬: python3.8, python3.9, python3.10, python3.11, python3.12
  • 가다: provided.al2
  • 자바: java8.al2, java11, java17
  • 루비: ruby3.2, ruby3.3
  • .NET: dotnet6, dotnet8

비용을 고려하세요

AWS Lambda에 대한 서버리스 모니터링을 활성화하면 Amazon Web Services 요금이 발생할 수 있습니다. 귀하의 Lambda 데이터를 당사에 보고하는 당사의 newrelic-log-ingestion Lambda 함수는 제3자 서비스 로 간주됩니다. 귀하가 이를 사용하여 발생하는 AWS 요금은 귀하의 책임입니다.

Lambda Extension을 사용하면 뉴렐릭이 수집한 텔렘리에 대한 CloudWatch 로그 수집 요금을 피할 수 있습니다.

함수를 업로드하기 전에 AWS 계정을 뉴렐릭에 연결해야 합니다. 계정을 연결하면 뉴렐릭에게 AWS 계정의 인벤토리를 생성하고 Lambda 함수에 대한 CloudWatch 지표를 자동으로 수집할 수 있는 권한이 부여됩니다. 계정을 연결하면 AWS 계정의 리소스가 엔터티 탐색기에 엔터티로 표시됩니다.

반응하다 뉴렐릭의 newrelic-lambda CLI를 사용한 Lambda 레이어

리소스화하기 뉴렐릭의 Lambda 레이어로 이동하려면 다음을 실행하세요.

bash
$
newrelic-lambda integrations install --nr-account-id YOUR_NR_ACCOUNT_ID \
>
--nr-api-key YOUR_NEW_RELIC_USER_KEY

newrelic-lambda CLI는 보안 강화를 위해 AWS Secret Manager 에 뉴렐릭을 보안 비밀로 추가합니다.

지표 스트림 설치

뉴렐릭이 Lambda 함수를 모니터링하려면 지표 스트림 또는 API Polling을 설치해야 합니다. 지표 Streams를 사용하는 것이 좋지만 CLI가 자동으로 API 폴링 통합을 설치하도록 할 수도 있습니다.

지표 Streams를 사용하려면 CLI를 실행하기 전에 지금 설치하세요. 메트릭 스트림 설명서를 사용하여 Connect AWS 통합을 사용하여 이를 설치할 수 있습니다.

환경 변수

CLI를 사용하여 리소스를 사용하면 환경 변수가 자동으로 구성됩니다. 일부 기본 설정을 변경하고 모니터링 요구 사항에 맞는 환경 변수로 Lambda 함수를 구성할 수 있습니다. 사용 가능한 환경 변수와 기본 설정에 대한 권장 사항을 보려면 런타임을 선택하세요.

예제 함수를 사용해 보세요

로그된 뉴렐릭의 Lambda 레이어를 사용한 후에는 예제 함수를 시험해 볼 것을 강력히 권장합니다. 이러한 작업 예제는 사용자 서버리스 기능의 시작점으로 사용되어야 합니다. 이러한 예제를 사용하면 뉴렐릭 Lambda 레이어에 익숙해지고 계정 링크를 테스트하는 데 도움이 될 수 있으며 자체 로그에 대한 참조로 사용할 수 있습니다. 각 예에서는 권한 추가, 핸들러 래핑을 위한 런타임별 기술, CloudWatch에서 함수 로그 보존 관리 등을 보여줍니다.

배포하다 Lambda 함수를 관리하고 구현하는 방법에는 여러 가지가 있지만, AWS CloudFormation은 예제에 사용하는 메커니즘입니다.

우리의 예제는 뉴렐릭 Lambda Extension과 함께 이 GitHub 에 게시되어 있습니다. 뉴렐릭이 지원하는 각 Lambda 런타임마다 하나씩 있습니다.

  • 노드.js

  • 파이썬

  • 가다

  • 자바

  • 루비

  • .그물

    또한 우리의 수신 거부 예제 에서 서버리스 서버리스로 작업을 수행하는 방법을 배울 수 있습니다. Node, Python, Ruby 및 Java 기능을 사용하여 Lambda 함수를 호출할 수 있는 가장 인기 있는 두 가지 서비스인 SQS 및 SNS에 대한 수동 트레이스 전파를 보여줍니다.

    수동으로 테스트하는 경우 텔레메트리 데이터가 지연될 수 있습니다. 함수를 다시 호출하기 전에 7초 동안 기다려서 버퍼링된 모든 텔레메트리가 전달될 수 있도록 하는 것이 좋습니다.

문제점 해결

Lambda 함수에서 문제가 발생한 경우 다음은 몇 가지 일반적인 문제 해결 팁입니다.

무엇 향후 계획

Containerized Lambda functions

Lambda 함수를 컨테이너화한 경우 여기를 클릭하여 로그아웃하세요.

Non-containerized Lambda functions

컨테이너화되지 않은 Lambda 함수가 있는 경우 여기를 클릭하여 리소스를 다운로드하세요.

Layerless Lambda functions

레이어 없는 Lambda 함수가 있는 경우 여기를 클릭하여 로그아웃하세요.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.