maak je een alarm voor een EC2 instantie met Cloudwatch

Cloudwatch valt onder de dienst “Management & Governance” in AWS (Amazon Web Services). Cloudwatch is een bewakings- en beheersdienst die gebruikt kan worden om diensten op AWS te bewaken en ze te beheren als aan een bepaalde voorwaarde wordt voldaan. Cloudwatch kan gebruikt worden om prestatie- en operationele gegevens te verzamelen (CPU, RAM, Network_IN, Network_Out, enz) van de diensten die op AWS beschikbaar zijn .

Wat de facturering betreft, komt Cloudwartch met 2 verschillende opties, Free Tier en Paid Tier. Free Tier komt met Basic Monitoring Metrics met een frequentie van 5 minuten en met Paid Tier kun je met een frequentie van 1 minuut monitoren. Dit is slechts een klein verschil tussen Free Tier en Paid Tier. Om meer te begrijpen over facturering, klik hier.

Laten we, voor we verder gaan, een paar termen begrijpen die we later in dit artikel zullen zien.

Alarm: Alarm wordt gebruikt om nog een acties uit te voeren op basis van de waarde van de metriek of uitdrukking ten opzichte van een drempel over een aantal tijdsperioden

  • OK: Als de metriek binnen het bereik is dat we hebben opgegeven, staat het alarm in de OK toestand
  • IN ALARM: Als de metriek de drempelwaarde overschrijdt gaat het alarm over in de toestand “IN ALARM”.
  • INSUFFICIENT_DATA: Als de gegevens die nodig zijn om de beslissing te nemen ontbreken of onvolledig zijn, gaat het alarm over in de toestand “INSUFFICIENT_DATA”.

SNS Onderwerp: Het is een logisch communicatiekanaal in AWS waar meldingen naartoe gestuurd worden. Hier zullen we e-mail gebruiken als ons SNS(Simple Notification Service) Onderwerp

EC2 Actie: Cloudwatch alarmen kunnen gebruikt worden om een bepaalde actie te ondernemen. Hier zullen we een EC2 instance stoppen als het alarm in “In Alarm” toestand komt.

In dit artikel zullen we zien hoe je een EC2 instantie kunt bewaken op zijn CPU Load. We zullen een alarm maken en zien hoe dat kan worden geactiveerd als de CPU Load de opgegeven limiet overschrijdt. Als deze limiet bereikt wordt, zetten we de EC2 instantie uit om te begrijpen hoe je actie kunt ondernemen als het alarm afgaat.

Vereisten

  1. AWS Account(Maak aan als je er nog geen hebt)
  2. EC2 Instance(Klik hier om te leren hoe je een EC2 instance maakt als je er geen hebt of als je het wilt leren )

Wat zullen we doen?

  1. Log in op AWS.
  2. Maak een SNS Onderwerp.
  3. Maak een Alarm.
  4. Verhoog de CPU belasting van de EC2 instance.

Log in op AWS

  1. Klik op hier om naar de AWS login pagina te gaan.

Als we op de bovenstaande link klikken, zien we een webpagina als volgt waar we moeten inloggen met onze inloggegevens.

AWS Inloggen

Zodra we met succes op AWS zijn ingelogd, zien we de hoofdconsole met alle diensten als volgt opgesomd.

Maak een SNS Onderwerp

Om een SNS topic te maken waarnaar we een notificatie zullen sturen, klik je op “Services” en zoek naar SNS. Klik op “Simple Notification Service”. Hier maken we een SNS onderwerp en voegen we Email toe waarop meldingen zullen worden gestuurd. Onthoud de naam van het onderwerp dat we gaan geven, deze is nodig in de volgende stap.

Klik op “Create Topic” om een “Simple Notification Service” onderwerp aan te maken.

Geef een naam aan het aan te maken onderwerp, hier is dat “my-sns-topic” waarop meldingen zullen worden verzonden. De weergavenaam is optioneel en kun je laten zoals hij is. Andere instellingen zoals Encryptie, Toegangsbeleid, enz zijn geavanceerd en zullen we in dit artikel niet zien; ze kunnen genegeerd worden voor het aanmaken van een eenvoudig Alarm. Scroll naar beneden op de pagina en klik op “Create Topic”. Dit maakt alleen een onderwerp aan. We blijven over om het communicatiekanaal toe te voegen.

