

# 권장되는 PromQL 경보
<a name="Recommended_PromQL_Alarms"></a>

이러한 PromQL 경보를 클래식 권장 경보와 동등하게 사용합니다. CloudWatch OTLP 엔드포인트를 통해 수집된 지표에 대해 평가되는 PromQL 인스턴트 쿼리를 사용하여 동일한 지표를 모니터링합니다.

PromQL 경보는 `EvaluationCriteria`와 `PromQLCriteria`를 함께 사용합니다. 클래식 지표 경보와 달리 임곗값은 PromQL 쿼리 표현식에 직접 포함됩니다.
+ **보류 기간** – 경보가 ALARM 상태로 전환되기 전에 시계열이 지속적으로 위반되어야 하는 초 단위 기간입니다.
+ **복구 기간** – 경보가 OK 상태로 돌아가기 전에 모든 시계열의 위반을 중지해야 하는 초 단위 기간입니다.
+ **평가 간격** – CloudWatch가 PromQL 쿼리를 실행하는 빈도(초)입니다.

**참고**  
이러한 경보에는 CloudWatch OTLP 엔드포인트를 통해 게시된 지표가 필요합니다. 자세한 내용은 [PromQL 경보](alarm-promql.md) 섹션을 참조하세요.

AWS CloudFormation을 사용하여 이러한 경보를 배포할 수도 있습니다. `AWS::CloudWatch::Alarm` 리소스에서 `EvaluationCriteria` 및 `PromQLCriteria` 속성을 사용합니다.

