

# REL06-BP03 알림 전송(실시간 처리 및 경보)
<a name="rel_monitor_aws_resources_notification_monitor"></a>

조직은 잠재적인 문제를 탐지하면 해당 직원과 시스템에 실시간 알림과 경고를 보내 이러한 문제에 신속하고 효과적으로 대응할 수 있도록 합니다.

 **원하는 결과:** 서비스 및 애플리케이션 지표를 기반으로 관련 경보를 구성하여 운영 이벤트에 신속하게 대응할 수 있습니다. 경보 임계값이 위반되면 적절한 인력과 시스템에 알림이 전송되어 근본적인 문제를 해결할 수 있습니다. 

 **일반적인 안티 패턴:** 
+ 임계값이 지나치게 높은 경보를 구성하여 중요한 알림을 보내지 못하는 상황
+ 임계값이 너무 낮은 경보를 구성하여 과도한 알림 노이즈로 인해 중요한 알림이 제대로 조치되지 않는 상황
+  사용량이 변경될 때 경보 및 임계값을 업데이트하지 않는 상황 
+  자동화된 작업을 통해 가장 잘 해결되는 경보에 대해, 자동화된 작업을 생성하지 않고 담당자에게 알림을 보내 과도한 알림이 전송되는 상황 

 **이 모범 사례 확립의 이점:** 적절한 인력과 시스템에 실시간 알림과 경고를 전송하면 문제를 조기에 탐지하고 운영 인시던트에 신속하게 대응할 수 있습니다. 

 **이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 워크로드는 애플리케이션의 가용성에 영향을 미칠 수 있는 문제의 탐지 가능성을 개선하고 자동화된 대응을 위한 트리거 역할을 할 수 있도록 실시간 처리 및 경보 기능을 갖추어야 합니다. 조직은 정의된 지표로 경고를 생성하여 중요한 이벤트가 발생하거나 지표가 임계값을 초과할 때마다 알림을 수신하여 실시간 처리 및 경보를 수행할 수 있습니다. 

 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 를 사용하면 [지표](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 와 정적 임계값, 이상 탐지 및 기타 기준에 기반한 CloudWatch 경보를 사용하는 복합 경보를 만들 수 있습니다. CloudWatch를 사용하여 구성할 수 있는 경보 유형에 대한 자세한 내용은 [CloudWatch 설명서의 알람 섹션](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)을 참조하십시오. 

 팀의 AWS 리소스 지표 및 경보에 대한 사용자 지정 보기를 구성할 수 있습니다. 이 경우 [CloudWatch 대시보드](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)를 사용할 수 있습니다. CloudWatch 콘솔의 사용자 지정 가능한 홈 페이지를 사용하면 여러 리전에 걸쳐 단일 보기에서 리소스를 모니터링할 수 있습니다. 

 경보는 다음에 알림을 보내는 것과 같은 하나 이상의 작업을 수행할 수 있습니다. [Amazon SNS 주제로 알림을 전송할 수 있습니다.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)이때 [Amazon EC2](https://aws.amazon.com/ec2/) 작업 또는 [Amazon EC2 Auto Scaling](https://aws.amazon.com/ec2/autoscaling/) 작업을 수행하거나 [OpsItem](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) 또는 [인시던트](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html) 를 생성합니다(AWS Systems Manager에서). 

 Amazon CloudWatch는 경보 상태가 변경될 때 [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 를 사용하여 알림을 전송하고, 게시자(생산자)에서 구독자(소비자)에게 메시지를 전달합니다. Amazon SNS 알림 설정에 대한 자세한 내용은 [Amazon SNS 구성](https://docs.aws.amazon.com/sns/latest/dg/sns-configuring.html)을 참조하십시오. 

 CloudWatch에서 [EventBridge](https://aws.amazon.com/eventrbridge/) [이벤트를 전송합니다](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-and-eventbridge.html) (CloudWatch 경보가 생성, 업데이트, 삭제되거나 상태가 변경될 때마다). 이러한 이벤트와 함께 EventBridge를 사용하여 경보 상태가 변경될 때마다 사용자에게 알리거나 [Systems Manager자동화](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html)를 사용하여 계정에서 이벤트를 자동으로 트리거하는 등의 작업을 수행하는 규칙을 만들 수 있습니다. 

** EventBridge 또는 Amazon SNS는 언제 사용해야 하나요? **

 이벤트 기반 애플리케이션을 개발하는 데 EventBridge와 Amazon SNS를 모두 사용할 수 있으며, 특정 요구 사항에 따라 선택이 달라집니다. 

 자체 애플리케이션, SaaS 애플리케이션 및 AWS 서비스의 이벤트에 반응하는 애플리케이션을 구축하려는 경우 Amazon EventBridge를 사용하는 것이 좋습니다. EventBridge는 타사 SaaS 파트너와 직접 통합되는 유일한 이벤트 기반 서비스입니다. 또한 EventBridge는 개발자가 계정에 리소스를 생성할 필요 없이 200개 이상의 AWS 서비스에서 이벤트를 자동으로 수집합니다. 

 EventBridge는 이벤트에 대해 정의된 JSON 기반 구조를 사용하며, 이벤트 본문 전체에 적용되는 규칙을 생성하여 [대상](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)에 전달할 이벤트를 선택할 수 있도록 도와줍니다. EventBridge는 현재 다음을 포함한 20개 이상의 AWS 서비스를 대상으로 지원합니다. [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html), [Amazon SQS](https://aws.amazon.com/sqs/), Amazon SNS, [Amazon Kinesis Data Streams](https://aws.amazon.com/kinesis/data-streams/) 및 [Amazon Data Firehose](https://aws.amazon.com/kinesis/data-firehose/)단축할 수 있습니다. 

 높은 팬 아웃(수천 또는 수백만 개의 엔드포인트)이 필요한 애플리케이션에는 Amazon SNS가 권장됩니다. 일반적으로 고객이 Amazon SNS를 규칙 대상으로 사용하여 필요한 이벤트를 필터링하고 여러 엔드포인트로 팬아웃하는 패턴을 볼 수 있습니다. 

 메시지는 비정형이며 모든 형식이 가능합니다. Amazon SNS는 Lambda, Amazon SQS, HTTP/S 엔드포인트, SMS, 모바일 푸시, 이메일 등 6가지 상이한 유형의 대상에 메시지를 전달할 수 있도록 지원합니다. Amazon SNS의 [일반적인 지연 시간은 30밀리초 미만입니다](https://aws.amazon.com/sns/faqs/). 다양한 AWS 서비스에서 Amazon SNS 메시지를 전송하도록 서비스를 구성하여 전송합니다(다음을 포함하여 30가지 이상: Amazon EC2, [Amazon S3](https://aws.amazon.com/s3/) 및 [Amazon RDS](https://aws.amazon.com/rds/)). 

### 구현 단계
<a name="implementation-steps"></a>

1.  경보를 생성합니다 [(Amazon CloudWatch 경보 사용)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html). 

   1.  지표 경보에서는 단일 CloudWatch 지표 또는 CloudWatch 지표에 종속된 표현식을 모니터링합니다. 경보는 여러 시간 간격에 걸쳐 임계값과 비교한 지표 또는 표현식의 값에 따라 하나 이상의 작업을 시작합니다. 작업은 다음으로 알림을 보내는 것으로 구성될 수 있습니다. [Amazon SNS 주제로 알림을 전송합니다.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)이때 [Amazon EC2](https://aws.amazon.com/ec2/) 작업 또는 [Amazon EC2 Auto Scaling](https://aws.amazon.com/ec2/autoscaling/) 작업을 수행하거나 [OpsItem](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) 또는 [인시던트](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html) 를 생성합니다(AWS Systems Manager에서). 

   1.  복합 경보는 사용자가 만든 다른 경보의 경보 조건을 고려하는 규칙 표현식으로 구성됩니다. 복합 경보는 모든 규칙 조건이 충족되는 경우에만 경보 상태로 전환됩니다. 복합 경보의 규칙 표현식에 지정된 경보에는 지표 경보 및 추가 복합 경보가 포함될 수 있습니다. 복합 경보는 상태가 변경될 때 Amazon SNS 알림을 보낼 수 있으며 다음을 생성할 수 있습니다. Systems Manager [OpsItems](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html) 또는 [인시던트](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html) (경보 상태에 들어갔지만 Amazon EC2 또는 Auto Scaling 작업을 수행할 수 없는 경우). 

1.  그리고 [Amazon SNS 알림을 설정합니다](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html). CloudWatch 경보 생성 시, 경보 상태가 변경될 때 알림을 보내도록 Amazon SNS 토픽을 포함할 수 있습니다. 

1.  [EventBridge에서](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) 지정된 CloudWatch 경보와 일치하는 규칙을 생성합니다. 각 규칙은 Lambda 함수를 비롯한 여러 대상을 지원합니다. 예를 들어, 사용 가능한 디스크 공간이 부족할 때 시작되는 경보를 정의하여 EventBridge 규칙을 통해 Lambda 함수를 트리거하여 공간을 정리할 수 있습니다. EventBridge 대상에 대한 자세한 내용은 [EventBridge 대상](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)을 참조하십시오. 

## 리소스
<a name="resources"></a>

 **관련 Well-Architected 모범 사례:** 
+  [REL06-BP01 워크로드의 모든 구성 요소 모니터링(생성)](rel_monitor_aws_resources_monitor_resources.md) 
+  [REL06-BP02 지표 정의 및 계산(집계)](rel_monitor_aws_resources_notification_aggregation.md) 
+  [REL12-BP01 플레이북을 사용하여 장애 조사](rel_testing_resiliency_playbook_resiliency.md) 

 **관련 문서:** 
+ [ Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [ CloudWatch Logs 인사이트 ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)
+  [Amazon CloudWatch 경보 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 
+  [Amazon CloudWatch 대시보드 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) 
+  [Amazon CloudWatch 지표 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 
+ [ Amazon SNS 알림 설정 ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)
+ [ CloudWatch 이상 탐지 ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html)
+ [ CloudWatch Logs 데이터 보호 ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/protect-sensitive-log-data-types.html)
+ [ Amazon EventBridge ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)
+ [ Amazon Simple Notification Service ](https://aws.amazon.com/sns/)

 **관련 동영상:** 
+ [ reinvent 2022 observability 동영상 ](https://www.youtube.com/results?search_query=reinvent+2022+observability)
+ [AWS re:Invent 2022 - Observability best practices at Amazon ](https://www.youtube.com/watch?v=zZPzXEBW4P8)

 **관련 예시:** 
+  [One Observability Workshop](https://observability.workshop.aws/) 
+ [ Amazon CloudWatch 경보에 의한 피드백 제어를 통해 AWS Lambda로 연결되는 Amazon EventBridge ](https://serverlessland.com/patterns/cdk-closed-loop-serverless-control-pattern)