Het draaien van een website of applicatie hoeft niet kostbaar te zijn. Sterker nog, er zijn manieren om geld te besparen op middelen terwijl je gebruikers nog steeds een geweldige ervaring biedt. Een voorbeeld hiervan is via AWS EC2 Autoscaling.
EC2 Auto Scaling is een dienst die je kan helpen om automatisch de capaciteit van je Amazon EC2 op- of af te schalen volgens de door jou gedefinieerde voorwaarden. En in deze tutorial leer je hoe je een basisconfiguratie voor EC2 Auto Scaling op AWS kunt instellen en toepassen op jouw applicaties.
Lees verder en zorg ervoor dat jouw applicatie altijd over de nodige middelen beschikt zonder meer te betalen dan nodig is!
Vereisten
Deze tutorial omvat hands-on demonstraties. Om mee te doen, heb je een AWS-account nodig, en een gratis tier-account zou voldoende zijn.
Creëren van een lanceersjabloon
Voordat je in AWS EC2 Auto Scaling duikt, heb je eerst een manier nodig om een EC2-instantie te starten, een lanceersjabloon (vergelijkbaar met lanceerconfiguratie). Een lanceersjabloon bevat alle informatie die nodig is om een EC2-instantie te starten, zoals het instantietype, subnet en beveiligingsgroepen.
AWS raadt aan om een lanceersjabloon te gebruiken, omdat dit meer flexibiliteit en geavanceerde functies biedt dan een lanceerconfiguratie. EC2 Auto Scaling gebruikt een lanceersjabloon om nieuwe instanties te starten bij het opschalen.
Om een lanceersjabloon te maken:
1. Open uw favoriete webbrowser en meld u aan bij de AWS-beheerconsole.
2. Zoek naar EC2-lanceersjablonen in de zoekbalk en selecteer Lanceersjablonen uit de resultaten onder Functies. Hierdoor wordt de pagina met EC2-lanceersjablonen geopend.

3. Selecteer vervolgens een regio in de vervolgkeuzelijst (rechtsboven) en klik op Sjabloon voor lancering maken om het maken van een lanceersjabloon te starten.
U kunt auto-scaling gebruiken in elke regio die EC2 Auto Scaling ondersteunt, maar deze handleiding maakt gebruik van US East (N. Virginia).

4. Configureer nu de naam en beschrijving van het nieuwe lanceersjabloon met het volgende:
- Lanceersjabloonnaam – vereist – Geef een naam op voor uw lanceersjabloon (ec2-autoscaling-sjabloondemo). De naam moet uniek zijn binnen de regio, mag niet langer zijn dan 128 tekens en mag geen speciale tekens bevatten, behalve streepjes (-), underscores (_) en punten (.).
- Sjabloonverschrijving – Voer een beschrijving in voor uw lanceersjabloon (ec2 autoscaling sjabloon demo), en mag niet langer zijn dan 255 tekens.
- Auto Scaling begeleiding – Activeer de optie Geef begeleiding om me te helpen een sjabloon in te stellen dat ik kan gebruiken met EC2 Auto Scaling om auto-scaling begeleiding mogelijk te maken. Deze optie maakt het eenvoudiger om een startsjabloon te maken dat compatibel is met EC2 Auto Scaling.

5. Scroll naar beneden naar de sectie Inhoud van startsjablonen en kies toepassings- en besturingssysteemafbeeldingen voor uw startsjabloon met het volgende:
- Toepassings- en besturingssysteemafbeeldingen (Amazon Machine Image) – Selecteer een opstartafbeelding voor uw sjabloon, maar deze handleiding maakt gebruik van een Amazon Linux 2 AMI. Uw EC2-instanties worden gelanceerd op basis van de geselecteerde opstartafbeelding.
U kunt elke opstartafbeelding kiezen die u verkiest, maar een Amazon Linux 2 AMI wordt aanbevolen omdat deze in aanmerking komt voor de gratis laag.
- Architectuur – Selecteer een architectuur voor uw sjabloon, maar deze handleiding gebruikt x86-64 (64-bits).

6. Stel vervolgens het instantietype en de sleutelpaar (aanmelding) voor uw startsjabloon als volgt in:
- Instantietype – Selecteer het instantietype voor uw sjabloon. Maar de keuze in deze handleiding is t2.micro omdat deze in aanmerking komt voor de gratis laag.
Houd rekening met andere factoren bij het selecteren van een instantietype, zoals CPU- en geheugenvereisten, aangezien sommige instantietypes meer kosten dan andere.
- Sleutelpaar (aanmelden) – Selecteer Niet opnemen in startsjabloon omdat dit niet nodig is voor auto-scaling.
Wanneer een sleutelpaar is gespecificeerd, start EC2 Auto Scaling uw instanties met het sleutelpaar.

