웹사이트 검색

Cloudwatch로 EC2 인스턴스에 대한 경보를 생성하는 방법


이 페이지에서

  1. 전제 조건
  2. 무엇을 할 것인가?\n
  3. AWS에 로그인
  4. SNS 주제 만들기
  5. 경보 만들기
  6. 테스트: EC2 인스턴스에서 CPU 로드 증가
  7. 결론

Cloudwatch는 AWS(Amazon Web Services)의 \Management & Governance\ 서비스에 해당합니다. Cloudwatch는 AWS에서 서비스를 모니터링하고 특정 조건이 충족될 때 이를 관리하는 데 사용할 수 있는 모니터링 및 관리 서비스입니다. Cloudwatch는 성능을 수집하는 데 사용할 수 있습니다. AWS에서 사용 가능한 서비스의 운영 데이터(CPU, RAM, Network_IN, Network_Out 등).

청구 측면에서 Cloudwartch에는 프리 티어와 유료 티어의 2가지 옵션이 있습니다. 프리 티어는 5분 주기로 기본 모니터링 지표와 함께 제공되며 유료 티어는 1분 주기로 모니터링할 수 있습니다. 이는 프리 티어와 유료 티어의 작은 차이일 뿐입니다. 청구에 대한 자세한 내용을 보려면 여기를 클릭하십시오.

계속 진행하기 전에 이 문서의 뒷부분에서 보게 될 몇 가지 용어를 이해해 봅시다.

경보: 경보는 여러 기간 동안 임계값과 관련된 측정항목 또는 표현식의 값을 기반으로 하나 이상의 작업을 수행하는 데 사용됩니다.

  • OK: 메트릭이 지정한 범위 내에 있으면 경보가 OK 상태입니다.\n
  • IN ALARM: 지표가 임계값을 초과하면 경보가 "IN ALARM\ 상태로 전환됩니다.\n
  • INSUFFICIENT_DATA: 결정을 내리는 데 필요한 데이터가 없거나 불완전한 경우 경보는 "INSUFFICIENT_DATA\ 상태로 전환됩니다.\n

SNS 주제: 알림이 전송되는 AWS의 논리적 통신 채널입니다. 여기서는 이메일을 SNS(Simple Notification Service) 주제로 사용하겠습니다.

EC2 작업: Cloudwatch 경보를 사용하여 특정 작업을 수행할 수 있습니다. 여기에서는 경보가 "경보 중\ 상태가 되면 EC2 인스턴스를 중지합니다.

이 기사에서는 EC2 인스턴스의 CPU 로드를 모니터링하는 방법을 살펴봅니다. 경보를 생성하고 CPU 부하가 지정된 제한을 초과할 때 경보가 트리거되는 방법을 확인합니다. 이 제한에 도달하면 경보가 트리거될 때 조치를 취하는 방법을 이해하기 위해 EC2 인스턴스를 끕니다.

전제 조건

  1. AWS 계정(없으면 생성)
  2. EC2 인스턴스(EC2 인스턴스가 없거나 배우고 싶은 경우 여기를 클릭하여 EC2 인스턴스를 생성하는 방법을 배우십시오.)\n

우리는 무엇을 할 것입니까?

  1. AWS에 로그인합니다.\n
  2. SNS 주제를 만듭니다.
  3. 경보를 생성합니다.\n
  4. EC2 인스턴스에서 CPU 로드를 늘립니다.

AWS에 로그인

  1. AWS 로그인 페이지로 이동하려면 여기를 클릭하십시오.\n

위의 링크를 누르면 로그인 세부 정보를 사용하여 로그인해야 하는 다음과 같은 웹 페이지가 표시됩니다.

AWS에 성공적으로 로그인하면 다음과 같이 모든 서비스가 나열된 기본 콘솔이 표시됩니다.

SNS 주제 만들기

알림을 보낼 SNS 주제를 생성하려면 "Services\를 클릭하고 SNS를 검색합니다. "Simple Notification Service\를 클릭합니다. 여기서는 SNS 주제를 만들고 알림을 보낼 이메일을 추가합니다. 우리가 줄 주제의 이름을 기억하십시오. 이것은 다음 단계에서 필요합니다.

"주제 만들기\를 클릭하여 "단순 알림 서비스\ 주제를 만듭니다.

