Lambda 컨테이너 이미지 배포에서 Lambda Insights 활성화
컨테이너 이미지로 배포된 Lambda 함수에서 Lambda Insights를 사용하도록 설정하려면 Dockerfile에 줄을 추가하세요. 이 줄은 Lambda Insights 에이전트를 컨테이너 이미지의 확장 프로그램으로 설치합니다. 추가할 줄은 x86-64 컨테이너와 ARM64 컨테이너에 따라 다릅니다.
참고
Lambda Insights 에이전트는 Amazon Linux 2를 사용하는 Lambda 런타임에서만 지원됩니다.
x86-64 컨테이너 이미지 배포
x86-64 컨테이너에서 실행되는 컨테이너 이미지로 배포된 Lambda 함수에서 Lambda Insights를 사용하도록 설정하려면 Dockerfile에 다음 줄을 추가하세요. 이 줄은 Lambda Insights 에이전트를 컨테이너 이미지의 확장 프로그램으로 설치합니다.
RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \ rpm -U lambda-insights-extension.rpm && \ rm -f lambda-insights-extension.rpm
Lambda 함수를 생성한 후 [CloudWatchLambdaInsightsExecutionRolePolicy] IAM 정책을 함수의 실행 역할에 할당하면 Lambda Insights가 컨테이너 이미지 기반 Lambda 함수에서 사용하도록 설정됩니다.
참고
이전 버전의 Lambda Insights 익스텐션을 사용하려면 위 명령의 URL을 https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.1.0.111.0.rpm
URL로 바꿉니다. 현재 Lambda Insights 버전 1.0.111.0 이상만 사용할 수 있습니다. 자세한 내용은 사용 가능한 Lambda Insights 익스텐션 버전 단원을 참조하세요.
Linux 서버에서 Lambda Insights 에이전트 패키지의 서명을 확인하려면
다음 명령을 입력하여 퍼블릭 키를 다운로드합니다.
shell$
wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpg다음 명령을 입력하여 퍼블릭 키를 키링으로 가져옵니다.
shell$
gpg --import lambda-insights-extension.gpg출력은 다음과 비슷합니다. 다음 단계에서 필요하므로
key
값을 기록해 둡니다. 이 출력 예에서 키 값은848ABDC8
입니다.gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
다음 명령을 입력하여 지문을 확인합니다.
key-value
를 이전 단계의 키 값으로 바꿉니다.shell$
gpg --fingerprint key-value이 명령의 출력에서 지문 문자열은
E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
이어야 합니다. 문자열이 일치하지 않으면 에이전트를 설치하지 말고 AWS에 문의하세요.지문을 확인한 후 이를 사용하여 Lambda Insights 에이전트 패키지를 확인할 수 있습니다. 다음 명령을 입력하여 패키지 서명 파일을 다운로드합니다.
shell$
wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm.sig다음 명령을 입력하여 서명을 확인합니다.
shell$
gpg --verify lambda-insights-extension.rpm.sig lambda-insights-extension.rpm출력은 다음과 같아야 합니다.
gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8 gpg: Good signature from "Amazon Lambda Insights Extension" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
예상 출력에 신뢰할 수 있는 서명에 대한 경고가 있을 수 있습니다. 사용자 또는 사용자가 신뢰하는 사람이 서명한 키만 신뢰됩니다. 이는 서명이 잘못되었음을 의미하지 않으며, 단지 해당 사용자가 퍼블릭 키를 확인하지 않은 것입니다.
출력에
BAD signature
가 포함된 경우 단계를 올바르게 수행했는지 확인합니다.BAD signature
응답이 계속되는 경우 AWS에 문의하고, 다운로드한 파일을 사용하지 마세요.
x86-64 예
이 단원에는 컨테이너 이미지 기반 Python Lambda 함수에서 Lambda Insights를 사용 설정하는 예가 포함되어 있습니다.
Lambda 컨테이너 이미지에서 Lambda Insights를 사용 설정하는 예
다음과 유사한 Dockerfile을 생성합니다.
FROM public.ecr.aws/lambda/python:3.8 // extra lines to install the agent here RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \ rpm -U lambda-insights-extension.rpm && \ rm -f lambda-insights-extension.rpm COPY index.py ${LAMBDA_TASK_ROOT} CMD [ "index.handler" ]
다음과 유사한
index.py
라는 Python 파일을 생성합니다.def handler(event, context): return { 'message': 'Hello World!' }
Dockerfile 및
index.py
를 동일한 디렉터리에 넣습니다. 그런 다음, 해당 디렉터리에서 다음 단계를 실행함으로써 Docker 이미지를 구축하여 Amazon ECR에 업로드합니다.// create an ECR repository aws ecr create-repository --repository-name test-repository // build the docker image docker build -t test-image . // sign in to AWS aws ecr get-login-password | docker login --username AWS --password-stdin "${
ACCOUNT_ID
}".dkr.ecr."${REGION
}".amazonaws.com // tag the image docker tag test-image:latest "${ACCOUNT_ID
}".dkr.ecr."${REGION
}".amazonaws.com/test-repository:latest // push the image to ECR docker push "${ACCOUNT_ID
}".dkr.ecr."${REGION
}".amazonaws.com/test-repository:latest방금 생성한 Amazon ECR 이미지를 사용하여 Lambda 함수를 생성합니다.
[CloudWatchLambdaInsightsExecutionRolePolicy] IAM 정책을 함수의 실행 역할에 할당합니다.
ARM64 컨테이너 이미지 배포
AL2_aarch64 컨테이너(ARM64 아키텍처 사용)에서 실행되는 컨테이너 이미지로 배포된 Lambda 함수에서 Lambda Insights를 사용하도록 설정하려면 Dockerfile에 다음 줄을 추가하세요. 이 줄은 Lambda Insights 에이전트를 컨테이너 이미지의 확장 프로그램으로 설치합니다.
RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \ rpm -U lambda-insights-extension-arm64.rpm && \ rm -f lambda-insights-extension-arm64.rpm
Lambda 함수를 생성한 후 [CloudWatchLambdaInsightsExecutionRolePolicy] IAM 정책을 함수의 실행 역할에 할당하면 Lambda Insights가 컨테이너 이미지 기반 Lambda 함수에서 사용하도록 설정됩니다.
참고
이전 버전의 Lambda Insights 익스텐션을 사용하려면 위 명령의 URL을 https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.1.0.229.0.rpm
URL로 바꿉니다. 현재 Lambda Insights 버전 1.0.229.0 이상만 사용할 수 있습니다. 자세한 내용은 사용 가능한 Lambda Insights 익스텐션 버전 단원을 참조하십시오.
Linux 서버에서 Lambda Insights 에이전트 패키지의 서명을 확인하려면
다음 명령을 입력하여 퍼블릭 키를 다운로드합니다.
shell$
wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpg다음 명령을 입력하여 퍼블릭 키를 키링으로 가져옵니다.
shell$
gpg --import lambda-insights-extension.gpg출력은 다음과 비슷합니다. 다음 단계에서 필요하므로
key
값을 기록해 둡니다. 이 출력 예에서 키 값은848ABDC8
입니다.gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
다음 명령을 입력하여 지문을 확인합니다.
key-value
를 이전 단계의 키 값으로 바꿉니다.shell$
gpg --fingerprint key-value이 명령의 출력에서 지문 문자열은
E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
이어야 합니다. 문자열이 일치하지 않으면 에이전트를 설치하지 말고 AWS에 문의하세요.지문을 확인한 후 이를 사용하여 Lambda Insights 에이전트 패키지를 확인할 수 있습니다. 다음 명령을 입력하여 패키지 서명 파일을 다운로드합니다.
shell$
wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm.sig다음 명령을 입력하여 서명을 확인합니다.
shell$
gpg --verify lambda-insights-extension-arm64.rpm.sig lambda-insights-extension-arm64.rpm출력은 다음과 같아야 합니다.
gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8 gpg: Good signature from "Amazon Lambda Insights Extension" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8
예상 출력에 신뢰할 수 있는 서명에 대한 경고가 있을 수 있습니다. 사용자 또는 사용자가 신뢰하는 사람이 서명한 키만 신뢰됩니다. 이는 서명이 잘못되었음을 의미하지 않으며, 단지 해당 사용자가 퍼블릭 키를 확인하지 않은 것입니다.
출력에
BAD signature
가 포함된 경우 단계를 올바르게 수행했는지 확인합니다.BAD signature
응답이 계속되는 경우 AWS에 문의하고, 다운로드한 파일을 사용하지 마세요.
ARM64 예
이 단원에는 컨테이너 이미지 기반 Python Lambda 함수에서 Lambda Insights를 사용 설정하는 예가 포함되어 있습니다.
Lambda 컨테이너 이미지에서 Lambda Insights를 사용 설정하는 예
다음과 유사한 Dockerfile을 생성합니다.
FROM public.ecr.aws/lambda/python:3.8 // extra lines to install the agent here RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \ rpm -U lambda-insights-extension-arm64.rpm && \ rm -f lambda-insights-extension-arm64.rpm COPY index.py ${LAMBDA_TASK_ROOT} CMD [ "index.handler" ]
다음과 유사한
index.py
라는 Python 파일을 생성합니다.def handler(event, context): return { 'message': 'Hello World!' }
Dockerfile 및
index.py
를 동일한 디렉터리에 넣습니다. 그런 다음, 해당 디렉터리에서 다음 단계를 실행함으로써 Docker 이미지를 구축하여 Amazon ECR에 업로드합니다.// create an ECR repository aws ecr create-repository --repository-name test-repository // build the docker image docker build -t test-image . // sign in to AWS aws ecr get-login-password | docker login --username AWS --password-stdin "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com // tag the image docker tag test-image:latest "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest // push the image to ECR docker push "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
방금 생성한 Amazon ECR 이미지를 사용하여 Lambda 함수를 생성합니다.
[CloudWatchLambdaInsightsExecutionRolePolicy] IAM 정책을 함수의 실행 역할에 할당합니다.