7. Onder Netwerkinstellingen, kies de optie Selecteer bestaande beveiligingsgroep en geef een Beveiligingsgroep-instelling op voor uw EC2-instanties. Hierdoor lanceert EC2 Auto Scaling uw instanties met deze beveiligingsgroep.
Merk op dat u de optie Maak beveiligingsgroep kunt kiezen als u een nieuwe beveiligingsgroep wilt maken voor uw EC2-instanties.

8. Behoud andere standaardinstellingen en klik op Launch-template maken (rechtsonder) onder de samenvattingslijst om uw starttemplate te maken.

9. Klik tot slot op Auto Scaling-groep maken onder de sectie Maak een Auto Scaling-groep vanuit uw template om door te gaan.
Sluit de pagina met het starttemplate niet, omdat u uw Auto Scaling-groep in de volgende sectie één voor één zult maken.

Het maken van een AWS EC2 Auto Scaling-groep
Nu u een EC2-starttemplate heeft, moet u een AWS EC2 Auto Scaling-groep maken om uw EC2-instantie te bevatten. AWS EC2 Auto Scaling heeft functies waarmee u vervangingen voor gezondheidscontroles en schalingsbeleid kunt gebruiken.
U kunt een Auto Scaling-groep met meerdere instanties maken als u dat wilt. Maar in deze handleiding maakt u een Auto Scaling-groep met één instantie om te demonstreren hoe Auto Scaling werkt.
1. Configureer de Auto Scaling-groep met het volgende terwijl u nog steeds op de Starttemplate maken-pagina bent:
- Naam van de Auto Scaling-groep – Voer een naam in voor uw Auto Scaling-groep (ec2-autoscaling-group-demo). De naam moet uniek zijn binnen uw AWS-regio en mag niet langer zijn dan 255 tekens.
- Startsjabloon – Selecteer uw EC2-startsjabloon uit de vervolgkeuzelijst (ec2-autoscaling-template-demo).
- Klik op Volgende om door te gaan.

2. Laat vervolgens alle standaardinstellingen zoals ze zijn, maar selecteer een bestaande VPC en subnet voor uw Auto Scaling-groep en klik op Volgende om door te gaan.
Het specificeren van deze instellingen zorgt ervoor dat uw Auto Scaling-groep weet waar deze uw EC2-instanties moet starten.

3. Houd de standaardinstellingen aan en klik op Volgende om door te gaan.

4. Configureer nu de Groepsgrootte van uw Auto Scaling-groep met het volgende:
Capacity | Limit | Details |
Desired | 1 | Set the number of instances you want in your Auto Scaling group. The desired capacity must be greater than or equal to the minimum capacity and less than or equal to the maximum capacity. |
Minimum | 1 | Set the minimum number of instances in your Auto Scaling group. The value must be greater than or equal to 1 and less than or equal to the maximum capacity. |
Maximum | 1 | Set the maximum number of instances you want in your Auto Scaling group. |

5. Scroll naar beneden, houd de standaardinstellingen aan en klik op Overslaan om te controleren om door te gaan.
- Scalingsbeleid – Houd de optie Geen geselecteerd, aangezien u een eenvoudig scalingsbeleid zult gebruiken. Dit beleid verhoogt de gewenste capaciteit van uw Auto Scaling-groep met één EC2-instantie wanneer de oudere instantie in de groep is beëindigd.
- Instantieschaal-in bescherming – Houd deze optie uitgeschakeld omdat u deze niet nodig heeft in deze tutorial. Het inschakelen van deze optie stelt u in staat om te bepalen of uw Auto Scaling-groep uw instantie kan beëindigen bij het schalen in.

6. Bekijk tot slot uw instellingen voor de Auto Scaling-groep en klik op Auto Scaling-groep maken (rechtsonder) om uw Auto Scaling-groep te maken.

Zodra aangemaakt, zie je je Auto Scaling groep vermeld, zoals hieronder weergegeven.