생성할 주제에 이름을 지정합니다. 여기에서는 알림을 보낼 "my-sns-topic\입니다. 표시 이름은 선택 사항이며 그대로 둘 수 있습니다. 암호화, 액세스 정책 등과 같은 기타 설정은 고급입니다. 그리고 우리는 이 기사에서 그것들을 볼 수 없으며 간단한 알람을 생성하기 위해 무시할 수 있습니다. 페이지를 아래로 스크롤하고 "주제 만들기\를 클릭하십시오. 이것은 단지 주제를 생성할 것입니다. 통신 채널을 추가해야 합니다.

방금 주제를 만들었고 아직 커뮤니케이션 매체를 지정하지 않았습니다. 우리는 이메일을 커뮤니케이션 매체로 추가할 것입니다. 그렇게 하려면 구독을 생성해야 합니다.

구독을 생성하려면 "구독 생성\을 클릭하십시오.

이전 단계에서 생성한 주제의 ARN을 선택하고 드롭다운 메뉴에서 프로토콜을 이메일(중간)로 선택합니다. 알림을 보내야 하는 이메일 주소를 지정하십시오. 이 단계를 완료하려면 "구독 만들기\를 클릭하십시오. 구독이 완료되면 AWS에서 주제를 구독하라는 이메일을 받게 됩니다. 구독하지 않으면 이메일 알림을 받지 않습니다. 구독하는 것을 잊지 마십시오. 주제에.

방금 만든 주제를 구독하려면 이메일 상자를 열고 구독 확인을 클릭하십시오. 여기에서 주제 및 구독 생성 프로세스가 종료됩니다.

알람 생성

이제 알람을 생성하려면 "Services\를 클릭하고 "Cloudwatch\를 검색한 다음 클릭하여 선택합니다.

다음과 같은 화면이 나타납니다. 이제 왼쪽 패널에서 "경보\를 클릭하십시오.

"알람 만들기\를 클릭합니다.

"측정항목 선택\을 클릭합니다.

"모든 메트릭\에서 EC2를 선택합니다.

"사전 인스턴스 측정항목\을 클릭합니다.

"CPUUtilization\을 선택한 다음 "메트릭 선택\을 클릭합니다.

이제 알람을 설정해야 하는 인스턴스 ID를 선택하고 시간을 낭비하지 않고 알람을 테스트할 수 있도록 기간을 1분으로 변경합니다.

이 프로세스에 익숙해지면 다른 메트릭과 설정을 시도할 수 있습니다.

여기에서 조건을 설정하는 부분이 나오는데 여기서 임계값을 '10'으로 정의하겠습니다. 즉, CPU 사용률이 1분 동안 10%를 초과하면 경보가 트리거됩니다.

경보가 트리거되면 이전 상태에서 생성한 주제에 대해 경보가 "In Alarm\ 상태가 되면 알림을 보내야 하므로 해당 주제 이름을 선택합니다.

알림 전송과 함께 해당 EC2 인스턴스에 대해 특정 작업도 수행합니다. 여기서는 경보가 "경보 중\ 상태가 되면 인스턴스를 중지합니다. 원하는 작업을 선택할 수 있습니다. "다음\을 클릭합니다. .

이메일 제목으로 보낼 알람 이름을 추가하고 추가로 더 많은 정보를 보낼 수도 있습니다. "다음\을 클릭합니다.

구성을 검토하고 "경보 생성\을 클릭합니다.

여기에서 조건이 충족되면 SNS 주제에 알림을 보내는 알람 설정의 전체 구성이 끝납니다. 잠시 기다리면 경보가 EC2 인스턴스를 모니터링할 준비가 됩니다.

테스트: EC2 인스턴스에서 CPU 로드 증가

경보를 수동으로 트리거하기 위해 EC2 인스턴스의 부하를 증가시킵니다.

그러기 위해서는 먼저 필수 스트레스 패키지를 설치해야 합니다. 우분투 18.04에 '스트레스'를 설치하려면 다음 단계를 찾으십시오.

sudo apt-get update
apt-get install stress

이제 연속 60초 동안 로드를 50%로 늘립니다. 이렇게 하면 경보가 트리거되고 EC2 인스턴스가 중단됩니다.

stress --cpu  50 --timeout 120

조건이 충족되는 즉시 알림을 받고 인스턴스가 중단됩니다.

이제 알람에서 이전 단계에서 생성한 알람의 상태가 "In Alarm\임을 알 수 있으며 이것으로 기사를 마칩니다.

그 결과 이전 단계에서 지정한 작업으로 인해 EC2 인스턴스가 종료됩니다.

결론

이번 글에서는 SNS 주제, 구독, 알람 만들기에 대해 알아보았습니다. 또한 이메일 채널에 대한 알림을 보내는 알람을 트리거하기 위해 CPU 부하를 수동으로 증가시키는 방법도 확인했습니다.