Amazon Web Services 한국 블로그

AWS Lambda Extensions 정식 출시 – 자주 사용하는 외부 운영 도구 연동하기

2020년 10월, AWS는 모니터링, 관찰 가능성, 보안, 거버넌스에 가장 자주 사용하는 도구와 Lambda 함수를 쉽게 통합하는 데 사용할 수 있는 AWS Lambda Extensions (확장 프로그램) 평가판을 발표했습니다.

오늘 저는 새로운 성능 향상 및 확장된 파트너 세트와 함께 제공되는 AWS Lambda 확장 프로그램의 정식 버전을 발표합니다. 정식 출시의 일부로 AWS는 포함된 확장 프로그램이 완료될 때까지 기다리지 않고 함수 코드가 완료되는 즉시 응답을 보낼 수 있는 기능을 제공합니다. 이렇게 하면 확장 프로그램은 함수의 응답이 반환된 후 기본 설정 대상으로 원격 분석을 보내는 것과 같은 작업을 수행할 수 있습니다. 또한 Imperva, Instana, Sentry, Site24x7, AWS Distro for OpenTelemetry 등 새로운 파트너의 확장 프로그램도 환영합니다.

함수 호출 전, 도중 및 후에 진단 정보를 캡처하고 코드를 변경할 필요 없이 코드를 자동으로 계측하며 함수 호출 전에 구성 설정 또는 암호를 가져오고 보안 에이전트를 통해 함수 활동을 감지 및 경고하며 Lambda 함수에서 직접 및 비동기적으로 Amazon Simple Storage Service(Amazon S3), Amazon Kinesis, Amazon Elasticsearch Service와 같은 사용자 지정 대상에 원격 분석을 전송하는 등의 사용 사례에 Lambda 확장 프로그램을 사용할 수 있습니다.

고객은 서버리스의 비전에 이끌립니다. 운영 책임이 줄어들어 비즈니스 문제에 집중할 수 있습니다. 고객이 함수를 모니터링, 관찰, 보호, 관리할 수 있도록 지원하기 위해 AWS Lambda는 Amazon CloudWatch를 통한 로그 및 지표, AWS X-Ray를 통한 트레이싱, AWS Config를 통한 구성 변경 추적, AWS CloudTrail을 통한 API 호출 기록을 위한 기본 통합을 제공합니다. 또한 AWS Lambda 파트너는 애플리케이션 관리, API 통합, 배포, 모니터링 및 보안을 위한 도구를 제공합니다.

AWS Lambda 확장 프로그램은 함수 코드가 실행되는 Lambda 실행 환경을 확장할 수 있는 간단한 방법을 제공합니다. AWS 고객, 파트너 및 오픈 소스 커뮤니티는 새로운 Lambda Extensions API를 사용하여 Lambda 함수의 기능을 강화하는 동반 프로세스인 자체 확장 프로그램을 빌드할 수 있습니다. 자체 확장 프로그램을 빌드하는 방법을 알아보려면 AWS Lambda 확장 프로그램 빌드 – 평가판 블로그 게시물을 참조하세요. 이 게시물에는 Lambda 수명 주기 변경 사항에 대한 정보도 포함되어 있습니다.

AWS Lambda 확장 프로그램의 작동 방식
AWS Lambda 확장 프로그램은 복잡한 설치 또는 구성 관리 없이 현재 사용하는 도구에 가장 쉽게 연결할 수 있도록 설계되었습니다. Lambda 계층을 사용하여 함수에 도구를 추가하거나 컨테이너 이미지로 배포된 함수의 이미지에 도구를 포함할 수 있습니다.

Lambda 확장 프로그램은 Extensions API를 사용하여 함수 및 실행 환경 수명 주기 이벤트에 등록합니다. 이러한 이벤트에 대한 응답으로 확장 프로그램은 새 프로세스를 시작하거나 로직을 실행할 수 있습니다. 또한 Lambda 확장 프로그램은 Runtime Logs API를 사용하여 Lambda 서비스가 Lambda 실행 환경에서 직접 Amazon CloudWatch로 보내는 동일한 로그 스트림을 구독할 수도 있습니다. Lambda가 로그를 확장 프로그램으로 스트리밍하면 확장 프로그램은 로그를 처리 및 필터링하고 기본 설정 대상으로 보낼 수 있습니다.

대부분의 고객은 Extensions API의 기능에 관해 알 필요 없이 Lambda 확장 프로그램을 사용합니다. Lambda 함수의 옵션을 구성함으로써 확장 프로그램 기능을 사용할 수 있습니다.

