Ben je het zat om de belasting van je AWS-instanties en het verkeer dat ze ontvangen te monitoren? Waarom automatiseer je niet alles door Terraform Autoscaling Groepen in te zetten? Autoscaling stelt sommige servers in staat om te slapen tijdens lage belasting en voegt meer servers toe tijdens hoge belasting, wat kosten bespaart voor bedrijven op elektriciteit.
In deze tutorial leer je hoe je een Terraform-configuratie kunt bouwen en uitvoeren om Autoscaling Groepen te maken en deze in te zetten met Terraform.
Lees verder en bereik nul downtime op je instanties!
Vereisten
Deze post zal een stapsgewijze tutorial zijn. Als je wilt volgen, zorg er dan voor dat je het volgende hebt:
- Een Amazon Web Service (AWS) account.
- A code editor – Even though you can use any text editor to work with Terraform configuration files, consider using Visual Studio (VS) Code as it understands the HCL Terraform language well.
- Terraform – Deze tutorial gebruikt Terraform v1.1.5 op Ubuntu 20.04 LTS, maar elk besturingssysteem met Terraform zou moeten werken.
Het bouwen van de Terraform-configuratie voor een AWS Autoscaling Groep
Voordat u Terraform-opdrachten uitvoert om de infrastructuur op te bouwen en te implementeren, moet u de Terraform-configuratiebestanden maken. U zult een Terraform-configuratie bouwen om een AWS Autoscaling-groep in uw AWS-account te maken.
1. Log in op uw machine met behulp van uw favoriete SSH-client.
2. Maak vervolgens een map met de naam ~/terraform-autoscaling-demo, en verander vervolgens (cd
) de werkmap naar die map. Deze map bevat alle configuratiebestanden waar u aan zult werken in deze tutorial.
3. Open uw favoriete code-editor, kopieer/plak de volgende configuratie en sla het bestand op als main.tf in de ~/terraform-autoscaling-demo-map. Dit main.tf-bestand is de Terraform-configuratie voor de Autoscaling-groep.
De onderstaande code maakt een autoscaling-lancering configuratie (web_config
) aan en voorziet in een Autoscaling-groep (autoscalegroup
). De Autoscaling-groep wordt ook geleverd met zijn componenten (aws_autoscaling_schedule
en aws_autoscaling_policy
).
4. Creëer een ander bestand in ~/terraform-autoscaling-demo genaamd provider.tf, en vul de inhoud hieronder in. Het provider.tf bestand definieert providers zoals AWS, Oracle, Azure, enzovoort. Dit configuratiebestand stelt je in staat om Terraform te verbinden met de juiste cloudservices.
De tutorial zal bronnen creëren in de us-east-1 regio. Maar je kunt de lijst van regio’s die AWS ondersteunt vinden.
5. Tot slot, voer de tree
opdracht hieronder uit om te verifiëren dat alle vereiste bestanden aanwezig zijn in je projectmap (~/terraform-autoscaling-demo
).

Het creëren van de AWS Autoscaling-groep met een Terraform-configuratie
Nu je het Terraform-configuratiebestand en variabelenbestanden correct hebt ingesteld, is het tijd om Terraform te initialiseren en de AWS Autoscaling-groep te maken.
Om de AWS Autoscaling-groep te provisionen, gebruikt Terraform, zoals alle andere Terraform-configuraties, drie opdrachten in sequentie (terraform init
, terraform plan
en terraform apply
).
1. Voer het terraform init
-commando uit in de ~/terraform-autoscaling-demo-directory. Het commando initialiseert de plug-ins en providers die nodig zijn om met resources te werken.
Als alles goed gaat, zie je het bericht dat Terraform succesvol is geïnitialiseerd in de output, zoals hieronder getoond.

2. Voer vervolgens het terraform plan
-commando uit om ervoor te zorgen dat de syntaxis van je configuratiebestanden correct is en je een blauwdruk van resources geeft die in je infrastructuur zullen worden voorzien.
Als het succesvol is, zou je een bericht moeten zien dat het Plan weergeeft zoals hieronder getoond.

