Closed Kim-Yul closed 8 months ago
이전 이슈에서 발전된 사항 작성하였습니다.
이전에는 일차적으로 리전에 존재하는 하나의 인스턴스에 대한 정보만 가져올 수 있었습니다.
예를 들어
도쿄 리전에 인스턴스 1개
서울 리전에 인스턴스 2개
였을 때,
도쿄 리전에 인스턴스 1개
서울 리전에 인스턴스 1개
만 정확한 값을 추출할 수 있었습니다. 그러나 현재는 위와 다르게,
도쿄 리전에 인스턴스 1개
서울 리전에 인스턴스 2개
처럼 모든 인스턴스에 대한 정확한 값 추출이 가능합니다.
아래는 오레건 리전에 존재하던 두 인스턴스의 값을 추출하여 슬랙에 보낸 결과입니다.
시간 계산 역시 제대로 되었습니다.
또한 한 인스턴스가 하루에 꺼졌다 켜졌다 한 모든 내용 역시 슬랙에 보낼 수 있도록 작성하였습니다.
현재 EC2를 기준으로 코드가 작성되어 있어 람다에서 실행할 수 있도록 코드 수정
이 진행이되면 빠르게 review 진행할 수 있도록 하겠습니다.
현재 람다 함수로 수정하였고, 제가 생각한 내에 에러 처리를 완료하였습니다.
개발 목적 : 이벤트가 실행되는 시간을 기준으로 전날의 인스턴스 사용량에 대하여 데이터를 추출하고 슬랙으로 리포트합니다. 기능 :
최대한 제가 생각한 내의 모든 경우를 생각하여 모두 실현 가능하게 작성 완료하였습니다. 리뷰 및 추가 에러 사항을 통해 수정하도록 하겠습니다.
event bridge : usage_daily_instance_usage_report (time : 오전 8시 40분) event function : usage_daily_instance_usage_report
서울 리전의 이벤트 브릿지를 통해 이벤트가 실행되면, 서울 리전의 람다 함수 1개를 통해 모든 리전을 순차적으로 돌며 사용한 인스턴스의 데이터를 수집하고, 메세지로 다듬어 슬랙으로 전송합니다.
정상적인 케이스
특이한 케이스 1
특이한 케이스 2
에러 발생 시 정상적으로 슬랙에 에러 메세지를 전달할 수 있도록 구현한 코드 이용하였습니다.
코드 상 문제 또는 자세한 설명이 필요한 부분, 그리고 수정 사항은 리뷰 확인 후 차례대로 반영하도록 하겠습니다! @mh3ong @red0sena 리뷰 부탁드립니다!
추가적인 궁금점
함수나 파일 이름을 과거형으로 사용할 이유가 있을까요?
명명에 통일성이 없었던 것으로 판단하고 모두 현재형으로 수정하겠습니다.
리뷰에 남겨주신 내용을 바탕으로 코드를 수정하던 중 고려하지 못했던 사항이 있어 추가로 기능 개발 중입니다.
Terminate event 는 언제든지 발생할 수 있다.
Start, Stop, Terminate event 는 복수로 켜고 끌 수 있다.
수정은 진행하였으나, 위 기능 개발하고 있어 정리되는 대로 다시 푸쉬하겠습니다.
유림아. 위의 제약 사항들이 모니터링을 하는데 굉장히 큰 제약 사항이 아니라면 우선 배포를 하고 결과를 보면서 발전시켜 나가도 좋을것 같아.
우선 리뷰한 내용이 반영된 코드 먼저 올리겠습니다! 둘 다 에러를 발생시킬 수 있는 상황이지만, 일반적인 케이스는 에러 발생 없이 진행 될 것 같습니다.
현재 세팅으로는 오전 8시 40분에 슬랙으로 전달 예정입니다! 내일부터 cloud-usage 채널에 올라갈 예정입니다
현재 최신 커밋(a114907)을 기준으로 람다 코드 올려두었습니다. 이벤트는 매일 오전 8시 40분에 실행될 예정이며, 아직 미흡한 부분이 있어 에러와 함께 출력될 수 있습니다. 다른 작업은 계속 진행하겠습니다.
고려 사항
작업에 맞춰 README.md 파일 수정 예정입니다.
AWS 시스템의 오류 또는 생성 실패로 같은 이벤트 중복 시 사용량 측정에 오류가 있었습니다.
50개 이상의 검색이 가능하도록 기능 개발하였습니다.
메세지 형식을 알아보기 쉽게 수정할 예정입니다. [수정 전] [수정 후]
DDD 실험과 같이 특수한 상황일 때 사용량 메세지를 어떻게 해야할 지 고민 중입니다. 가능하면 전달하지 않는 방향을 고려 중입니다.
현재 코드 작업 완료하였습니다. 람다에는 현재 최종으로 올라간 커밋(6b18e7c)의 버전이 올라가 있습니다. 교수님의 의견대로 검색 기간 내에 인스턴스가 종료되지 않았을 때 '인스턴스 실행 중' 이라는 문구를 달긴 하였습니다. 그러나 이 경우 이때 사용한 사용량은 측정이 어려운데, 얼마나 사용하였는지 추가하지 않아도 될까요? 이와 관련한 수정 사항이 없으면, 코드 리뷰 -> 수정 -> 머지 작업 진행하겠습니다.
그러면 그냥 인스턴스 실행 중 (12H 11M ) 이런식으로 해서 괄호안에서 시작 후 동작중인 현재까지 소요시간 만이라도 기록해주면 어떨까?
괜찮은 것 같습니다! 수정 해두고 다시 커밋하겠습니다!
현재 코드는 수정 완료하였습니다. 그러나 실제로 결과를 확인 해보니 가독성이 굉장히 떨어지는 것 같아 고민 중입니다.
[변경 전]
[변경 후]
가독성과 관련하여 확인 한 번 부탁드립니다. 현재 코드는 변경 전의 포맷으로 전달 예정입니다. 어떤 것이 괜찮아 보이실까요?
변경 후의 포맷으로 코드 수정 후 커밋하겠습니다. 또한, 스팟 이슈 에서 발생한 내용으로 미팅 진행하였고, 이 내용은 현재 풀리퀘에서 해결하겠습니다.
이후 코드 리뷰 요청드리며 이 이슈 마무리하고, 새 이슈에서 트래픽 진행하겠습니다.
미팅 진행 사항 및 포맷 변경하였습니다. 모니터링 이후 에러 사항 발생 시 코드 수정이 있을 수 있습니다. 현재 람다에 최신 커밋(f1b075c)으로 올라가 있습니다. 내일 오전 모니터링 이후 코드 리뷰 부탁드립니다!
추가 반영 사항입니다.
지난 미팅으로 50건이 넘는 스팟리퀘스트와 관련하여 정확한 인스턴스 사용량 대신 몇 번 요청이 있었는지 표현하기로 하였습니다.
성규님께 여쭤본 결과 요청 횟수가 일치하는 것을 확인하였습니다.
이중 리퀘스트 요청 평균 XX건
이라고 표현한 이유가 다음과 같이 min값과 max의 값을 이용하여 평균값을 추출하였기 때문이었습니다.
그러나 현재 확인한 건 min과 max 값이 모두 일치하고 있어서 현재는 리퀘스트 요청 약 XX건
으로 수정하는 것이 어울릴 것 같아 수정해둔 상태입니다.
에러 발생하는 원인 역시 수정하였습니다.
코드 리뷰 -> 수정 -> 머지
과정 진행하겠습니다.
코드 리뷰 부탁드립니다!
리뷰해주신 내용 반영하여 최신 커밋(1334694) 올렸습니다. 지난 주 모니터링과 일치하게 이상 없이 작동하는 것을 확인하였습니다. 추가로 수정하실 사항 없으시면 해당 풀리퀘 머지 하도록 하겠습니다!
이전에 작업하던 스팟 사용량 인스턴스의 코드 풀하였습니다.
현재 EC2에서 작업하던 내용이라 람다에 올릴 수 있도록 양식을 수정해야 하는 일이 있습니다. 내일 이어서 작업 진행하겠습니다.