Lambda 확장 프로그램을 사용하는 방법
Lambda 콘솔, AWS 명령줄 인터페이스(CLI) 또는 AWS CloudFormation, AWS Serverless Application Model(AWS SAM) 및 Terraform과 같은 IaC(Infrastructure as Code) 서비스 및 도구를 사용하여 확장 프로그램을 설치하고 관리할 수 있습니다.

Lambda 확장 프로그램을 사용하여 기존 도구를 Lambda 함수와 통합하려면 Lambda 함수를 선택하고 [구성(Configuration)] 탭에서 [모니터링 및 작업 도구(Monitoring and Operations tools)]를 선택하면 됩니다.

[확장 프로그램(Extensions)] 페이지에서 AWS Lambda 파트너가 제공하는 확장 프로그램을 찾을 수 있습니다. 해당 설치 지침을 확인하려면 확장 프로그램을 선택합니다.

AWS Lambda 확장 프로그램 파트너
이번 출시에서 Lambda 확장 프로그램은 해당 확장 프로그램을 소개하기 위해 다음과 같은 정보를 제공한 AWS Lambda 파트너와 통합됩니다. (게시된 링크로 이 문서를 업데이트하고 있습니다.)

  • AppDynamics는 AWS Lambda를 위한 엔드 투 엔드 트랜잭션 트레이싱을 제공합니다. AppDynamics 확장 프로그램을 사용하면 개발자가 더 이상 AppDynamics 트레이서를 함수 코드의 종속성으로 포함할 필요가 없으므로 하이브리드 아키텍처 전체에서 훨씬 더 간단하게 트랜잭션을 추적할 수 있습니다.
  • Coralogix는 수천 개의 기업이 보안을 개선하고 소프트웨어 제공을 가속화할 수 있도록 지원하는 로그 분석 및 클라우드 보안 플랫폼으로, 기업은 이 플랫폼을 통해 노이즈에 대한 비용을 지급하지 않고도 심층적인 인사이트를 얻을 수 있습니다. 이제 Coralogix는 CloudWatch 또는 Amazon S3를 사용하지 않고도 Lambda 함수 로그 및 지표를 직접 읽을 수 있으므로 지연 시간과 관찰 비용을 줄일 수 있습니다.
  • Datadog 확장 프로그램은 서버리스 애플리케이션에 대한 포괄적인 실시간 가시성을 제공합니다. AWS와 Datadog의 통합을 결합하면 규모와 관계없이 문제를 모니터링, 감지, 해결하는 데 도움이 되는 지표, 트레이스, 로그를 얻을 수 있습니다. Datadog 확장 프로그램을 사용하면 그 어느 때보다 더 쉽게 서버리스 워크로드에서 원격 분석을 얻을 수 있습니다.
  • Dynatrace 확장 프로그램을 사용하면 지능형 관찰 및 자동 근본 원인 감지를 위해 AWS Lambda 지표 및 트레이스를 Dynatrace 플랫폼으로 훨씬 더 쉽게 가져올 수 있습니다. 코드 변경 없이 스위치를 켜는 것만으로 포괄적인 엔드 투 엔드 관찰이 가능합니다.
  • Epsagon은 Lambda 함수의 모니터링, 문제 해결, 비용 절감을 지원합니다. Epsagon 확장 프로그램은 함수에 미치는 성능 영향을 최소화하면서 Epsagon 서비스에 트레이스를 보내는 오버헤드를 줄입니다.
  • HashiCorp Vault를 사용하면 애플리케이션의 암호 및 민감한 데이터에 대한 액세스를 보호하고 저장하며 엄격하게 제어할 수 있습니다. 이제 Vault 확장 프로그램을 사용하면 Lambda 함수가 호출되기 전에 동적 암호를 인증하고 안전하게 검색할 수 있습니다.
  • Honeycomb은 프로덕션 앱 스택 전체를 디버깅할 수 있도록 지원하는 강력한 관찰 가능성 도구입니다. Honeycomb 확장 프로그램은 Honeycomb 서비스에 이벤트를 보내는 데 드는 오버헤드, 지연 시간, 비용을 줄이는 동시에 안정성을 높입니다.
  • Instana Enterprise Observability Platform은 성능 지표를 수집하고 요청을 추적하며 프로세스를 프로파일링하여 엔터프라이즈에 대한 관찰 가능성이 작동하도록 지원합니다. Instana Lambda 확장 프로그램은 실시간 Enterprise Observability Platform에서 지원하는 Lambda 함수의 수정이 필요 없고 지연 시간이 짧은 트레이싱을 제공합니다.
  • Imperva Serverless Protection은 서버리스 컴퓨팅 환경에서 잘못 구성된 앱 및 코드 수준 보안 위험으로 인해 발생하는 취약성으로부터 조직을 보호합니다. Imperva 확장 프로그램을 통해 고객은 코드를 변경할 필요 없이 서버리스 애플리케이션을 위한 DevOps 프로세스에 추가 보안을 쉽게 포함할 수 있으므로 시장 출시 시간이 단축됩니다.
  • Lumigo는 서버리스 및 마이크로서비스 애플리케이션을 위한 모니터링 및 관찰 가능성 플랫폼을 제공합니다. Lumigo 확장 프로그램을 통해 새로운 Lumigo Lambda Profiler가 CPU, 메모리 및 네트워크 지표를 비롯한 함수 리소스의 분석을 확인할 수 있습니다. 확장 프로그램을 사용함으로써 실행 가능한 인사이트를 수신하여 Lambda 런타임 기간 및 비용을 줄이고 병목 현상을 해결하며 효율성을 높일 수 있습니다.
  • Check Point CloudGuard는 서버리스 애플리케이션에 대한 전체 수명 주기 보안을 제공합니다. CloudGuard 확장 프로그램은 OOP(Out-Of-Process) 확장 프로그램으로 FSP(Function Self Protection) 데이터 집계를 활성화하여 애플리케이션 계층 공격에 대한 탐지 및 경고를 제공합니다.
  • New Relic을 사용하면 Lambda 함수를 효율적으로 모니터링하고 문제를 해결하며 최적화할 수 있습니다. New Relic 확장 프로그램을 사용하면 Lambda 서비스 플랫폼 로그를 New Relic의 통합 관찰 가능성 플랫폼으로 직접 보낼 수 있으므로 지연 시간 및 비용을 최소화하면서 데이터를 신속하게 시각화할 수 있습니다.
  • Thundra는 서버리스, 컨테이너 및 가상 머신(VM) 워크로드를 위한 애플리케이션 디버깅, 관찰 가능성 및 보안 플랫폼을 제공합니다. Thundra 확장 프로그램은 Thundra 에이전트에 비동기 원격 분석 보고 기능을 추가하여 네트워크 지연 시간을 제거합니다.
  • Splunk는 대규모 실시간 전체 스택 가시성을 위한 엔터프라이즈급 클라우드 모니터링 솔루션을 제공합니다. Splunk 확장 프로그램은 오버헤드를 최소화하면서 고해상도 관찰 가능성 데이터를 수집할 수 있는 간소화된 런타임 독립적 인터페이스를 제공합니다. Splunk Observability 솔루션으로 서버리스 애플리케이션의 성능 및 비용을 모니터링하고 관리하며 최적화할 수 있습니다.
  • Sentry 확장 프로그램을 통해 개발자가 코드 상태를 모니터링할 수 있습니다. 개발자는 코드를 변경하지 않고도 오류 추적에서 성능 모니터링에 이르기까지 문제를 더 명확하게 확인하고 더 빠르게 해결하며 애플리케이션 상태에 관한 정보를 지속적으로 받을 수 있습니다.
  • Site24x7은 DevOps 및 IT 운영을 위한 성능 모니터링 솔루션을 제공합니다. Site24x7 확장 프로그램을 통해 Lambda 함수를 실시간으로 관찰할 수 있습니다. 또한 중요한 Lambda 지표 및 함수 실행 로그를 모니터링하고 실행 시간 및 성능을 최적화할 수 있습니다.
  • Sumo Logic 확장 프로그램을 통해 AWS Lambda를 사용하여 미션 크리티컬 애플리케이션의 상태 및 성능을 즉시 파악할 수 있습니다. 이 확장 프로그램 및 Sumo Logic의 지속적인 인텔리전스 플랫폼을 사용하면 이제 함수, 플랫폼 및 확장 프로그램 로그를 분석하여 오류 및 예외를 신속하게 파악하고 수정함으로써 모든 Lambda 함수가 예상대로 실행되고 있는지 확인할 수 있습니다.

