

# Amazon CloudWatch Application Signals를 사용하여 애플리케이션 성능 모니터링
<a name="monitoring-application-signals"></a>

Amazon CloudWatch Application Signals는 개발자와 운영자가 Lambda를 사용하여 빌드한 서버리스 애플리케이션의 상태 및 성능을 모니터링할 수 있는 애플리케이션 성능 모니터링(APM) 솔루션입니다. Lambda 콘솔에서 한 번의 클릭으로 Application Signals를 활성화할 수 있으며 Lambda 함수에 계측 코드 또는 외부 종속 항목을 추가하지 않아도 됩니다. Application Signals를 활성화한 후에는 CloudWatch 콘솔에서 수집한 모든 지표 및 추적을 볼 수 있습니다. 이 페이지에서는 애플리케이션에 대한 Application Signals 원격 측정 데이터를 활성화하고 보는 방법을 설명합니다.

**Topics**
+ [Application Signals를 Lambda와 통합하는 방법](#monitoring-application-signals-how)
+ [요금](#monitoring-application-signals-pricing)
+ [지원되는 런타임](#monitoring-application-signals-runtimes)
+ [Lambda 콘솔에서 Application Signals 활성화](#monitoring-application-signals-console)
+ [Application Signals 대시보드 사용](#monitoring-application-signals-dashboard)

## Application Signals를 Lambda와 통합하는 방법
<a name="monitoring-application-signals-how"></a>

Application Signals는 [Lambda 계층](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html)을 통해 제공되는 향상된 [AWS Distro for OpenTelemetry(ADOT)](https://aws-otel.github.io/) 라이브러리를 사용하여 Lambda 함수를 자동으로 계측합니다. Application Signals는 계층에서 수집한 데이터를 읽고 애플리케이션의 핵심 성능 지표를 포함하는 대시보드를 생성합니다.

Lambda 콘솔에서 [Application Signals를 활성화](#monitoring-application-signals-console)하여 한 번의 클릭으로 이 계층을 연결할 수 있습니다. 콘솔에서 Application Signals를 활성화하면 Lambda는 사용자를 대신하여 다음 작업을 수행합니다.
+ `CloudWatchLambdaApplicationSignalsExecutionRolePolicy`를 포함하도록 함수의 실행 역할을 업데이트합니다. [ 이 정책](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchLambdaApplicationSignalsExecutionRolePolicy.html)에서는 Application Signals에 대해 사용되는 AWS X-Ray 및 CloudWatch 로그 그룹에 대한 쓰기 액세스를 제공합니다.
+ 함수에 계층을 추가합니다. 이 계층에서는 함수를 자동으로 계측하여 요청, 가용성, 지연 시간, 오류 및 장애와 같은 원격 측정 데이터를 캡처합니다. Application Signals가 제대로 작동하는지 확인하려면 함수에서 기존의 X-Ray SDK 계측 코드를 제거합니다. 사용자 지정 X-Ray SDK 계측 코드는 계층에서 제공하는 계측을 방해할 수 있습니다.
+ 함수에 `AWS_LAMBDA_EXEC_WRAPPER` 환경 변수를 추가하고 해당 값을 `/opt/otel-instrument`로 설정합니다. 이 환경 변수는 Application Signals 계층을 활용하도록 함수의 시작 동작을 수정하며, 이는 적절한 계측에 필요합니다. 이 환경 변수가 이미 있는 경우 필수 값으로 설정되었는지 확인합니다.

## 요금
<a name="monitoring-application-signals-pricing"></a>

Lambda 함수에 대해 Application Signals를 사용하면 비용이 발생합니다. 요금에 대한 자세한 내용은 [Amazon CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing/)을 참조하세요.

## 지원되는 런타임
<a name="monitoring-application-signals-runtimes"></a>

Lambda와의 Application Signals 통합은 다음 런타임에서 작동합니다.
+ .NET 8
+ Java 11
+ Java 17
+ Java 21
+ Python 3.10
+ Python 3.11
+ Python 3.12
+ Python 3.13
+ Node.js 18.x
+ Node.js 20.x
+ Node.js 22.x

## Lambda 콘솔에서 Application Signals 활성화
<a name="monitoring-application-signals-console"></a>

[지원되는 런타임](#monitoring-application-signals-runtimes)을 사용하여 기존 Lambda 함수에서 Application Signals를 활성화할 수 있습니다. 다음 단계에서는 Lambda 콘솔에서 한 번의 클릭으로 Application Signals를 활성화하는 방법을 설명합니다.

**Lambda 콘솔에서 Application Signals를 활성화하는 방법**

1. Lambda 콘솔의 [함수 페이지](https://console.aws.amazon.com/lambda/home#/functions)를 엽니다.

1. 함수를 선택합니다.

1. **구성** 탭을 선택합니다.

1. 왼쪽 메뉴에서 **모니터링 및 작업 도구**를 선택합니다.

1. **추가 모니터링 도구** 창에서 **편집**을 선택합니다.

1. **CloudWatch Application Signals 및 AWS X-Ray**와 **Application Signals** 아래에서 **활성화**를 선택하세요.

1. **저장**을 선택합니다.

함수에 대해 Application Signals를 처음 활성화하는 경우 CloudWatch 콘솔에서 Application Signals에 대한 일회성 서비스 검색 설정도 수행해야 합니다. 이 일회성 서비스 검색 설정을 완료하면 Application Signals는 모든 리전에서 Application Signals를 활성화하는 모든 추가 Lambda 함수를 자동으로 검색합니다.

**참고**  
업데이트된 함수를 간접 호출한 후 CloudWatch 콘솔의 Application Signals 대시보드에 서비스 데이터가 표시되기 시작하는 데 최대 10분이 걸릴 수 있습니다.

## Application Signals 대시보드 사용
<a name="monitoring-application-signals-dashboard"></a>

함수에 대해 Application Signals를 활성화한 후 CloudWatch 콘솔에서 애플리케이션 지표를 시각화할 수 있습니다. 다음 단계를 통해 Lambda 콘솔에서 연결된 Application Signals 대시보드를 빠르게 볼 수 있습니다.

**함수에 대한 Application Signals 대시보드를 보는 방법**

1. Lambda 콘솔의 [함수 페이지](https://console.aws.amazon.com/lambda/home#/functions)를 엽니다.

1. 함수를 선택합니다.

1. **모니터링** 탭을 선택합니다.

1. **Application Signals 보기** 버튼을 선택하세요. 그러면 CloudWatch 콘솔에서 서비스에 대한 Application Signals 개요로 바로 이동합니다.

예를 들어 다음 스크린샷에서는 10분의 기간에 함수의 지연 시간, 요청 수, 가용성, 장애 비율 및 오류 비율에 대한 지표를 보여줍니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/lambda/latest/dg/images/monitoring-application-signals-dashboard.png)


Application Signals와의 통합을 최대한 활용하기 위해 애플리케이션에 대한 서비스 수준 목표(SLO)를 생성할 수 있습니다. 예를 들어 지연 시간 SLO를 생성하여 애플리케이션이 사용자 요청에 빠르게 응답하고 가용성 SLO를 생성하여 가동 시간을 추적하도록 할 수 있습니다. SLO는 성능 저하 또는 중단이 사용자에게 영향을 미치기 전에 이를 감지하는 데 도움이 될 수 있습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 [서비스 수준 목표(SLO)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-ServiceLevelObjectives.html)를 참조하세요.