Justin의 개발 로그
article thumbnail

앞에서 준비한 Lambda 함수로 경보를 연결해 보겠습니다.

 

  • CloudWatch > 경보 > 경보생성
  • 지표 선택
    • Lunux 시스템의 디스크 여유 용량(DiskSapceAvailable)으로 만들어 보겠습니다.
    • 지표선택 > Linux > 

 

 

  • 아래 화면을 참고로 현재 장비의 디스크 용량을 보고 모니터링 임계 수치에 맞춰 입력을 합니다.
    • 현재 30K(30,000 MegaBytes = 약 30GB)의 여유 공간이 있습니다.
    • 임계값은 20K, 즉, 20GB 아래로 디스크 여유 공간이 줄면 통지가 오도록 설정해 보겠습니다.
      • 기간 : 15분
      • 조건 : 보다 작거나 같음
      • 임계값 : 20000
      • 다음 클릭

 

  • 알림을 구성합니다.
    • SNS 주제 선택 -> 새 주제 선택
    • 주제 이름 : Test_Seminar_SNS_Topic
    • 엔드포인트 : 자신의 이메일을 입력합니다. 
      *실무에서는 모니터링을 해야하는 대상자들을 그룹 메일로 만들어서 등록하는 것이 바람직 합니다.

 

  • 주제 생성 버튼을 클릭합니다.
  • [SNS 콘솔에서 보기]를 클릭합니다.
    • 아래 화면처럼 새로 등록한 엔드 포인트가 "확인 대기 중"인 것을 알 수 있습니다.

 

  • 이메일 수신함을 확인해서 메일 본문의 "Confirm Subscription" 을 클릭합니다.

 

  • Amazon SNS(Simple Notification Service) 화면을 새로고침 합니다.
    • 아래와 같이 엔드포인트가 "확인됨" 상태로 변경이 되었습니다.

 

  • 앞에서 준비한 Lambda 함수를 이용한 통보를 연결합니다.
    • 우측 하단의 "구독생성" 버튼을 클릭합니다.
    • 프로토콜에서 "AWS Lambda"를 선택합니다. 
    • 엔드포인트의 Lambda 함수의 ARN을 입력하거나, 검색합니다.
    •  

[여기서 잠깐] - Lambda의 ARN(Amazon Resource Name)을 확인하는 방법

더보기
Lambda 함수의 우측 상단에 ARN이 표시되고, 클립보드 버튼을 누르면 복사 됩니다. 참 쉽죠~

 

  • "구독 생성"을 클릭 합니다.
  • 현재 위치(구독)에서 한단계 위인 주제 이름("Test_Seminar_SNS_Topic")을 클릭하면 아래와 같이 Email과 Lambda 두 개의 구독이 설정된 것을 확인할 수 있습니다.

 

 

  • Amazon SNS 설정은 끝났으나, 창을 닫아도 됩니다.
  • CloudWatch > 경보 > 경보생성 화면으로 돌아옵니다.
  • "다음"을 누릅니다.
  • 아래와 같이 이름과 설명을 적당히(?) 입력 후 다음을 클릭합니다.

  • 지금까지 설정한 경보가 모두 맞는지 확인 후 "경보 생성" 버튼을 클릭 합니다.
  • 경보 생성이 끝났습니다. 아래와 같이 방금 추가한 경보가 생성된 것이 보입니다.

 

  • FileStorage 로그 통보 주기가 지난 후 확인하면 "정상", "경보" 등 통보 결과가 나옵니다.
  • 지난 과정을 수행하셨다면 수동으로 CloudWatch에 로그를 날리는 방법을 아실테니, 로그를 날린 후 경보 결과를 보셔도 됩니다.
  • 실제 통지가 오는 것을 확인하기 위해서는 임계치를 조정해서 경보가 되도록 하면 됩니다.
    본 예의 경우에는 약 30GB의 여유 공간이 있으니 32000 으로 임계치를 수정 후에 다시 로그를 날리면 
    경보를 받으실 수 있습니다.

 

 

EC2 서버에 CPU 부하 테스트는 아래와 같이 할 수 있습니다.

 

sudo yum install -y stress
stress --cpu 1 --timeout 300




 

P.S.

제 글을 보시면서 하나하나 따라하면 아마도 1~2시간내지는 익숙해 지면 10~20분이면, 
모니터링에서 Slack 통보까지 구성을 완료하실 수 있으리라 생각 됩니다.

 

여기까지 구성하는데 사실은 다수의 시행착오와 정보 수집이 있었고, 한국어 자료는 많지 않아서 
대부분 구글링으로 문제를 해결했습니다.

(Role 권한, 암호화 키, 개발에 필요한 Library 설치 등...)

 

비슷한 정보를 찾으시는 다른 개발자와 엔지니어분들이 시간 낭비와 삽질을 덜 할 수 있도록

과정과 관련 정보를 정리해서 공개 합니다.


많은 글 중에 어느 하나라도 누군가에게는 도움이 되길 희망하며...

 

 - 끝 -

profile

Justin의 개발 로그

@라이프노트

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!