AWS 서비스의 Lambda 확장 프로그램은 다음과 같습니다.

  • AWS AppConfig는 런타임 시 애플리케이션 구성을 관리하고 저장하며 호스트에 안전하게 배포할 수 있도록 지원합니다. AWS AppConfig 확장 프로그램은 Lambda와 AWS AppConfig를 원활하게 통합합니다. Lambda 함수는 외부 구성 설정에 빠르고 쉽고 간단하게 액세스할 수 있습니다. 이제 개발자는 강력한 검증 기능을 사용하여 안전하게 Lambda 함수의 구성을 동적으로 변경할 수 있습니다.
  • Amazon CodeGuru Profiler는 개발자가 애플리케이션에서 가장 많은 비용을 야기하는 코드 줄을 정확하게 파악하여 애플리케이션 성능을 향상하고 비용을 절감할 수 있도록 지원합니다. 그리고 비용을 절약할 수 있도록 코드를 개선하기 위한 권장 사항을 제공합니다. Lambda 통합을 사용하면 코드를 변경하거나 패키지를 다시 배포할 필요가 없습니다.
  • Amazon CloudWatch Lambda Insights를 사용하면 Lambda 함수를 효율적으로 모니터링하고 문제를 해결하며 최적화할 수 있습니다. Lambda Insights 확장 프로그램을 통해 자세한 컴퓨팅 성능 지표, 오류 및 로그의 수집, 시각화, 조사를 간소화할 수 있습니다. 성능 문제를 더 쉽게 분리하고 연관성을 파악하여 Lambda 환경을 최적화할 수 있습니다.
  • AWS Distro for OpenTelemetry는 OpenTelemetry 프로젝트의 안전하고 프로덕션 환경에서 사용 가능한 AWS 지원 배포입니다. Lambda 확장 프로그램은 OpenTelemetry 수집기를 실행하고, 함수가 트레이스 데이터를 AWS X-Ray와 같은 AWS 모니터링 서비스에 보내는 것은 물론 OTLP(OpenTelemetry Protocol) Exporter를 사용하여 OTLP를 지원하는 Honeycomb 및 Lightstep과 같은 대상에 보낼 수 있도록 지원합니다.

