ddps-lab / cloud-usage

MIT License
1 stars 1 forks source link

modified: instance management #19

Closed Kim-Yul closed 1 year ago

Kim-Yul commented 1 year ago

18 해당 내용에 최근 이슈에서 실행한 코드입니다.

lambda에서 실행시 30초 정도 소요됩니다. limit는 1분으로 두고 테스트 했습니다.

Kim-Yul commented 1 year ago

수정사항

  1. filter 추가 test 할 때 있었는데, 민감한 정보를 날리면서 함께 날린 것 같아 급하게 추가했습니다. 혹시 몰라서 terminate instance를 하나 생성하고 제대로 적용된 것을 확인하여, 수정하였습니다. image

또한, volume에는 filter를 생각 안 해두고 있었어서 volume에도 filter를 넣어 반복문 횟수를 줄였습니다.

  1. volume list name 수정 말씀하신대로 기존에 available volume를 orphaned volumes으로 수정하였습니다. 통일성을 위해 관련된 모든 변수의 이름을 수정해두었습니다.

우선은 다음 ec2 알림이 25분 뒤로 예정되어 있어, 오류로 인한 메세지 외에 모두 수정 완료하였습니다. lambda 내에도 우선 수정해둔 상태이며, volume는 기존에 10시에만 보이게끔 하려고 했으나 굳이 시간을 나눌 필요가 없을 듯하여 report 알림이 있을 때마다 표시하겠습니다.

오류 메세지를 띄우는 것은 바로 진행하겠습니다.

Kim-Yul commented 1 year ago

오류 메세지 슬랙으로 출력

예외처리 된 메세지를 슬랙으로 보내고, lambda를 강제종료하게끔 코드를 수정하였습니다.

image

일부러 오타를 내어 볼륨 관리 함수에서 exception을 진행하였고, 슬랙에 전달된 것을 확인하였습니다.

image

또한, 다소 난폭한 방법으로 sys.exit()를 호출하여 진행 중인 lambda 함수를 강제 종료하게 하였습니다. error가 생긴 순간, instance나 code에 문제가 있다고 생각하였고, 계속 이어서 lambda 함수가 실행되어도 에러 메세지를 계속 내뱉는 상황이 될 것 같아 선택한 방법입니다.

원래는 return을 적절히 이용해서 lambda 함수를 잘 끝마치면서도 exception message가 슬랙에 출력되도록 하고자 하였으나, 우선은 생각이 나질 않아 sys.exit()으로 올립니다. 다른 좋은 방법이 있다면 그것을 채택하여 수정하도록 하겠습니다.


말씀해주셨던 내용 중,

메시지를 슬랙으로 보내게끔 하자. API 만들어둔게 있으니. 물어서 추가하도록 하자.

위 내용을 이해하지 못하여 file 내에 send_exception_message() 함수를 만들어 관리하였습니다. 이 방법이 아니라면 어떤 것을 의미하는지 다시 한 번 전달 부탁드립니다...!

Kim-Yul commented 1 year ago

exception code

이전에 사용한 sys.exit() 대신 return과 예외처리로 코드 수정하였습니다. 이전에 말씀해주신 대로 return으로 처리할 수 있는 부분이었지만, 예상 반환값과 실제 반환값이 맞지 않아 Error가 발생하는 경우가 있습니다. 이 경우 예외처리를 하여 해결하였습니다.

또한 다소 복잡하게 a -> b 라는 과정으로 설명 드렸는데, 현재 함수의 구조는 다음과 같습니다.

1. lambda_handler()
2. enable_instance_management()
3.1. get_instance_items()
3.2. get_volume_items()
image

만약 3.1번인 get_instance_items()에서 오류가 발생할 경우, 2번도 오류가 발생한다고 뜰 것이고, 1번까지 연쇄적으로 오류가 발생한다고 뜰 것입니다. 저는 연쇄적인 오류가 발생하는 것이 아닌 딱 오류가 발생한 함수에서만 오류가 났다고 메세지를 띄우고 싶었고, 이 방법을 고민하다가 우선 sys.exit()로 오류가 난 부분에서 강제 종료를 실행 했었습니다.

각 함수별로 출력하는 메세지는 다음과 같습니다.

image

코드 리뷰 후 괜찮으시면 close -> merge 하겠습니다.

kmu-leeky commented 1 year ago

유림아 이전에 리뷰한 내용에 대해서 각각 응답 메시지가 있어야 할것 같아. 이전 메시지에서 답변이 없는 부분은 확인 해서 답을 해주고 어떻게 진행할지 결정하고 코딩 후에 머지 하자.

Kim-Yul commented 1 year ago

현재 ec2 예외처리를 api를 이용하여 진행할 수 있게 코드 작성 완료했습니다. 다만 lambda layer 작업에서 폴더 구조에 맞게 모듈을 올려야 한다고 하여 이 부분에서 헤매고 있습니다. 해당 부분 완료 후 테스트 진행, 이후 코드 커밋하겠습니다.

Kim-Yul commented 1 year ago

예외처리 api 연결 및 테스트 진행 완료하였습니다.

image

현재 스팟 인스턴스 실험으로 인해 홍콩 리전에 존재하는 인스턴스 목록만 불러와 테스트 해보았습니다.

image

정상실행 확인하였으며 코드 충돌로 인해 s3 management 머지 이후 커밋 진행하겠습니다.

kmu-leeky commented 1 year ago

유림아. 이게 지금 작업이 된건가? 에러 메시지 전송 부분을 수정한건가? 이전 코멘트에서 경환이가 작성한 부분 참조해서 진행해 달라고 이야기했는데 그 부분에 대한 언급은 없고, 지금 에러가 어떻게 구동이 되는지 이해가 어려워서 확인해본다.

예외처리 api 연결이 어떤걸 이야기했는지 이야기해주면 좋겠고, 파일 변화에 내가 이전에 코멘트 준 내용에 대한 답도 해주면 좋겠다.

Kim-Yul commented 1 year ago

이전에 교수님께서 말씀하신 api를 이용하여 에러 부분에 복잡하게 된 부분을 모두 수정하였습니다. 작업 충돌로 인해 커밋해두지 않았던 부분이 있어 진행사항 파악에 어려움이 있었던 것 같습니다. 우선 바로 커밋해두겠습니다.

Kim-Yul commented 1 year ago

람다에 반영해두도록 하겠습니다. 인스턴스 관리 이슈 해결하여 머지합니다.