본문 바로가기

Cloud/AWS

[AWS] Cloudwatch 와 SNS를 이용한 Email 알림기능 설정

반응형


AWS EC2 인스턴스를 사용하여 서비스를 운영중이라면 인스턴스의 상태관리가 매우 중요합니다.

AWS 콘솔 접속을 통해 인스턴스 상태를 확인 할 수도 있지만

CloudWatch의 이벤트 생성기능과 Simple Notification Service기능을 조합하면
EC2 인스턴스의 상태가 변경되는 것을 자동으로 감지하고
이메일로 상태정보를 전송받을 수 있는 알림기능을 구현할 수 있습니다.

우선 AWS Console에 접속하여  SNS  메뉴로 이동합니다.




Create Topic 메뉴를 선택합니다.




Topic Name 과 Display Name 을 입력합니다.
SendEmail 이라는 제목으로Topic을 생성하겠습니다.
여기서 입력한 Display Name 은 실제 이메일이 전송될 때 제목으로 사용됩니다.



Create Topic 버튼 을 클릭하면 생성된 Topic 의 상세화면으로 진입합니다.




이제 구독을 설정하겠습니다.
Create Subscription 을 클릭합니다.



TopicARN은 자동으로 입력되어 있습니다
이메일 알림을 받는게 목적이므로
Protocol 을 Email로 설정하고 Endpoint 에 알림을 받을 메일주소를 입력하고
Create Subscription 버튼을 클릭 합니다.

구독메일이 생성 되었습니다.



최초 생성시 Pending Confirmation 상태입니다.
생성된 Subscription 을 선택하고 Request Confirmations 을 클릭하면 Endpoint 에 입력한 메일 주소로 인증메일이 발송 됩니다.




Confirm subscription 을 선택하여 메일인증을 완료합니다.

다시 AWS 콘솔화면으로 돌아오면 해당 계정에 SubscriptionID 가 정상적으로 생성된 것을 확인할 수 있습니다.  


메일 구독을 위한 준비가 마무리 되었습니다.


이제 EC2 인스턴스의 상태가 변경되는 시점에 이벤트가 발생하도록  CloudWatch 이벤트 규칙 설정을 진행해 보도록 하겠습니다.


CloudWatch 메뉴 로 이동합니다.
신규 규칙을 생성을 위해 규칙생성 버튼을 선택 합니다.


이벤트 패턴을 선택후 서비스이름에 EC2 를 선택합니다.


이벤트 유형을 EC2 Instance State-change Notification 으로 선택합니다.


EC2 인스턴스의 상태가 변경될 때마다 이벤트가 발생하도록 설정이 되었습니다.

그럼 이벤트가 발생하는 시점마다 메일발송이 가능하도록 이벤트와 SNS 구독을 연결하는 절차가 필요합니다.


오른쪽에 대상추가 버튼을 선택하고 대상에 SNS 주제를 선택합니다.



  주제 항목에 위에서 생성한 SendEmail Topic 을 선택합니다.



모든 설정이 완료 되었으므로 세부 정보 구성 버튼을 선택합니다.


이름과 설명을 입력하고 규칙생성 버튼을 클릭하면 이벤트 생성이 완료 되게 됩니다.





이제 인스턴스가 신규로 생성되거나 Stop, Terminate 등 상태가 변경될때 마다 설정한 이메일로 위와 같이 알림이 전송되는 것을 확인 할 수 있습니다.