Het testen van een AWS EC2 Auto Scaling Groep
Geweldig! Je bent erin geslaagd om een AWS EC2 Auto Scaling groep aan te maken om je EC2 instantie te bevatten. Maar hoe weet je of je Auto Scaling groep werkt?
Je gaat verifiëren dat je AWS EC2 Auto Scaling groep één EC2 instantie heeft gestart. Deze instantie is degene die je hebt gespecificeerd (Gewenste capaciteit) in stap vier van de sectie “Een AWS EC2 Auto Scaling Groep aanmaken”.
1. Vink het selectievakje aan naast je nieuw aangemaakte Auto Scaling groep en klik op het tabblad Activiteit om alle activiteiten in je Auto Scaling groep te zien.
Onder de sectie Activiteitshistorie onderaan, zie je de Beschrijving van het meest recente evenement in je Auto Scaling groep. In dit geval staat er als beschrijving: Een nieuwe EC2 instantie wordt gestart, met de Succesvolle status en instantie-ID (i-09b699064f6e06070).
Kopieer de instantie-ID, want je hebt deze nodig om je instantie te verifiëren in de volgende stap.

2. Ga naar het EC2-dashboard en vergelijk de instantie-ID die je hebt gekopieerd in stap één met alle actieve instanties.
Als beide instantie-IDs overeenkomen, betekent dit dat je Auto Scaling groep succesvol een EC2 instantie heeft gestart.

3. Ga terug naar de Auto Scaling groep-pagina, klik op het Instantiebeheer-tabblad, en je ziet alle informatie over je EC2 instanties op één plek. Het belangrijkste stuk informatie op dit tabblad is:
- De kolom Levenscyclus – Je kunt zien dat de EC2-instantie in je Auto Scaling-groep zich in de InService-status bevindt, wat betekent dat de instantie beschikbaar is om verzoeken te verwerken.
- De kolom Gezondheidsstatus – Je kunt zien dat de gezondheidscontrolestatus van je EC2-instantie Gezond is, wat aangeeft dat de instantie alle gezondheidscontroles doorstaat.
Beëindigen van een EC2-instantie
Nu je hebt geverifieerd dat je Auto Scaling-groep werkt, kun je de Auto Scaling-groep verder testen door de EC2-instantie erin te beëindigen. Onthoud dat het beëindigen van een instantie in de groep ervoor zorgt dat de Auto Scaling-groep automatisch een nieuwe EC2-instantie start als vervanging.
In echte situaties zou je een Auto Scaling-groep gebruiken om automatisch op te schalen in reactie op veranderende omstandigheden. Wanneer? Bijvoorbeeld, een van je NGINX-webservers wordt overbelast met verzoeken en dreigt uit te vallen.
Maar voor nu ga je je Auto Scaling-groep testen door de EC2-instantie handmatig te beëindigen om te simuleren wat er zou gebeuren als een instantie mislukt.
1. Ga naar je instanties en vink het selectievakje naast de instantie aan om deze te selecteren.
Als deze is geselecteerd, klik je op het dropdownmenu Instantiestatus → Instantie beëindigen om de geselecteerde instantie te beëindigen.

2. Klik vervolgens op Beëindigen wanneer wordt gevraagd om de beëindiging van de instantie te bevestigen.

Hieronder zie je een bericht dat aangeeft dat de EC2-instantie succesvol is beëindigd.
De standaard afkoelperiode voor een Auto Scaling-groep is 300 seconden (5 minuten), wat betekent dat het ten minste vijf minuten duurt voordat de Auto Scaling-groep een nieuwe instantie start nadat je de oude hebt beëindigd.

Tenslotte, controleer de Activiteitengeschiedenis in de Auto Scaling-groep terwijl je wacht op de lancering van de nieuwe instantie.
Zoals hieronder weergegeven, zie je dat er automatisch een nieuwe EC2-instantie is gestart. Deze output bevestigt dat je Auto Scaling-groep naar verwachting werkt.

Conclusie
Het omgaan met de belasting voor je toepassing is een essentieel onderdeel om ervoor te zorgen dat het soepel blijft draaien. Gelukkig kun je met AWS EC2 Auto Scaling ervoor zorgen dat je toepassing altijd de benodigde middelen heeft om veranderende verkeerspatronen aan te kunnen.
En in deze tutorial heb je geleerd hoe je een Auto Scaling-groep maakt, instanties in de groep start en de groep aanpast aan veranderende omstandigheden. Op dit punt kun je nu vol vertrouwen Auto Scaling-groepen maken voor je toepassingen met AWS EC2.
Met deze nieuwe kennis, waarom zou je niet Auto Scaling-groepen maken met AWS CloudFormation voor nog meer gemak? Je zult jezelf later bedanken wanneer de belasting toeneemt en je je geen zorgen hoeft te maken over het handmatig voorzien van meer middelen!