◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇
👨🏫 상황 예시:
AWS Lambda는 외부 API를 호출한다.
총 호출 횟수 중 10% 이상이 에러(예: Timeout)일 경우 SNS를 통해 개발자 팀에게 이메일을 보내기
필요한 AWS 서비스:
Lambda, CloudWatch, Amazon SNS
Step.1 : Lambda 함수 생성
- AWS Console에서 AWS Lambda Function을 생성하기
- 외부 API를 호출하는 Lambda 함수의 코드 작성하기
Step.2 : CloudWatch Metrics 확인
Lambda 함수는 자동으로 CloudWatch Metrics을 생성된다. (Lambda Function → Monitoring → CloudWatch Metrics)
사용하는 CloudWatch Metrics은 다음과 같다:
- Invocations : Lambda 함수가 호출된 총 수.
- Errors : Lambda 함수에서 발생한 오류 수 (Timeout 포함).
Step.3 : SNS Topic 생성하기
- SNS에서 새로운 Topic을 생성한다.
- Topic에서 새로운 Subscription을 생성하여 Protocol을 Email로 선택하고, 알림을 받을 이메일 주소를 입력한다.
- 이메일로 전송된 구독 확인 메일을 확인하고 수락한다.
Step.4 : CloudWatch Alarm 생성
- CloudWatch에서 알람 생성하기: "Alarms" → "Create Alarm"을 클릭하기.
- "Select metric"에서 Lambda > By Function Name을 선택하고, 사용할 Lambda 함수를 선택하고 Errors 메트릭과 Invocations 메트릭을 선택한다.
- 조건(Conditions) 설정하기
- Threshold Type: Static
- Condition: Sum(Errors) / Sum(Invocations) > 0.1
- 알람(Notification) 설정하기
- "Send a notification to"에 생성한 SNS Topic을 선택한다.
🤔 SOA 문제
SysOps 관리자는 AWS Lambda 함수에서 오류가 발생했을 때 소프트웨어 개발자에게 즉시 알림을 제공하는 솔루션을 만들어야 합니다. 이 요구사항을 충족할 수 있는 솔루션은 무엇입니까?
- 각 개발자에 대한 이메일 구독이 포함된 Amazon SNS Topic를 생성합니다.
Errors 메트릭과 Lambda 함수 이름을 차원으로 사용하여 Amazon CloudWatch Alarm를 생성합니다.
경보 상태가 ALARM에 도달하면 SNS Topic에 알림을 보내도록 경보를 구성합니다. - 각 개발자에 대한 모바일 구독이 포함된 Amazon SNS Topic를 생성합니다.
LambdaError를 이벤트 패턴으로 사용하고 SNS Topic 이름을 리소스로 사용하는 Amazon EventBridge(CloudWatch Events) 경보를 생성합니다.
경보 상태가 ALARM에 도달하면 SNS Topic로 알림을 보내도록 경보를 구성합니다. - Amazon SES에서 각 개발자의 이메일 주소를 검증합니다.
LambdaError 메트릭과 개발자 이메일 주소를 차원으로 사용하는 Amazon CloudWatch 규칙을 생성합니다.
규칙 상태가 ALARM에 도달하면 Amazon SES를 통해 이메일을 보내도록 규칙을 구성합니다. - Amazon SES에서 각 개발자의 휴대폰 번호를 검증합니다.
Error를 이벤트 패턴으로 사용하고 Lambda 함수 이름을 리소스로 사용하는 Amazon EventBridge(CloudWatch Events) 규칙을 생성합니다.
규칙 상태가 ALARM에 도달하면 Amazon SES를 통해 푸시 알림을 보내도록 규칙을 구성합니다.
정답
정답. 1번
😵 DVA 문제
회사가 AWS에서 서버리스 애플리케이션을 구축하고 있습니다. 이 애플리케이션은 AWS Lambda 함수를 사용하여 고객 주문을 처리하며, 24시간, 주 7일 운영됩니다. Lambda 함수는 외부 공급업체의 HTTP API를 호출하여 결제를 처리합니다.
부하 테스트 중에 개발자는 외부 공급업체의 결제 처리 API가 간헐적으로 시간 초과되고 오류를 반환한다는 것을 발견했습니다. 회사는 일부 결제 처리 API 호출이 오류를 반환할 것으로 예상하고 있습니다.
회사는 결제 처리 외부 API의 오류 비율이 시간당 총 트랜잭션의 5%를 초과할 경우 지원 팀이 거의 실시간으로 알림을 받을 수 있기를 원합니다. 개발자들은 기존에 구성된 Amazon Simple Notification Service(Amazon SNS) 주제를 사용하여 지원 팀에 알림을 보내야 합니다.
어떤 솔루션이 이러한 요구 사항을 충족할 수 있을까요?
- 결제 처리 API 호출의 결과를 Amazon CloudWatch에 기록합니다. Amazon CloudWatch Logs Insights를 사용하여 CloudWatch 로그를 쿼리합니다. Lambda 함수를 예약하여 CloudWatch 로그를 확인하고 기존 SNS 주제에 알립니다.
- 외부 결제 처리 API 호출 실패를 기록하는 사용자 정의 메트릭을 CloudWatch에 게시합니다. 오류 비율이 지정된 비율을 초과할 때 기존 SNS 주제에 알리도록 CloudWatch Alarm를 구성합니다.
- 외부 결제 처리 API 호출 결과를 새 Amazon SNS 주제에 게시합니다. 지원 팀원들을 새 SNS 주제에 구독시킵니다.
- 외부 결제 처리 API 호출 결과를 Amazon S3에 기록합니다. 정기적으로 실행될 Amazon Athena 쿼리를 예약합니다. Athena를 구성하여 오류 비율이 지정된 비율을 초과할 때 기존 SNS 주제로 알림을 보냅니다.
정답
2번