**Topics**
+ [API Gateway](#Recommended_PromQL_ApiGateway)
+ [Auto Scaling](#Recommended_PromQL_AutoScaling)
+ [Certificate Manager](#Recommended_PromQL_CertificateManager)
+ [CloudFront](#Recommended_PromQL_CloudFront)
+ [Cognito](#Recommended_PromQL_Cognito)
+ [DynamoDB](#Recommended_PromQL_DynamoDB)
+ [EBS](#Recommended_PromQL_EBS)
+ [Amazon Elastic Compute Cloud](#Recommended_PromQL_EC2)
+ [Amazon ECS](#Recommended_PromQL_ECS)
+ [Amazon ECS Container Insights](#Recommended_PromQL_ECS_ContainerInsights)
+ [Amazon ECS Container Insights 향상된 관찰성](#Recommended_PromQL_ECS_ContainerInsights_Enhanced)
+ [Amazon EFS](#Recommended_PromQL_EFS)
+ [Amazon EKS Container Insights](#Recommended_PromQL_EKS)
+ [Amazon ElastiCache](#Recommended_PromQL_ElastiCache)
+ [탄력적 GPU](#Recommended_PromQL_ElasticGPUs)
+ [Amazon EventBridge Scheduler](#Recommended_PromQL_Scheduler)
+ [Amazon Kinesis Data Streams](#Recommended_PromQL_Kinesis)
+ [AWS Lambda](#Recommended_PromQL_Lambda)
+ [AWS Lambda Insights](#Recommended_PromQL_LambdaInsights)
+ [NAT 게이트웨이](#Recommended_PromQL_NATGateway)
+ [AWS PrivateLink 엔드포인트](#Recommended_PromQL_PrivateLinkEndpoints)
+ [AWS PrivateLink 서비스](#Recommended_PromQL_PrivateLinkServices)
+ [RDS](#Recommended_PromQL_RDS)
+ [Route 53](#Recommended_PromQL_Route53)
+ [S3](#Recommended_PromQL_S3)
+ [S3 객체 Lambda](#Recommended_PromQL_S3ObjectLambda)
+ [SNS](#Recommended_PromQL_SNS)
+ [SQS](#Recommended_PromQL_SQS)
+ [VPN](#Recommended_PromQL_VPN)

## API Gateway
<a name="Recommended_PromQL_ApiGateway"></a>

**REST API**

**4XXError**  
**레이블: **ApiName, Stage  
**경보 설명: **REST API 단계의 평균 4XX 오류율이 5%를 초과할 때 경보가 발생합니다.  
**의도: **요청 문제를 나타내는 높은 클라이언트 오류율을 감지합니다.  
**PromQL 기준: **`avg({__name__="4XXError", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiName="{{your-api-name}}",Stage="{{your-stage}}"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **상당한 요청 실패를 나타내는 클라이언트 오류율 5% 초과를 감지합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**5XXError**  
**레이블: **ApiName, Stage  
**경보 설명: **REST API 단계의 평균 5XX 오류율이 5%를 초과할 때 경보가 발생합니다.  
**의도: **백엔드 장애를 나타내는 높은 서버 오류율을 감지합니다.  
**PromQL 기준: **`avg({__name__="5XXError", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiName="{{your-api-name}}",Stage="{{your-stage}}"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **즉각적인 조사가 필요한 서버 오류율 5% 초과를 감지합니다.  
**평가 간격: **60  
**보류 기간: **180  
**복구 기간: **300

**Latency**  
**레이블: **ApiName, Stage  
**경보 설명: **REST API 단계의 p90 지연 시간이 2,500ms를 초과할 때 경보가 발생합니다.  
**의도: **사용자 경험에 영향을 주는 높은 p90 지연 시간을 감지합니다.  
**PromQL 기준: **`histogram_quantile(0.9, {__name__="Latency", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiName="{{your-api-name}}",Stage="{{your-stage}}"}) > 2500`  
**권장 임곗값: **2500(쿼리에 포함됨)  
**임곗값 정당화: **2,500ms를 초과하는 p90 지연 시간은 대부분의 요청에 대한 응답 시간이 저하되었음을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**: 수**.  
**레이블: **ApiName, Stage  
**경보 설명: **REST API 단계의 총 요청 수가 예상 기준 아래로 떨어질 때 경보가 발생합니다.  
**의도: **라우팅 또는 가용성 문제를 나타낼 수 있는 적은 트래픽 양을 감지합니다.  
**PromQL 기준: **`sum({__name__="Count", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiName="{{your-api-name}}",Stage="{{your-stage}}"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **예상 트래픽 기준을 바탕으로 설정하여 예상치 못한 감소를 감지합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **300

**HTTP API**

**4xx**  
**레이블: **ApiId, Stage  
**경보 설명: **HTTP API 단계의 평균 4xx 오류율이 5%를 초과할 때 경보가 발생합니다.  
**의도: **HTTP API 엔드포인트에서 높은 클라이언트 오류율을 감지합니다.  
**PromQL 기준: **`avg({__name__="4xx", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiId="{{your-api-id}}",Stage="{{your-stage}}"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **클라이언트 오류율 5% 초과를 감지합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**5xx**  
**레이블: **ApiId, Stage  
**경보 설명: **HTTP API 단계의 평균 5xx 오류율이 5%를 초과할 때 경보가 발생합니다.  
**의도: **HTTP API 엔드포인트에서 높은 서버 오류율을 감지합니다.  
**PromQL 기준: **`avg({__name__="5xx", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiId="{{your-api-id}}",Stage="{{your-stage}}"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **조사가 필요한 서버 오류율 5% 초과를 감지합니다.  
**평가 간격: **60  
**보류 기간: **180  
**복구 기간: **300

**Latency**  
**레이블: **ApiId, Stage  
**경보 설명: **HTTP API 단계의 p90 지연 시간이 2,500ms를 초과할 때 경보가 발생합니다.  
**의도: **HTTP API 엔드포인트에서 긴 p90 지연 시간을 감지합니다.  
**PromQL 기준: **`histogram_quantile(0.9, {__name__="Latency", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiId="{{your-api-id}}",Stage="{{your-stage}}"}) > 2500`  
**권장 임곗값: **2500(쿼리에 포함됨)  
**임곗값 정당화: **2,500ms를 초과하는 p90 지연 시간은 응답 시간이 저하되었음을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**IntegrationLatency**  
**레이블: **ApiId, Stage  
**경보 설명: **HTTP API 단계의 p90 통합 지연 시간이 2,000ms를 초과할 때 경보가 발생합니다.  
**의도: **응답 시간에 영향을 주는 긴 백엔드 통합 지연 시간을 감지합니다.  
**PromQL 기준: **`histogram_quantile(0.9, {__name__="IntegrationLatency", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiId="{{your-api-id}}",Stage="{{your-stage}}"}) > 2000`  
**권장 임곗값: **2000(쿼리에 포함됨)  
**임곗값 정당화: **2,000ms를 초과하는 p90 통합 지연 시간은 백엔드 속도가 느림을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**: 수**.  
**레이블: **ApiId, Stage  
**경보 설명: **HTTP API 단계의 총 요청 수가 예상 기준 아래로 떨어질 때 경보가 발생합니다.  
**의도: **라우팅 또는 가용성 문제를 나타낼 수 있는 적은 트래픽 양을 감지합니다.  
**PromQL 기준: **`sum({__name__="Count", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiId="{{your-api-id}}",Stage="{{your-stage}}"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **예상 트래픽 기준을 바탕으로 설정하여 예상치 못한 감소를 감지합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **300

**WebSocket API**

**ClientError**  
**레이블: **ApiId, Stage  
**경보 설명: **WebSocket API 단계의 평균 클라이언트 오류율이 5%를 초과할 때 경보가 발생합니다.  
**의도: **WebSocket API 연결에서 높은 클라이언트 오류율을 감지합니다.  
**PromQL 기준: **`avg({__name__="ClientError", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiId="{{your-api-id}}",Stage="{{your-stage}}"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **WebSocket 연결에서 클라이언트 오류율 5% 초과를 감지합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**ExecutionError**  
**레이블: **ApiId, Stage  
**경보 설명: ** WebSocket API 단계의 평균 실행 오류율이 5%를 초과할 때 경보가 발생합니다.  
**의도: **WebSocket API에서 높은 서버 측 실행 오류율을 감지합니다.  
**PromQL 기준: **`avg({__name__="ExecutionError", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiId="{{your-api-id}}",Stage="{{your-stage}}"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **조사가 필요한 실행 오류율 5% 초과를 감지합니다.  
**평가 간격: **60  
**보류 기간: **180  
**복구 기간: **300

**IntegrationLatency**  
**레이블: **ApiId, Stage  
**경보 설명: ** WebSocket API 단계의 p90 통합 지연 시간이 2,000ms를 초과할 때 경보가 발생합니다.  
**의도: **WebSocket API 경로에서 긴 백엔드 통합 지연 시간을 감지합니다.  
**PromQL 기준: **`histogram_quantile(0.9, {__name__="IntegrationLatency", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiId="{{your-api-id}}",Stage="{{your-stage}}"}) > 2000`  
**권장 임곗값: **2000(쿼리에 포함됨)  
**임곗값 정당화: **2,000ms를 초과하는 p90 통합 지연 시간은 백엔드 속도가 느림을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**MessageCount**  
**레이블: **ApiId, Stage  
**경보 설명: **WebSocket API 단계의 총 메시지 수가 예상 기준 아래로 떨어질 때 경보가 발생합니다.  
**의도: **연결 또는 라우팅 문제를 나타낼 수 있는 적은 메시지 양을 감지합니다.  
**PromQL 기준: **`sum({__name__="MessageCount", "@instrumentation.@name"="cloudwatch.aws/apigateway", ApiId="{{your-api-id}}",Stage="{{your-stage}}"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **예상 메시지 양을 기준으로 설정하여 예상치 못한 감소를 감지합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **300

## Auto Scaling
<a name="Recommended_PromQL_AutoScaling"></a>

**GroupInServiceCapacity**  
**레이블: **AutoScalingGroupName  
**경보 설명: **Auto Scaling 그룹의 평균 서비스 중 용량이 예상 최솟값 아래로 떨어질 때 경보가 발생합니다.  
**의도: **시작 실패 또는 종료된 인스턴스로 인한 낮은 가용성을 감지합니다.  
**PromQL 기준: **`avg({__name__="GroupInServiceCapacity", "@instrumentation.@name"="cloudwatch.aws/autoscaling", AutoScalingGroupName="{{your-auto-scaling-group-name}}"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **원하는 최소 용량을 기준으로 설정하여 시작 실패 또는 인스턴스 부족을 감지합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

## Certificate Manager
<a name="Recommended_PromQL_CertificateManager"></a>

**DaysToExpiry**  
**레이블: **CertificateArn  
**경보 설명: **인증서 만료까지 최소 일수가 44일 이하로 떨어질 때 경보가 발생합니다.  
**의도: **갱신 시간 확보를 위한 인증서 만료 사전 알림입니다.  
**PromQL 기준: **`min({__name__="DaysToExpiry", "@instrumentation.@name"="cloudwatch.aws/certificatemanager", CertificateArn="{{your-certificate-arn}}"}) <= 44`  
**권장 임곗값: **44(쿼리에 포함됨)  
**임곗값 정당화: **갱신 프로세스를 완료할 수 있도록 인증서 만료 전에 충분한 리드 타임을 제공합니다.  
**평가 간격: **86400  
**보류 기간: **86,400  
**복구 기간: **86,400

## CloudFront
<a name="Recommended_PromQL_CloudFront"></a>

**5xxErrorRate**  
**레이블: **DistributionId  
**경보 설명: **CloudFront 배포의 평균 5xx 오류율이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **콘텐츠 전송에 영향을 주는 높은 오리진 또는 CloudFront 오류율을 감지합니다.  
**PromQL 기준: **`avg({__name__="5xxErrorRate", "@instrumentation.@name"="cloudwatch.aws/cloudfront", DistributionId="{{your-distribution-id}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **콘텐츠 전송에 대해 허용되는 오류율을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**OriginLatency**  
**레이블: **DistributionId  
**경보 설명: **CloudFront 배포의 p90 오리진 지연 시간이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **콘텐츠 전송 성능에 영향을 주는 긴 오리진 응답 지연 시간을 감지합니다.  
**PromQL 기준: **`histogram_quantile(0.9, {__name__="OriginLatency", "@instrumentation.@name"="cloudwatch.aws/cloudfront", DistributionId="{{your-distribution-id}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **예상 오리진 응답 시간과 캐싱 전략을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**FunctionValidationErrors**  
**레이블: **DistributionId, FunctionName  
**경보 설명: **CloudFront 함수 검증 오류가 발생할 때 경보가 발생합니다.  
**의도: **함수 실행을 막는 CloudFront 함수 검증 실패를 감지합니다.  
**PromQL 기준: **`sum({__name__="FunctionValidationErrors", "@instrumentation.@name"="cloudwatch.aws/cloudfront", DistributionId="{{your-distribution-id}}",FunctionName="{{your-function-name}}"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **검증 오류는 주의가 필요한 함수 구성 문제를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **120  
**복구 기간: **120

**FunctionExecutionErrors**  
**레이블: **DistributionId, FunctionName  
**경보 설명: **CloudFront 함수 실행 오류가 발생할 때 경보가 발생합니다.  
**의도: **요청 처리에 영향을 주는 CloudFront Functions의 런타임 실패를 감지합니다.  
**PromQL 기준: **`sum({__name__="FunctionExecutionErrors", "@instrumentation.@name"="cloudwatch.aws/cloudfront", DistributionId="{{your-distribution-id}}",FunctionName="{{your-function-name}}"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **실행 오류는 함수 코드의 런타임 문제를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**FunctionThrottles**  
**레이블: **DistributionId, FunctionName  
**경보 설명: **CloudFront 함수 스로틀링이 발생할 때 경보가 발생합니다.  
**의도: **요청 처리를 저하시킬 수 있는 CloudFront 함수 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="FunctionThrottles", "@instrumentation.@name"="cloudwatch.aws/cloudfront", DistributionId="{{your-distribution-id}}",FunctionName="{{your-function-name}}"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **모든 스로틀링은 함수가 컴퓨팅 한도에 도달하고 있음을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## Cognito
<a name="Recommended_PromQL_Cognito"></a>

**SignUpThrottles**  
**레이블: **UserPool, UserPoolClient  
**경보 설명: **사용자 풀의 가입 스로틀 이벤트가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **새 사용자 등록을 막는 가입 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="SignUpThrottles", "@instrumentation.@name"="cloudwatch.aws/cognito", UserPool="{{your-user-pool}}",UserPoolClient="{{your-user-pool-client}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **가입 작업에 허용되는 스로틀 비율을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**SignInThrottles**  
**레이블: **UserPool, UserPoolClient  
**경보 설명: **사용자 풀의 로그인 스로틀 이벤트가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **사용자 인증을 막는 로그인 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="SignInThrottles", "@instrumentation.@name"="cloudwatch.aws/cognito", UserPool="{{your-user-pool}}",UserPoolClient="{{your-user-pool-client}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **로그인 작업에 허용되는 스로틀 비율을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**TokenRefreshThrottles**  
**레이블: **UserPool, UserPoolClient  
**경보 설명: **사용자 풀의 토큰 새로 고침 스로틀 이벤트가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **세션 중단을 일으킬 수 있는 토큰 새로 고침 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="TokenRefreshThrottles", "@instrumentation.@name"="cloudwatch.aws/cognito", UserPool="{{your-user-pool}}",UserPoolClient="{{your-user-pool-client}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **토큰 새로 고침 작업에 허용되는 스로틀 비율을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**FederationThrottles**  
**레이블: **UserPool, UserPoolClient, IdentityProvider  
**경보 설명: **사용자 풀 ID 제공업체의 페더레이션 스로틀 이벤트가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **페더레이션 로그인을 막을 수 있는 페더레이션 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="FederationThrottles", "@instrumentation.@name"="cloudwatch.aws/cognito", UserPool="{{your-user-pool}}",UserPoolClient="{{your-user-pool-client}}",IdentityProvider="{{your-identity-provider}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **페더레이션 작업에 허용되는 스로틀 비율을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## DynamoDB
<a name="Recommended_PromQL_DynamoDB"></a>

**AccountProvisionedReadCapacityUtilization**  
**레이블: **없음  
**경보 설명: **계정 수준에서 프로비저닝된 읽기 용량 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **프로비저닝된 읽기 용량이 계정 한도에 근접하는 시기를 감지합니다.  
**PromQL 기준: **`max({__name__="AccountProvisionedReadCapacityUtilization", "@instrumentation.@name"="cloudwatch.aws/dynamodb"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **사용률이 80%인 경우 계정 한도에 도달하기 전에 헤드룸이 제한적입니다.  
**평가 간격: **300  
**보류 기간: **600  
**복구 기간: **600

**AccountProvisionedWriteCapacityUtilization**  
**레이블: **없음  
**경보 설명: **계정 수준에서 프로비저닝된 쓰기 용량 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **프로비저닝된 쓰기 용량이 계정 한도에 근접하는 시기를 감지합니다.  
**PromQL 기준: **`max({__name__="AccountProvisionedWriteCapacityUtilization", "@instrumentation.@name"="cloudwatch.aws/dynamodb"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **사용률이 80%인 경우 계정 한도에 도달하기 전에 헤드룸이 제한적입니다.  
**평가 간격: **300  
**보류 기간: **600  
**복구 기간: **600

**AgeOfOldestUnreplicatedRecord**  
**레이블: **TableName, DelegatedOperation  
**경보 설명: **가장 오래된 복제되지 않은 레코드의 수명이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **글로벌 테이블에서 오래된 데이터가 발생하는 원인이 될 수 있는 복제 지연 시간을 감지합니다.  
**PromQL 기준: **`max({__name__="AgeOfOldestUnreplicatedRecord", "@instrumentation.@name"="cloudwatch.aws/dynamodb", TableName="{{your-table-name}}",DelegatedOperation="{{your-operation}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **복제 최신성 요구 사항을 기준으로 설정합니다.  
**평가 간격: **300  
**보류 기간: **900  
**복구 기간: **900

**FailedToReplicateRecordCount**  
**레이블: **TableName, DelegatedOperation  
**경보 설명: **글로벌 테이블에서 레코드 복제에 실패할 때 경보가 발생합니다.  
**의도: **리전 간 데이터 불일치를 유발하는 복제 실패를 감지합니다.  
**PromQL 기준: **`sum({__name__="FailedToReplicateRecordCount", "@instrumentation.@name"="cloudwatch.aws/dynamodb", TableName="{{your-table-name}}",DelegatedOperation="{{your-operation}}"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **복제 실패는 즉각적인 주의가 필요한 데이터 일관성 문제를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **60  
**복구 기간: **60

**ReadThrottleEvents**  
**레이블: **TableName  
**경보 설명: **테이블의 읽기 스로틀 이벤트가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **프로비저닝된 용량 부족을 나타내는 읽기 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="ReadThrottleEvents", "@instrumentation.@name"="cloudwatch.aws/dynamodb", TableName="{{your-table-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **읽기 작업에 허용되는 스로틀 수를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**ReadThrottleEvents(GSI)**  
**레이블: **TableName, GlobalSecondaryIndexName  
**경보 설명: **글로벌 보조 인덱스의 읽기 스로틀 이벤트가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **GSI에서 인덱스 용량 부족을 나타내는 읽기 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="ReadThrottleEvents", "@instrumentation.@name"="cloudwatch.aws/dynamodb", TableName="{{your-table-name}}",GlobalSecondaryIndexName="{{your-index-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **GSI 읽기 작업에 허용되는 스로틀 수를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**ReplicationLatency**  
**레이블: **TableName, ReceivingRegion  
**경보 설명: **글로벌 테이블의 평균 복제 지연 시간이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **복제본 리전에서 오래된 읽기를 유발할 수 있는 긴 복제 지연 시간을 감지합니다.  
**PromQL 기준: **`avg({__name__="ReplicationLatency", "@instrumentation.@name"="cloudwatch.aws/dynamodb", TableName="{{your-table-name}}",ReceivingRegion="{{your-receiving-region}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **복제본 리전에 대한 데이터 최신성 요구 사항을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**SuccessfulRequestLatency**  
**레이블: **TableName, Operation  
**경보 설명: **테이블 작업의 평균 성공 요청 지연 시간이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **DynamoDB 작업에서 애플리케이션 성능에 영향을 주는 긴 지연 시간을 감지합니다.  
**PromQL 기준: **`avg({__name__="SuccessfulRequestLatency", "@instrumentation.@name"="cloudwatch.aws/dynamodb", TableName="{{your-table-name}}",Operation="{{your-operation}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **특정 DynamoDB 작업에 대한 지연 시간 SLA를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

**SystemErrors**  
**레이블: **TableName  
**경보 설명: **테이블의 시스템 오류가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **테이블 가용성에 영향을 주는 DynamoDB 서비스 측 오류를 감지합니다.  
**PromQL 기준: **`sum({__name__="SystemErrors", "@instrumentation.@name"="cloudwatch.aws/dynamodb", TableName="{{your-table-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **테이블에 허용되는 시스템 오류 수를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**ThrottledPutRecordCount**  
**레이블: **TableName, DelegatedOperation  
**경보 설명: **테이블의 스로틀링된 Put 레코드 수가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **스트리밍 작업에서 데이터 손실을 일으킬 수 있는 스로틀링된 Put을 감지합니다.  
**PromQL 기준: **`max({__name__="ThrottledPutRecordCount", "@instrumentation.@name"="cloudwatch.aws/dynamodb", TableName="{{your-table-name}}",DelegatedOperation="{{your-operation}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **스트리밍 Put 작업에 허용되는 스로틀 수를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

**UserErrors**  
**레이블: **없음  
**경보 설명: **계정 전체에서 사용자 오류가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **검증 또는 조건부 검사 실패와 같은 높은 비율의 클라이언트 오류를 감지합니다.  
**PromQL 기준: **`sum({__name__="UserErrors", "@instrumentation.@name"="cloudwatch.aws/dynamodb"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **클라이언트 측 요청 실패에 허용되는 오류율을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

**WriteThrottleEvents**  
**레이블: **TableName  
**경보 설명: **테이블의 쓰기 스로틀 이벤트가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **프로비저닝된 용량 부족을 나타내는 쓰기 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="WriteThrottleEvents", "@instrumentation.@name"="cloudwatch.aws/dynamodb", TableName="{{your-table-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **쓰기 작업에 허용되는 스로틀 수를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**WriteThrottleEvents(GSI)**  
**레이블: **TableName, GlobalSecondaryIndexName  
**경보 설명: **글로벌 보조 인덱스의 쓰기 스로틀 이벤트가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **GSI에서 인덱스 용량 부족을 나타내는 쓰기 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="WriteThrottleEvents", "@instrumentation.@name"="cloudwatch.aws/dynamodb", TableName="{{your-table-name}}",GlobalSecondaryIndexName="{{your-index-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **GSI 쓰기 작업에 허용되는 스로틀 수를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## EBS
<a name="Recommended_PromQL_EBS"></a>

**VolumeStalledIOCheck**  
**레이블: **VolumeId, InstanceId  
**경보 설명: **EBS 볼륨이 지연된 I/O 검사 실패를 보고할 때 경보가 발생합니다.  
**의도: **EBS 볼륨에서 볼륨 장애를 나타내는 지연 I/O를 감지합니다.  
**PromQL 기준: **`max({__name__="VolumeStalledIOCheck", "@instrumentation.@name"="cloudwatch.aws/ebs", VolumeId="{{your-volume-id}}",InstanceId="{{your-instance-id}}"}) >= 1`  
**권장 임곗값: **1(쿼리에 포함됨)  
**임곗값 정당화: **값이 1 이상이면 볼륨에 지연 I/O가 있어 즉각적인 조사가 필요합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

## Amazon Elastic Compute Cloud
<a name="Recommended_PromQL_EC2"></a>

**CPUUtilization**  
**레이블: **InstanceId  
**경보 설명: **EC2 인스턴스의 평균 CPU 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 CPU 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="CPUUtilization", "@instrumentation.@name"="cloudwatch.aws/ec2", InstanceId="{{your-instance-id}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80% 임곗값은 포화 전에 헤드룸을 제공합니다.  
**평가 간격: **300  
**보류 기간: **900  
**복구 기간: **900

**StatusCheckFailed**  
**레이블: **InstanceId  
**경보 설명: **EC2 인스턴스의 인스턴스 또는 시스템 상태 확인이 실패할 때 경보가 발생합니다.  
**의도: **인스턴스 또는 시스템 상태 문제를 감지합니다.  
**PromQL 기준: **`max({__name__="StatusCheckFailed", "@instrumentation.@name"="cloudwatch.aws/ec2", InstanceId="{{your-instance-id}}"}) >= 1`  
**권장 임곗값: **1(쿼리에 포함됨)  
**임곗값 정당화: **모든 상태 확인 실패에는 조사가 필요합니다.  
**평가 간격: **300  
**보류 기간: **600  
**복구 기간: **600

**StatusCheckFailed\_AttachedEBS**  
**레이블: **InstanceId  
**경보 설명: **EC2 인스턴스의 연결된 EBS 볼륨에 연결할 수 없게 될 때 경보가 발생합니다.  
**의도: **연결할 수 없는 EBS 볼륨을 감지합니다.  
**PromQL 기준: **`max({__name__="StatusCheckFailed_AttachedEBS", "@instrumentation.@name"="cloudwatch.aws/ec2", InstanceId="{{your-instance-id}}"}) >= 1`  
**권장 임곗값: **1(쿼리에 포함됨)  
**임곗값 정당화: **연결할 수 없는 볼륨으로 인해 I/O 오류가 발생합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

## Amazon ECS
<a name="Recommended_PromQL_ECS"></a>

**CPUReservation**  
**레이블: **ClusterName  
**경보 설명: **ECS 클러스터의 평균 CPU 예약이 80%를 초과할 때 경보가 발생합니다.  
**의도: **CPU 용량에 근접하는 클러스터를 감지합니다.  
**PromQL 기준: **`avg({__name__="CPUReservation", "@instrumentation.@name"="cloudwatch.aws/ecs", ClusterName="{{your-cluster-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80% 예약은 새 태스크에 대한 제한된 헤드룸을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**CPUUtilization**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **ECS 서비스의 평균 CPU 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도:** ECS 서비스의 높은 CPU 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="CPUUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**EBSFilesystemUtilization**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **ECS 서비스의 평균 EBS 파일 시스템 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 EBS 스토리지 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="EBSFilesystemUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**MemoryReservation**  
**레이블: **ClusterName  
**경보 설명: **ECS 클러스터의 평균 메모리 예약이 80%를 초과할 때 경보가 발생합니다.  
**의도: **메모리 용량에 근접하는 클러스터를 감지합니다.  
**PromQL 기준: **`avg({__name__="MemoryReservation", "@instrumentation.@name"="cloudwatch.aws/ecs", ClusterName="{{your-cluster-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80% 예약은 새 태스크에 대한 제한된 헤드룸을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**MemoryUtilization**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **ECS 서비스의 평균 메모리 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 메모리 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="MemoryUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**HTTPCode\_Target\_5XX\_Count**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **ECS 서비스의 HTTP 5XX 오류 수가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **높은 서버 측 오류 수를 감지합니다.  
**PromQL 기준: **`sum({__name__="HTTPCode_Target_5XX_Count", "@instrumentation.@name"="cloudwatch.aws/ecs", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **애플리케이션의 일반 오류율 기준을 바탕으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**TargetResponseTime**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **ECS 서비스의 평균 대상 응답 시간이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **높은 대상 응답 시간을 감지합니다.  
**PromQL 기준: **`avg({__name__="TargetResponseTime", "@instrumentation.@name"="cloudwatch.aws/ecs", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **애플리케이션의 허용되는 지연 시간 요구 사항을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## Amazon ECS Container Insights
<a name="Recommended_PromQL_ECS_ContainerInsights"></a>

**EphemeralStorageUtilized**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **Fargate 태스크의 평균 임시 스토리지 사용량이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **Fargate 태스크에 대한 높은 임시 스토리지 사용량을 감지합니다.  
**PromQL 기준: **`avg({__name__="EphemeralStorageUtilized", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **태스크의 임시 스토리지 할당을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**RunningTaskCount**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **ECS 서비스의 실행 중인 태스크 수가 0으로 떨어질 때 경보가 발생합니다.  
**의도: **실행 중인 태스크가 없는 시기를 감지합니다.  
**PromQL 기준: **`avg({__name__="RunningTaskCount", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) <= 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **실행 중인 태스크 0개는 서비스 중단을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**instance\_filesystem\_utilization**  
**레이블: **InstanceId, ContainerInstanceId, ClusterName  
**경보 설명: **컨테이너 인스턴스의 평균 파일 시스템 사용률이 90%를 초과할 때 경보가 발생합니다.  
**의도: **높은 파일 시스템 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="instance_filesystem_utilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", InstanceId="{{your-instance-id}}",ContainerInstanceId="{{your-container-instance-id}}",ClusterName="{{your-cluster-name}}"}) > 90`  
**권장 임곗값: **90(쿼리에 포함됨)  
**임곗값 정당화: **파일 시스템 사용률 90%는 작업을 위한 최소 공간을 남깁니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## Amazon ECS Container Insights 향상된 관찰성
<a name="Recommended_PromQL_ECS_ContainerInsights_Enhanced"></a>

**TaskCpuUtilization(클러스터 수준)**  
**레이블: **ClusterName  
**경보 설명: **클러스터 수준에서 평균 태스크 CPU 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 CPU 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="TaskCpuUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**TaskCpuUtilization(서비스 수준)**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **서비스 수준에서 평균 태스크 CPU 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 CPU 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="TaskCpuUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**TaskMemoryUtilization(클러스터 수준)**  
**레이블: **ClusterName  
**경보 설명: **클러스터 수준에서 평균 태스크 메모리 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 메모리 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="TaskMemoryUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**TaskMemoryUtilization(서비스 수준)**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **서비스 수준에서 평균 태스크 메모리 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 메모리 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="TaskMemoryUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**ContainerCpuUtilization(클러스터 수준)**  
**레이블: **ClusterName  
**경보 설명: **클러스터 수준에서 평균 컨테이너 CPU 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 CPU 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="ContainerCpuUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**ContainerCpuUtilization(컨테이너 수준)**  
**레이블: **ContainerName, ClusterName, ServiceName  
**경보 설명: **컨테이너 수준에서 평균 컨테이너 CPU 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 CPU 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="ContainerCpuUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ContainerName="{{your-container-name}}",ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**ContainerMemoryUtilization(클러스터 수준)**  
**레이블: **ClusterName  
**경보 설명: **클러스터 수준에서 평균 컨테이너 메모리 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 메모리 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="ContainerMemoryUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**ContainerMemoryUtilization(컨테이너 수준)**  
**레이블: **ContainerName, ClusterName, ServiceName  
**경보 설명: **컨테이너 수준에서 평균 컨테이너 메모리 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 메모리 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="ContainerMemoryUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ContainerName="{{your-container-name}}",ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**TaskEBSfilesystemUtilization**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **태스크의 평균 EBS 파일 시스템 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 EBS 파일 시스템 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="TaskEBSfilesystemUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**TaskEphemeralStorageUtilization(클러스터 수준)**  
**레이블: **ClusterName  
**경보 설명: **클러스터 수준에서 평균 임시 스토리지 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 임시 스토리지 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="TaskEphemeralStorageUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**TaskEphemeralStorageUtilization(서비스 수준)**  
**레이블: **ClusterName, ServiceName  
**경보 설명: **서비스 수준에서 평균 임시 스토리지 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **높은 임시 스토리지 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="TaskEphemeralStorageUtilization", "@instrumentation.@name"="cloudwatch.aws/ecs-containerinsights", ClusterName="{{your-cluster-name}}",ServiceName="{{your-service-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## Amazon EFS
<a name="Recommended_PromQL_EFS"></a>

**PercentIOLimit**  
**레이블: **FileSystemId  
**경보 설명: **EFS 파일 시스템이 I/O 한도의 100%에 도달할 때 경보가 발생합니다.  
**의도: **파일 시스템이 I/O 한도에 도달하는 시기를 감지합니다.  
**PromQL 기준: **`avg({__name__="PercentIOLimit", "@instrumentation.@name"="cloudwatch.aws/efs", FileSystemId="{{your-filesystem-id}}"}) >= 100`  
**권장 임곗값: **100(쿼리에 포함됨)  
**임곗값 정당화: **100%에서 파일 시스템이 병목 현상이 됩니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**BurstCreditBalance**  
**레이블: **FileSystemId  
**경보 설명: **EFS 파일 시스템의 버스트 크레딧 밸런스가 0으로 떨어질 때 경보가 발생합니다.  
**의도: **처리량 저하를 유발하는 소진된 버스트 크레딧을 감지합니다.  
**PromQL 기준: **`avg({__name__="BurstCreditBalance", "@instrumentation.@name"="cloudwatch.aws/efs", FileSystemId="{{your-filesystem-id}}"}) <= 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **크레딧 0은 처리량 감소를 유발합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

## Amazon EKS Container Insights
<a name="Recommended_PromQL_EKS"></a>

**node\_cpu\_utilization**  
**레이블: **ClusterName  
**경보 설명: **EKS 워커 노드에서 최대 CPU 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **워커 노드에서 높은 CPU를 감지합니다.  
**PromQL 기준: **`max({__name__="node_cpu_utilization", "@instrumentation.@name"="cloudwatch.aws/eks-containerinsights", ClusterName="{{your-cluster-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**node\_filesystem\_utilization**  
**레이블: **ClusterName  
**경보 설명: **EKS 워커 노드에서 최대 파일 시스템 사용률이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **워커 노드에서 높은 파일 시스템 사용량을 감지합니다.  
**PromQL 기준: **`max({__name__="node_filesystem_utilization", "@instrumentation.@name"="cloudwatch.aws/eks-containerinsights", ClusterName="{{your-cluster-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **노드의 스토리지 용량과 사용 패턴을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**node\_memory\_utilization**  
**레이블: **ClusterName  
**경보 설명: **EKS 워커 노드에서 최대 메모리 사용률이 80%를 초과할 때 경보가 발생합니다.  
**의도: **워커 노드에서 높은 메모리를 감지합니다.  
**PromQL 기준: **`max({__name__="node_memory_utilization", "@instrumentation.@name"="cloudwatch.aws/eks-containerinsights", ClusterName="{{your-cluster-name}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 포화 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**pod\_cpu\_utilization\_over\_pod\_limit**  
**레이블: **ClusterName, Namespace, Service  
**경보 설명: **포드 CPU 사용률이 한도의 80%를 초과할 때 경보가 발생합니다.  
**의도: **CPU 한도에 근접하는 포드를 감지합니다.  
**PromQL 기준: **`max({__name__="pod_cpu_utilization_over_pod_limit", "@instrumentation.@name"="cloudwatch.aws/eks-containerinsights", ClusterName="{{your-cluster-name}}",Namespace="{{your-namespace}}",Service="{{your-service}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 스로틀링 발생 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**pod\_memory\_utilization\_over\_pod\_limit**  
**레이블: **ClusterName, Namespace, Service  
**경보 설명: **포드 메모리 사용률이 한도의 80%를 초과할 때 경보가 발생합니다.  
**의도: **메모리 한도에 근접하는 포드를 감지합니다.  
**PromQL 기준: **`max({__name__="pod_memory_utilization_over_pod_limit", "@instrumentation.@name"="cloudwatch.aws/eks-containerinsights", ClusterName="{{your-cluster-name}}",Namespace="{{your-namespace}}",Service="{{your-service}}"}) > 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80%는 OOMKill 발생 전 헤드룸을 제공합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## Amazon ElastiCache
<a name="Recommended_PromQL_ElastiCache"></a>

**CPUUtilization**  
**레이블: **CacheClusterId, CacheNodeId  
**경보 설명: **ElastiCache 노드의 평균 CPU 사용률이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **인스턴스에서 높은 CPU를 감지합니다.  
**PromQL 기준: **`avg({__name__="CPUUtilization", "@instrumentation.@name"="cloudwatch.aws/elasticache", CacheClusterId="{{your-cache-cluster-id}}",CacheNodeId="{{your-cache-node-id}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **노드 유형 및 워크로드 특성을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**CurrConnections**  
**레이블: **CacheClusterId, CacheNodeId  
**경보 설명: **ElastiCache 노드의 연결 수가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **높은 연결 수를 감지합니다.  
**PromQL 기준: **`avg({__name__="CurrConnections", "@instrumentation.@name"="cloudwatch.aws/elasticache", CacheClusterId="{{your-cache-cluster-id}}",CacheNodeId="{{your-cache-node-id}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **예상 연결 풀 크기 및 애플리케이션 요구 사항을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

**DatabaseMemoryUsagePercentage**  
**레이블: **CacheClusterId  
**경보 설명: **ElastiCache 클러스터의 데이터베이스 메모리 사용량이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **높은 메모리 사용량을 감지하여 쓰기 실패를 방지합니다.  
**PromQL 기준: **`avg({__name__="DatabaseMemoryUsagePercentage", "@instrumentation.@name"="cloudwatch.aws/elasticache", CacheClusterId="{{your-cache-cluster-id}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **제거 정책과 데이터 중요도를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**EngineCPUUtilization**  
**레이블: **CacheClusterId  
**경보 설명: **ElastiCache 클러스터의 Redis 엔진 CPU 사용률이 90%를 초과할 때 경보가 발생합니다.  
**의도: **높은 Redis 엔진 CPU 사용률을 감지합니다.  
**PromQL 기준: **`avg({__name__="EngineCPUUtilization", "@instrumentation.@name"="cloudwatch.aws/elasticache", CacheClusterId="{{your-cache-cluster-id}}"}) > 90`  
**권장 임곗값: **90(쿼리에 포함됨)  
**임곗값 정당화: **Redis는 단일 스레드이며 90% 초과는 포화를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**ReplicationLag**  
**레이블: **CacheClusterId  
**경보 설명: **ElastiCache 클러스터의 복제 지연 시간이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **데이터 일관성에 영향을 주는 복제 지연을 감지합니다.  
**PromQL 기준: **`avg({__name__="ReplicationLag", "@instrumentation.@name"="cloudwatch.aws/elasticache", CacheClusterId="{{your-cache-cluster-id}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **오래된 읽기에 대한 애플리케이션의 허용 오차를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

## 탄력적 GPU
<a name="Recommended_PromQL_ElasticGPUs"></a>

**GPUConnectivityCheckFailed**  
**레이블: **InstanceId, EGPUId  
**경보 설명: **Elastic Graphics 액셀러레이터가 인스턴스와의 연결이 끊어질 때 경보가 발생합니다.  
**의도: **Elastic Graphics 액셀러레이터에 대한 연결 문제를 감지합니다.  
**PromQL 기준: **`max({__name__="GPUConnectivityCheckFailed", "@instrumentation.@name"="cloudwatch.aws/elasticgpus", InstanceId="{{your-instance-id}}",EGPUId="{{your-egpu-id}}"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **모든 연결 실패에는 조사가 필요합니다.  
**평가 간격: **300  
**보류 기간: **900  
**복구 기간: **900

**GPUHealthCheckFailed**  
**레이블: **InstanceId, EGPUId  
**경보 설명: **Elastic Graphics 액셀러레이터 상태 확인이 실패할 때 경보가 발생합니다.  
**의도: **비정상 Elastic Graphics 액셀러레이터를 감지합니다.  
**PromQL 기준: **`max({__name__="GPUHealthCheckFailed", "@instrumentation.@name"="cloudwatch.aws/elasticgpus", InstanceId="{{your-instance-id}}",EGPUId="{{your-egpu-id}}"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **상태 확인 실패는 액셀러레이터 문제를 나타냅니다.  
**평가 간격: **300  
**보류 기간: **900  
**복구 기간: **900

## Amazon EventBridge Scheduler
<a name="Recommended_PromQL_Scheduler"></a>

**TargetErrorThrottledCount**  
**경보 설명: **예약 대상 간접 호출이 스로틀링될 때 경보가 발생합니다.  
**의도: **일정 지연을 유발하는 대상 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="TargetErrorThrottledCount", "@instrumentation.@name"="cloudwatch.aws/scheduler"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **모든 스로틀링은 대상 용량 문제를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**InvocationThrottleCount**  
**경보 설명: **스케줄러 간접 호출이 스로틀링될 때 경보가 발생합니다.  
**의도: **스케줄러 간접 호출 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="InvocationThrottleCount", "@instrumentation.@name"="cloudwatch.aws/scheduler"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **스로틀링은 예약된 실행을 지연시킵니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**InvocationDroppedCount**  
**경보 설명: **예약된 간접 호출이 삭제될 때 경보가 발생합니다.  
**의도: **삭제된 간접 호출을 감지합니다.  
**PromQL 기준: **`sum({__name__="InvocationDroppedCount", "@instrumentation.@name"="cloudwatch.aws/scheduler"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **삭제된 간접 호출은 예약된 이벤트 손실을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **60  
**복구 기간: **60

**InvocationsFailedToBeSentToDeadLetterCount**  
**경보 설명: **실패한 간접 호출을 Dead Letter Queue(DLQ)로 전송할 수 없을 때 경보가 발생합니다.  
**의도: **DLQ 전송 실패를 감지합니다.  
**PromQL 기준: **`sum({__name__="InvocationsFailedToBeSentToDeadLetterCount", "@instrumentation.@name"="cloudwatch.aws/scheduler"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **DLQ 전송 실패는 오류 정보 손실을 의미합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

## Amazon Kinesis Data Streams
<a name="Recommended_PromQL_Kinesis"></a>

**GetRecords.IteratorAgeMilliseconds**  
**레이블: **StreamName  
**경보 설명: **Kinesis 스트림의 소비자 반복기 수명이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **보존 기간을 초과하여 데이터 손실 위험이 있는 데이터를 감지합니다.  
**PromQL 기준: **`max({__name__="GetRecords.IteratorAgeMilliseconds", "@instrumentation.@name"="cloudwatch.aws/kinesis", StreamName="{{your-stream-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **스트림 보존 기간 백분율을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**GetRecords.Success**  
**레이블: **StreamName  
**경보 설명: **Kinesis 스트림의 GetRecords 성공률이 임곗값 아래로 떨어질 때 경보가 발생합니다.  
**의도: **소비자 검색 실패를 감지합니다.  
**PromQL 기준: **`avg({__name__="GetRecords.Success", "@instrumentation.@name"="cloudwatch.aws/kinesis", StreamName="{{your-stream-name}}"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **예상 성공률을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**PutRecord.Success**  
**레이블: **StreamName  
**경보 설명: **Kinesis 스트림의 PutRecord 성공률이 임곗값 아래로 떨어질 때 경보가 발생합니다.  
**의도: **생산자 수집 실패를 감지합니다.  
**PromQL 기준: **`avg({__name__="PutRecord.Success", "@instrumentation.@name"="cloudwatch.aws/kinesis", StreamName="{{your-stream-name}}"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **예상 성공률을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**PutRecords.FailedRecords**  
**레이블: **StreamName  
**경보 설명: **Kinesis 스트림의 배치 Put 작업이 실패한 레코드를 생성할 때 경보가 발생합니다.  
**의도: **일괄 Put 실패를 감지합니다.  
**PromQL 기준: **`sum({__name__="PutRecords.FailedRecords", "@instrumentation.@name"="cloudwatch.aws/kinesis", StreamName="{{your-stream-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 실패 횟수를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**ReadProvisionedThroughputExceeded**  
**레이블: **StreamName  
**경보 설명: **Kinesis 스트림의 소비자 읽기가 프로비저닝된 처리량을 초과할 때 경보가 발생합니다.  
**의도: **소비자 읽기 스로틀링을 감지합니다.  
**PromQL 기준: **`avg({__name__="ReadProvisionedThroughputExceeded", "@instrumentation.@name"="cloudwatch.aws/kinesis", StreamName="{{your-stream-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **지속적인 스로틀링은 용량 요구 사항을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**SubscribeToShardEvent.MillisBehindLatest**  
**레이블: **StreamName, ConsumerName  
**경보 설명: **향상된 팬아웃 소비자가 최신 레코드보다 뒤처질 때 경보가 발생합니다.  
**의도: **향상된 팬아웃 소비자 처리 지연 시간을 감지합니다.  
**PromQL 기준: **`avg({__name__="SubscribeToShardEvent.MillisBehindLatest", "@instrumentation.@name"="cloudwatch.aws/kinesis", StreamName="{{your-stream-name}}",ConsumerName="{{your-consumer-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 처리 지연을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**WriteProvisionedThroughputExceeded**  
**레이블: **StreamName  
**경보 설명: **Kinesis 스트림의 생산자 쓰기가 프로비저닝된 처리량을 초과할 때 경보가 발생합니다.  
**의도: **생산자 쓰기 스로틀링을 감지합니다.  
**PromQL 기준: **`avg({__name__="WriteProvisionedThroughputExceeded", "@instrumentation.@name"="cloudwatch.aws/kinesis", StreamName="{{your-stream-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **지속적인 스로틀링은 용량 확보가 필요함을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## AWS Lambda
<a name="Recommended_PromQL_Lambda"></a>

**ClaimedAccountConcurrency**  
**경보 설명: **클레임한 계정 동시성이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **동시성 할당량에 근접하는 계정을 감지합니다.  
**PromQL 기준: **`max({__name__="ClaimedAccountConcurrency", "@instrumentation.@name"="cloudwatch.aws/lambda"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **리전별 동시성 한도의 백분율로 설정합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

**오류**  
**레이블: **FunctionName  
**경보 설명: **Lambda 함수의 함수 오류 수가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **높은 함수 오류 수를 감지합니다.  
**PromQL 기준: **`sum({__name__="Errors", "@instrumentation.@name"="cloudwatch.aws/lambda", FunctionName="{{your-function-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 오류량을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **180  
**복구 기간: **300

**제한**  
**레이블: **FunctionName  
**경보 설명: **Lambda 함수의 함수 간접 호출이 스로틀링될 때 경보가 발생합니다.  
**의도: **함수 간접 호출 스로틀링을 감지합니다.  
**PromQL 기준: **`sum({__name__="Throttles", "@instrumentation.@name"="cloudwatch.aws/lambda", FunctionName="{{your-function-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **스로틀링은 동시성 한도에 도달했음을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**지속 시간**\*  
**레이블: **FunctionName  
**경보 설명: **Lambda 함수의 p90 함수 지속 시간이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **장기 실행 함수 간접 호출을 감지합니다.  
**PromQL 기준: **`histogram_quantile(0.9, {__name__="Duration", "@instrumentation.@name"="cloudwatch.aws/lambda", FunctionName="{{your-function-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **함수 제한 시간을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**ConcurrentExecutions**  
**레이블: **FunctionName  
**경보 설명: **Lambda 함수의 동시 실행이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **동시성 한도에 근접하는 함수를 감지합니다.  
**PromQL 기준: **`max({__name__="ConcurrentExecutions", "@instrumentation.@name"="cloudwatch.aws/lambda", FunctionName="{{your-function-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **예약된 동시성의 백분율로 설정합니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

## AWS Lambda Insights
<a name="Recommended_PromQL_LambdaInsights"></a>

**memory\_utilization**  
**레이블: **function\_name  
**경보 설명: **Lambda 함수의 평균 메모리 사용률이 90%를 초과할 때 경보가 발생합니다.  
**의도: **구성된 메모리 한도에 근접하는 함수를 감지합니다.  
**PromQL 기준: **`avg({__name__="memory_utilization", "@instrumentation.@name"="cloudwatch.aws/lambda-insights", function_name="{{your-function-name}}"}) > 90`  
**권장 임곗값: **90(쿼리에 포함됨)  
**임곗값 정당화: **90%를 초과하면 메모리 부족 오류가 발생할 위험이 있습니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

## NAT 게이트웨이
<a name="Recommended_PromQL_NATGateway"></a>

**ErrorPortAllocation**  
**레이블: **NatGatewayId  
**경보 설명: **NAT 게이트웨이가 새 연결을 위한 포트를 할당하지 못할 때 경보가 발생합니다.  
**의도: **새 연결을 막는 포트 할당 실패를 감지합니다.  
**PromQL 기준: **`sum({__name__="ErrorPortAllocation", "@instrumentation.@name"="cloudwatch.aws/natgateway", NatGatewayId="{{your-nat-gateway-id}}"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **모든 할당 실패는 연결에 영향을 줍니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**PacketsDropCount**  
**레이블: **NatGatewayId  
**경보 설명: **NAT 게이트웨이가 임곗값을 초과하는 패킷을 삭제할 때 경보가 발생합니다.  
**의도: **용량 또는 연결 문제를 나타내는 패킷 삭제를 감지합니다.  
**PromQL 기준: **`sum({__name__="PacketsDropCount", "@instrumentation.@name"="cloudwatch.aws/natgateway", NatGatewayId="{{your-nat-gateway-id}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 삭제율을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## AWS PrivateLink 엔드포인트
<a name="Recommended_PromQL_PrivateLinkEndpoints"></a>

**PacketsDropped**  
**레이블: **VpcId, VpcEndpointId, EndpointType, SubnetId, ServiceName  
**경보 설명: **VPC 엔드포인트가 임곗값을 초과하는 패킷을 삭제할 때 경보가 발생합니다.  
**의도: **비정상 엔드포인트 또는 엔드포인트 서비스를 감지합니다.  
**PromQL 기준: **`sum({__name__="PacketsDropped", "@instrumentation.@name"="cloudwatch.aws/privatelinkendpoints", VpcId="{{your-vpc-id}}",VpcEndpointId="{{your-vpc-endpoint-id}}",EndpointType="{{your-endpoint-type}}",SubnetId="{{your-subnet-id}}",ServiceName="{{your-service-name}}"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 삭제율을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## AWS PrivateLink 서비스
<a name="Recommended_PromQL_PrivateLinkServices"></a>

**RstPacketsSent**  
**레이블: **ServiceId, LoadBalancerArn, Az  
**경보 설명: **엔드포인트 서비스의 RST 패킷 속도가 임곗값을 초과할 때 경보가 발생합니다.  
**의도:** 엔드포인트 서비스의 비정상 대상을 감지합니다.  
**PromQL 기준: **`sum({__name__="RstPacketsSent", "@instrumentation.@name"="cloudwatch.aws/privatelinkservices", ServiceId="SVC",LoadBalancerArn="LB",Az="AZ"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 RST 패킷 속도를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## RDS
<a name="Recommended_PromQL_RDS"></a>

**CPUUtilization**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 평균 CPU 사용률이 90%를 초과할 때 경보가 발생합니다.  
**의도: **높은 CPU를 감지하여 성능 저하를 방지합니다.  
**PromQL 기준: **`avg({__name__="CPUUtilization", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) > 90`  
**권장 임곗값: **90(쿼리에 포함됨)  
**임곗값 정당화: **90%는 포화 상태에 가까움을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**DatabaseConnections**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 데이터베이스 연결이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **최대 한도에서 연결 거부를 방지합니다.  
**PromQL 기준: **`avg({__name__="DatabaseConnections", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **max\_connections 파라미터의 백분율로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**EBSByteBalance%**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 EBS 바이트 밸런스가 10% 미만으로 떨어질 때 경보가 발생합니다.  
**의도: **병목 현상을 일으키는 낮은 처리량 크레딧을 감지합니다.  
**PromQL 기준: **`avg({__name__="EBSByteBalance%", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) < 10`  
**권장 임곗값: **10(쿼리에 포함됨)  
**임곗값 정당화: **10% 미만이면 처리량 저하 위험이 있습니다.  
**평가 간격: **60  
**보류 기간: **180  
**복구 기간: **180

**EBSIOBalance%**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 EBS IO 밸런스가 10% 미만으로 떨어질 때 경보가 발생합니다.  
**의도: **병목 현상을 일으키는 낮은 IOPS 크레딧을 감지합니다.  
**PromQL 기준: **`avg({__name__="EBSIOBalance%", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) < 10`  
**권장 임곗값: **10(쿼리에 포함됨)  
**임곗값 정당화: **10% 미만이면 IOPS 저하 위험이 있습니다.  
**평가 간격: **60  
**보류 기간: **180  
**복구 기간: **180

**FreeableMemory**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 확장 가능 메모리가 임곗값 아래로 떨어질 때 경보가 발생합니다.  
**의도: **연결 거부를 일으키는 메모리 부족을 방지합니다.  
**PromQL 기준: **`avg({__name__="FreeableMemory", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **인스턴스 클래스 메모리를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**FreeLocalStorage**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **Aurora 인스턴스의 로컬 여유 스토리지가 임곗값 아래로 떨어질 때 경보가 발생합니다.  
**의도: **Aurora 로컬 스토리지 소진을 방지합니다.  
**PromQL 기준: **`avg({__name__="FreeLocalStorage", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **작업에 필요한 최솟값을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**FreeStorageSpace**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 여유 스토리지 공간이 임곗값 아래로 떨어질 때 경보가 발생합니다.  
**의도: **스토리지 공간 부족으로 인한 가동 중지 시간을 방지합니다.  
**PromQL 기준: **`min({__name__="FreeStorageSpace", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **스토리지 증가율 및 프로비저닝된 크기를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**MaximumUsedTransactionID(MaximumUsedTransactionIDs**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 사용된 최대 트랜잭션 ID 수가 10억 개를 초과할 때 경보가 발생합니다.  
**의도: **PostgreSQL 트랜잭션 ID 랩어라운드를 방지합니다.  
**PromQL 기준: **`avg({__name__="MaximumUsedTransactionIDs", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) > 1000000000`  
**권장 임곗값: **1000000000(쿼리에 포함됨)  
**임곗값 정당화: **10억은 랩어라운드 위험이 임박했음을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **60  
**복구 기간: **60

**ReadLatency**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 p90 읽기 지연 시간이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **디스크 문제를 나타내는 긴 읽기 지연 시간을 감지합니다.  
**PromQL 기준: **`histogram_quantile(0.9, {__name__="ReadLatency", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 애플리케이션 지연 시간을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**ReplicaLag**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 읽기 복제본의 복제 지연 시간이 60초를 초과할 때 경보가 발생합니다.  
**의도: **데이터 손실 위험이 있는 복제 지연을 감지합니다.  
**PromQL 기준: **`max({__name__="ReplicaLag", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) > 60`  
**권장 임곗값: **60(쿼리에 포함됨)  
**임곗값 정당화: **60초는 대부분의 워크로드에서 상당한 지연 시간을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

**WriteLatency**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 p90 쓰기 지연 시간이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **디스크 문제를 나타내는 긴 쓰기 지연 시간을 감지합니다.  
**PromQL 기준: **`histogram_quantile(0.9, {__name__="WriteLatency", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 애플리케이션 지연 시간을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**DBLoad**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 평균 데이터베이스 로드가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **성능 저하를 유발하는 높은 데이터베이스 로드를 감지합니다.  
**PromQL 기준: **`avg({__name__="DBLoad", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **vCPU 수의 배수로 설정합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**AuroraVolumeBytesLeftTotal**  
**레이블: **DBClusterIdentifier  
**경보 설명: **남아 있는 Aurora 클러스터 스토리지 바이트가 임곗값 아래로 떨어질 때 경보가 발생합니다.  
**의도: **Aurora 클러스터 스토리지 소진을 방지합니다.  
**PromQL 기준: **`avg({__name__="AuroraVolumeBytesLeftTotal", "@instrumentation.@name"="cloudwatch.aws/rds", DBClusterIdentifier="CLUSTER"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **성장률을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**AuroraBinlogReplicaLag**  
**레이블: **DBClusterIdentifier  
**경보 설명: **Aurora binlog 복제본 지연 시간이 오류 상태를 나타날 때 경보가 발생합니다.  
**의도: **라이터 인스턴스 복제 오류를 감지합니다.  
**PromQL 기준: **`avg({__name__="AuroraBinlogReplicaLag", "@instrumentation.@name"="cloudwatch.aws/rds", DBClusterIdentifier="CLUSTER"}) <= -1`  
**권장 임곗값: **-1(쿼리에 포함됨)  
**임곗값 정당화: **-1은 오류 상태를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **120  
**복구 기간: **120

**BlockedTransactions**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 차단된 트랜잭션 수가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **성능 저하를 유발하는 트랜잭션 차단을 감지합니다.  
**PromQL 기준: **`avg({__name__="BlockedTransactions", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 차단된 트랜잭션 수를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**BufferCacheHitRatio**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **RDS 인스턴스의 버퍼 캐시 적중률이 80% 미만으로 떨어질 때 경보가 발생합니다.  
**의도: **성능 저하를 유발하는 낮은 캐시 효율성을 감지합니다.  
**PromQL 기준: **`avg({__name__="BufferCacheHitRatio", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) < 80`  
**권장 임곗값: **80(쿼리에 포함됨)  
**임곗값 정당화: **80% 미만은 과도한 디스크 I/O를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **600  
**복구 기간: **600

**EngineUptime**  
**레이블: **DBClusterIdentifier  
**경보 설명: **엔진 가동 시간이 0으로 떨어지면 Aurora 라이터 재시작을 나타내는 경보가 발생합니다.  
**의도: **Aurora 라이터 인스턴스 가동 중지 시간 또는 충돌을 감지합니다.  
**PromQL 기준: **`avg({__name__="EngineUptime", "@instrumentation.@name"="cloudwatch.aws/rds", DBClusterIdentifier="CLUSTER"}) <= 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **가동 시간 0은 인스턴스 재시작을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **120  
**복구 기간: **120

**RollbackSegmentHistoryListLength**  
**레이블: **DBInstanceIdentifier  
**경보 설명: **Aurora 인스턴스의 롤백 세그먼트 기록 목록 길이가 100만 개를 초과할 때 경보가 발생합니다.  
**의도: **CPU 성능 저하를 유발하는 높은 롤백 기록을 감지합니다.  
**PromQL 기준: **`avg({__name__="RollbackSegmentHistoryListLength", "@instrumentation.@name"="cloudwatch.aws/rds", DBInstanceIdentifier="DB"}) > 1000000`  
**권장 임곗값: **1000000(쿼리에 포함됨)  
**임곗값 정당화: **100만 초과는 성능 문제를 일으킵니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**StorageNetworkThroughput**  
**레이블: **DBClusterIdentifier  
**경보 설명: **Aurora 클러스터의 스토리지 네트워크 처리량이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **네트워크 패킷 삭제 위험이 있는 높은 처리량을 감지합니다.  
**PromQL 기준: **`avg({__name__="StorageNetworkThroughput", "@instrumentation.@name"="cloudwatch.aws/rds", DBClusterIdentifier="CLUSTER"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **인스턴스 네트워크 용량을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## Route 53
<a name="Recommended_PromQL_Route53"></a>

**HealthCheckStatus**  
**레이블: **HealthCheckId  
**경보 설명: **Route 53 상태 확인에서 비정상 엔드포인트를 보고할 때 경보가 발생합니다.  
**의도:** Route 53 상태 검사기를 사용하여 비정상 엔드포인트를 감지합니다.  
**PromQL 기준: **`avg({__name__="HealthCheckStatus", "@instrumentation.@name"="cloudwatch.aws/route53", HealthCheckId="HC"}) < 1`  
**권장 임곗값: **1(쿼리에 포함됨)  
**임곗값 정당화: **1 미만은 엔드포인트가 상태 확인에 실패하고 있음을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **180  
**복구 기간: **180

## S3
<a name="Recommended_PromQL_S3"></a>

**4xxErrors**  
**레이블: **BucketName, FilterId  
**경보 설명: **S3 버킷의 4xx 오류율이 5%를 초과할 때 경보가 발생합니다.  
**의도: **비정상적인 클라이언트 오류율을 감지합니다.  
**PromQL 기준: **`avg({__name__="4xxErrors", "@instrumentation.@name"="cloudwatch.aws/s3", BucketName="BUCKET",FilterId="FILTER"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **5% 초과는 설정 또는 액세스 문제를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**5xxErrors**  
**레이블: **BucketName, FilterId  
**경보 설명: **S3 버킷의 5xx 오류율이 5%를 초과할 때 경보가 발생합니다.  
**의도: **애플리케이션에 영향을 주는 서버 측 오류를 감지합니다.  
**PromQL 기준: **`avg({__name__="5xxErrors", "@instrumentation.@name"="cloudwatch.aws/s3", BucketName="BUCKET",FilterId="FILTER"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **5% 초과는 S3 서비스 문제를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**OperationsFailedReplication**  
**레이블: **SourceBucket, DestinationBucket, RuleId  
**경보 설명: **버킷의 S3 복제 작업이 실패할 때 경보가 발생합니다.  
**의도: **데이터 불일치 위험이 있는 복제 실패를 감지합니다.  
**PromQL 기준: **`max({__name__="OperationsFailedReplication", "@instrumentation.@name"="cloudwatch.aws/s3", SourceBucket="SRC",DestinationBucket="DST",RuleId="RULE"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **모든 실패한 복제에는 조사가 필요합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## S3 객체 Lambda
<a name="Recommended_PromQL_S3ObjectLambda"></a>

**4xxErrors**  
**레이블: **AccessPointName, DataSourceARN  
**경보 설명: **S3 Object Lambda 액세스 포인트의 4xx 오류율이 5%를 초과할 때 경보가 발생합니다.  
**의도: **Object Lambda에 대한 비정상적인 클라이언트 오류율을 감지합니다.  
**PromQL 기준: **`avg({__name__="4xxErrors", "@instrumentation.@name"="cloudwatch.aws/s3objectlambda", AccessPointName="AP",DataSourceARN="ARN"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **5% 초과는 설정 문제를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**5xxErrors**  
**레이블: **AccessPointName, DataSourceARN  
**경보 설명: **S3 Object Lambda 액세스 포인트의 5xx 오류율이 5%를 초과할 때 경보가 발생합니다.  
**의도: **Object Lambda에서 서버 측 오류를 감지합니다.  
**PromQL 기준: **`avg({__name__="5xxErrors", "@instrumentation.@name"="cloudwatch.aws/s3objectlambda", AccessPointName="AP",DataSourceARN="ARN"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **5% 초과는 Lambda 또는 S3 문제를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**LambdaResponse4xx**  
**레이블: **AccessPointName, DataSourceARN  
**경보 설명: **S3 Object Lambda 액세스 포인트의 Lambda 함수 4xx 응답률이 5%를 초과할 때 경보가 발생합니다.  
**의도: **Lambda 함수 클라이언트 오류를 감지합니다.  
**PromQL 기준: **`avg({__name__="LambdaResponse4xx", "@instrumentation.@name"="cloudwatch.aws/s3objectlambda", AccessPointName="AP",DataSourceARN="ARN"}) > 0.05`  
**권장 임곗값: **0.05(쿼리에 포함됨)  
**임곗값 정당화: **5% 초과는 Lambda 함수 문제를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

## SNS
<a name="Recommended_PromQL_SNS"></a>

**NumberOfMessagesPublished**  
**레이블: **TopicName  
**경보 설명: **SNS 주제의 게시된 메시지 수가 임곗값 아래로 떨어질 때 경보가 발생합니다.  
**의도: **게시량의 상당한 감소를 감지합니다.  
**PromQL 기준: **`sum({__name__="NumberOfMessagesPublished", "@instrumentation.@name"="cloudwatch.aws/sns", TopicName="TOPIC"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **최소 예상 트래픽을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**NumberOfNotificationsDelivered**  
**레이블: **TopicName  
**경보 설명: **SNS 주제의 전달된 알림 수가 임곗값 아래로 떨어질 때 경보가 발생합니다.  
**의도: **알림 전송량의 감소를 감지합니다.  
**PromQL 기준: **`sum({__name__="NumberOfNotificationsDelivered", "@instrumentation.@name"="cloudwatch.aws/sns", TopicName="TOPIC"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **최소 예상 전달을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**NumberOfNotificationsFailed**  
**레이블: **TopicName  
**경보 설명: **SNS 주제의 실패한 알림 전송 횟수가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **전송 실패를 감지합니다.  
**PromQL 기준: **`sum({__name__="NumberOfNotificationsFailed", "@instrumentation.@name"="cloudwatch.aws/sns", TopicName="TOPIC"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 실패율을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**NumberOfNotificationsFilteredOut-InvalidAttributes**  
**레이블: **TopicName  
**경보 설명: **잘못된 메시지 속성으로 인해 알림이 필터링될 때 경보가 발생합니다.  
**의도: **잘못된 메시지 속성을 감지합니다.  
**PromQL 기준: **`sum({__name__="NumberOfNotificationsFilteredOut-InvalidAttributes", "@instrumentation.@name"="cloudwatch.aws/sns", TopicName="TOPIC"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **잘못된 필터는 잘못된 구성을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**NumberOfNotificationsFilteredOut-InvalidMessageBody**  
**레이블: **TopicName  
**경보 설명: **잘못된 메시지 본문으로 인해 알림이 필터링될 때 경보가 발생합니다.  
**의도: **잘못된 메시지 본문을 감지합니다.  
**PromQL 기준: **`sum({__name__="NumberOfNotificationsFilteredOut-InvalidMessageBody", "@instrumentation.@name"="cloudwatch.aws/sns", TopicName="TOPIC"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **잘못된 필터는 잘못된 구성을 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**NumberOfNotificationsRedrivenToDlq**  
**레이블: **TopicName  
**경보 설명: **SNS 주제에 대한 알림이 Dead Letter Queue(DLQ)로 전송될 때 경보가 발생합니다.  
**의도: **Dead Letter Queue(DLQ)로 전송된 메시지를 감지합니다.  
**PromQL 기준: **`sum({__name__="NumberOfNotificationsRedrivenToDlq", "@instrumentation.@name"="cloudwatch.aws/sns", TopicName="TOPIC"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **모든 DLQ 메시지는 전송 문제를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**NumberOfNotificationsFailedToRedriveToDlq**  
**레이블: **TopicName  
**경보 설명: **SNS 주제에 대한 알림이 Dead Letter Queue(DLQ)로 전송되지 않을 때 경보가 발생합니다.  
**의도: **DLQ 배달 실패를 감지합니다.  
**PromQL 기준: **`sum({__name__="NumberOfNotificationsFailedToRedriveToDlq", "@instrumentation.@name"="cloudwatch.aws/sns", TopicName="TOPIC"}) > 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **DLQ 실패는 오류 추적 손실을 의미합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**SMSMonthToDateSpentUSD**  
**레이블: **TopicName  
**경보 설명: **SNS 주제에 대한 SMS 지출이 계정 할당량에 근접할 때 경보가 발생합니다.  
**의도: **할당량에 근접한 SMS 지출을 감지합니다.  
**PromQL 기준: **`max({__name__="SMSMonthToDateSpentUSD", "@instrumentation.@name"="cloudwatch.aws/sns", TopicName="TOPIC"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **계정 SMS 할당량을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

**SMSSuccessRate**  
**레이블: **TopicName  
**경보 설명: **SNS 주제의 SMS 전송 성공률이 임곗값 아래로 떨어질 때 경보가 발생합니다.  
**의도: **실패한 SMS 전송을 감지합니다.  
**PromQL 기준: **`avg({__name__="SMSSuccessRate", "@instrumentation.@name"="cloudwatch.aws/sns", TopicName="TOPIC"}) < {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 전송률을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **300  
**복구 기간: **300

## SQS
<a name="Recommended_PromQL_SQS"></a>

**ApproximateAgeOfOldestMessage**  
**레이블: **QueueName  
**경보 설명: **SQS 대기열의 가장 오래된 메시지 수명이 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **충분히 빠르게 처리되지 않은 메시지를 감지합니다.  
**PromQL 기준: **`max({__name__="ApproximateAgeOfOldestMessage", "@instrumentation.@name"="cloudwatch.aws/sqs", QueueName="QUEUE"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **허용되는 메시지 처리 시간을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**ApproximateNumberOfMessagesNotVisible**  
**레이블: **QueueName  
**경보 설명: **SQS 대기열의 전송 중 메시지 수가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **소비자 문제를 나타내는 높은 전송 중 메시지를 감지합니다.  
**PromQL 기준: **`avg({__name__="ApproximateNumberOfMessagesNotVisible", "@instrumentation.@name"="cloudwatch.aws/sqs", QueueName="QUEUE"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **예상 처리량을 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**ApproximateNumberOfMessagesVisible**  
**레이블: **QueueName  
**경보 설명: **SQS 대기열의 표시되는 메시지 수가 임곗값을 초과할 때 경보가 발생합니다.  
**의도: **느린 소비자를 나타내는 메시지 백로그를 감지합니다.  
**PromQL 기준: **`avg({__name__="ApproximateNumberOfMessagesVisible", "@instrumentation.@name"="cloudwatch.aws/sqs", QueueName="QUEUE"}) > {{THRESHOLD}}`  
**권장 임곗값: **{{THRESHOLD}}(쿼리에 포함됨)  
**임곗값 정당화: **예상 대기열 깊이를 기준으로 설정합니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

**NumberOfMessagesSent**  
**레이블: **QueueName  
**경보 설명: **SQS 대기열로 메시지가 전송되지 않을 때 경보가 발생합니다.  
**의도: **생산자가 중지한 메시지 전송을 감지합니다.  
**PromQL 기준: **`sum({__name__="NumberOfMessagesSent", "@instrumentation.@name"="cloudwatch.aws/sqs", QueueName="QUEUE"}) <= 0`  
**권장 임곗값: **0(쿼리에 포함됨)  
**임곗값 정당화: **메시지 0개는 생산자 실패를 나타냅니다.  
**평가 간격: **60  
**보류 기간: **900  
**복구 기간: **900

## VPN
<a name="Recommended_PromQL_VPN"></a>

**TunnelState(VPN 수준)**  
**레이블: **VpnId  
**경보 설명: **하나 이상의 VPN 터널이 DOWN 상태일 때 경보가 발생합니다.  
**의도: **DOWN 상태의 터널을 하나 이상 감지합니다.  
**PromQL 기준: **`min({__name__="TunnelState", "@instrumentation.@name"="cloudwatch.aws/vpn", VpnId="VPN"}) < 1`  
**권장 임곗값: **1(쿼리에 포함됨)  
**임곗값 정당화: **1 미만은 터널이 다운되었음을 의미합니다.  
**평가 간격: **300  
**보류 기간: **900  
**복구 기간: **900

**TunnelState(터널 수준)**  
**레이블: **TunnelIpAddress  
**경보 설명: **특정 VPN 터널이 DOWN 상태일 때 경보가 발생합니다.  
**의도: **DOWN 상태의 특정 터널을 감지합니다.  
**PromQL 기준: **`min({__name__="TunnelState", "@instrumentation.@name"="cloudwatch.aws/vpn", TunnelIpAddress="IP"}) < 1`  
**권장 임곗값: **1(쿼리에 포함됨)  
**임곗값 정당화: **1 미만은 터널이 다운되었음을 의미합니다.  
**평가 간격: **300  
**보류 기간: **900  
**복구 기간: **900