We hebben alleen een onderwerp aangemaakt en nog geen communicatiemiddel opgegeven.We zullen e-mail als communicatiemiddel toevoegen, om dat te doen moeten we een abonnement aanmaken.

Om een abonnement te maken, klik je op “Create Subscription”.

Kies een ARN van het onderwerp dat we in de vorige stap maakten en kies het protocol als e-mail (medium) uit het uitklapmenu. Specificeer het e-mail adres waar meldingen naartoe gestuurd moeten worden. Klik op “Create Subscription” om deze stap te voltooien. Zodra je je abonnement hebt ingesteld, krijg je een e-mail van AWS om het onderwerp te abonneren. Als we ons niet abonneren, krijgen we geen meldingen op onze e-mail. Vergeet dus niet je op het onderwerp te abonneren.

Om je te abonneren op het onderwerp dat je net gemaakt hebt, open je je e-mail box en klik op abonnement bevestigen. Hier eindigt het proces van een onderwerp maken en abonneren.

Een alarm maken

Om nu een alarm te maken klik je op “Services” en zoek naar “Cloudwatch”, klik erop om te selecteren.

Je ziet een scherm als volgt. Klik nu op “Alarms” in het linker paneel.

Klik op “Create alarm”.

Klik op “Select metrics”.

Onder “All metrics” selecteer je EC2.

Klik op “Pre-Instance Metrics”.

Selecteer “CPUUtilization” en klik dan op “Select metric”.

Kies nu de Instance ID waarop het alarm ingesteld moet worden en verander de periode in 1 minuut, zodat we het alarm kunnen testen zonder veel tijd te verspillen.

Je kunt verschillende metrieken en instellingen uitproberen als je eenmaal vertrouwd bent met dit proces.

Hier komt het deel waarmee we de voorwaarde kunnen instellen, hier zullen we de drempelwaarde instellen als ’10’. Het betekent dat als de CPU bezetting gedurende 1 minuut boven de 10% komt, het alarm afgaat.

Als het alarm eenmaal afgaat, moeten we een melding sturen op het onderwerp dat we in de vorige toestand aanmaakten, dus kies die onderwerpnaam.

Samen met het sturen van een melding zullen we ook een bepaalde actie op die EC2 instantie ondernemen, hier zullen we de instantie stoppen als het alarm in “In Alarm” toestand komt. Je kunt een actie naar keuze kiezen. Klik op “Next”.

Voeg de naam van het alarm toe die als onderwerp van de e-mail gestuurd zal worden, aanvullend kan ook meer informatie gestuurd worden. Klik op “Next”.

Bekijk de configuratie en klik op “Create alarm” .

En hier eindigt de volledige configuratie van het instellen van het alarm dat een melding naar een SNS onderwerp zal sturen als aan de voorwaarde wordt voldaan. Wacht enige tijd en het alarm is klaar om de EC2 instantie te bewaken.

Testen: CPU belasting op EC2 instantie verhogen

Om het alarm handmatig te laten afgaan, zullen we de belasting van de EC2 instance verhogen.

Om dat te doen, moeten we eerst een vereist, stress, pakket installeren. Zoek de volgende stappen om ‘stress’ te installeren op ubuntu 18.04.

sudo apt-get update
apt-get install stress

We zullen nu de belasting verhogen tot 50% gedurende 60 opeenvolgende seconden. Dit zal het alarm activeren en de EC2 instantie neerhalen.

stress --cpu  50 --timeout 120

Zodra aan de voorwaarde is voldaan krijg je een melding en wordt de instantie uit de lucht gehaald.

Nu zie je in Alarms de toestand van het alarm dat we in de vorige stappen hadden aangemaakt is “In Alarm” en hiermee eindigt het artikel.

Als gevolg hiervan en door de actie die we in de vorige stappen specificeerden, wordt de EC2 instantie beƫindigd.

Conclusie

In dit artikel leerden we een SNS Topic, een abonnement en een alarm te maken. We zagen ook hoe CPU Load handmatig verhoogd kan worden om het alarm te activeren, dat op zijn beurt een melding stuurt op Email Channel.