3. Voer tot slot het terraform apply
-commando uit om de trainingswielen te verwijderen en Terraform op te roepen om de AWS AutoScaling-groep te maken.
Het commando vertelt Terraform om elke configuratie (*.tf) in de huidige directory te lezen om een status samen te stellen die naar AWS wordt verzonden. Vervolgens bouwt Terraform de AWS Autoscaling-groep en andere componenten.
Er zijn geen extra kosten voor AWS Auto Scaling. Je betaalt alleen voor de AWS-resources die nodig zijn om je toepassingen uit te voeren.

Verificatie van de AWS Auto Scaling-groep in AWS Cloud
Op dit moment zou je met Terraform de AWS Auto Scaling-groep en gerelateerde componenten moeten hebben gemaakt. Maar hoe weet je dat ze bestaan in je AWS-cloud? Controleer de Auto Scaling-groep door handmatig in te loggen op de AWS Management Console.
1. Open je favoriete webbrowser en log in op de AWS Management Console.
2. Op de startpagina van de console, klik op het zoekvak, zoek naar en klik op ‘EC2’ om toegang te krijgen tot het EC2-dashboard.
Klik op het menu-item AWS Auto Scaling groep in het EC2-dashboard om uw Auto Scaling groepen te beheren.
Het gewenste aantal AWS EC2-instanties wordt gelanceerd in de AWS Cloud in het EC2-dashboard met de onderstaande Autoscaling.

3. Klik ten slotte op AWS Auto Scaling Launch Configuration in het EC2-dashboard. U ziet uw autoscaling lancering configuratie (web_config) zoals hieronder weergegeven.

Autoscaling van de EC2-instantie met Load Testing
Nu u hebt geverifieerd dat de Autoscaling groep/policy en gerelateerde componenten correct zijn ingesteld, is het tijd om te testen of de Auto Scaling functies werken. Hoe? Door belasting toe te voegen aan de zojuist gelanceerde instantie met de AutoScaling groep.
1. Open de AWS EC2-instantie die is gelanceerd met de Autoscaling groep met behulp van een SSH-client.
2. Start vervolgens de terminal en voer de onderstaande opdracht uit om de installeren
belastingstesttool (stress-ng
) te installeren. De stress-tool stelt u in staat om stress te definiëren en te genereren op de Ubuntu-machine.
U kunt ook andere belastingstesttools vinden die beschikbaar zijn op de markt.

3. Voer de stress-ng
opdracht hieronder uit om de belasting op de instantie te genereren.
De onderstaande opdracht bevat de volgende vlaggen:
--cpu
– Geeft het aantal cores aan waarop belasting wordt gegenereerd.
-v
– Schakelt de uitgebreide modus in.
--timeout
– Geeft de tijd aan waarvoor belasting moet worden gegenereerd.

4. Voer nu het top
commando hieronder uit zodra je de belasting hebt gegenereerd om de Linux-processen weer te geven.
Hieronder zie je dat de CPU omhoog schiet nadat de belasting naar de instantie is gegenereerd.

5. Ga naar de AWS CloudWatch-service op AWS Cloud. Je zult merken dat er een alarm wordt gegenereerd omdat de CPU de (10%) heeft overschreden. Het alarm heeft de autoscaling-groep op de hoogte gebracht om het aantal instanties te schalen van één naar twee, zoals gespecificeerd in de autoscaling-groep.

6. Spring ten slotte naar je Instanties in het EC2-dashboard om de AWS EC2-instanties te verifiëren.
Je zult zien dat er een extra instantie is gelanceerd, wat de succesvolle configuratie van de AWS Autoscaling-groep en componenten bevestigt.

Je kunt ook de autoscaling-activiteiten verifiëren in de AWS AutoScale-groepactiviteiten, zoals hieronder getoond.

Conclusie
In deze tutorial heb je geleerd hoe je Terraform kunt gebruiken om een AWS Autoscaling-groep en de bijbehorende componenten te implementeren. Het bouwen van een autoscaling-toepassing met AWS Autoscaling-groep stelt je in staat om te schalen wanneer dat nodig is en is een snelle taak.
Nu, met deze nieuwe kennis, ga helemaal los en implementeer Auto Scaling met andere AWS-services zonder je zorgen te maken over de belasting op de servers!
Source:
https://adamtheautomator.com/terraform-autoscaling-group/