Lambda 확장 프로그램을 시작하려면 제공된 링크를 사용하여 이러한 확장 프로그램을 설치하세요.

알아야 할 사항
몇 가지 참고할 사항을 알려드립니다.

요금: 확장 프로그램은 Lambda 함수와 동일한 결제 모델을 공유하며, Lambda 수명 주기의 모든 단계에서 사용되는 컴퓨팅 시간에 대해 요금이 청구됩니다. 함수 호출의 경우 제공된 요청과 함께 코드 및 모든 확장 프로그램을 실행하는 데 사용된 컴퓨팅 시간에 대해 1밀리초 단위로 비용을 지급합니다. 확장 프로그램에 대한 결제에 관해 자세히 알아보려면 Lambda FAQ 페이지를 참조하세요.

성능: Lambda 확장 프로그램은 CPU, 메모리, 스토리지와 같은 리소스를 함수와 공유하기 때문에 그리고 확장 프로그램이 함수 코드보다 먼저 초기화되기 때문에 함수의 성능에 영향을 줄 수 있습니다. 예를 들어 확장 프로그램이 컴퓨팅 집약적인 작업을 수행하는 경우 확장 프로그램과 함수 코드가 동일한 CPU 리소스를 공유하기 때문에 함수의 실행 기간이 늘어날 수 있습니다.

Lambda는 메모리 설정에 따라 비례하여 CPU 성능을 사용하고 할당하므로 더 많은 프로세스가 동일한 CPU 리소스에 대해 경쟁함에 따라 더 낮은 메모리 설정에서 실행 및 초기화 기간이 늘어날 수 있습니다. PostRuntimeExecutionDuration과 같은 CloudWatch 지표를 사용하여 함수 실행 후 확장 프로그램에서 소요하는 추가 시간을 측정하고 MaxMemoryUsed를 사용하여 사용된 메모리 증가를 측정할 수 있습니다.

정식 출시
정식 출시의 일부로 발표된 성능 향상은 현재 미국 동부(버지니아 북부), 유럽(아일랜드)유럽(밀라노) 리전에서 이용할 수 있습니다. (기존 확장 프로그램 기능은 AWS Lambda가 지원하는 모든 리전에서 사용 가능합니다.)

또한 고유한 자체 확장 프로그램을 구현할 수 있습니다. 확장 프로그램을 구현하는 방법을 알아보려면, AWS Lambda 개발자 안내서의 Lambda Extensions API를 참조하세요. AWS Lambda 포럼 또는 평소에 이용하는 AWS Support 연락처를 통해 피드백을 보내 주세요.

Channy