Skip to main content

Scenario 2b: CloudFormation Update

In het vorige hoofdstuk leerde je een bestaande Cloudformation template, mits een paar kleine aanpassingen, gebruiken en toepassen om automatisch een infrastructuur uit te rollen in AWS. Zoals je zal gemerkt hebben werd er in deze template gebruik gemaakt van een ouder type loadbalancer (Classic Load Balancer). Dit type Classic Load Balancer wordt eigenlijk niet meer aanbevolen en moet vervangen worden door een "moderner" type zoals een Application Load Balancer, Network Load Balancer of Gateway Load Balancer.

Cloudformation Template wijzigen

In deze opdracht is het de bedoeling om de "Classic Load Balancer" in je template van het vorige scenario te vervangen door een Application Load Balancer.

In scenario 1 werd reeds manueel (via de GUI) dergelijke Load Balancer aangemaakt. Je kan je dus laten leiden door de stappen en onderdelen die je daar geconfigureerd hebt om dit nu in Cloudformation om te zetten.

  • Maak een kopie van je bestaande template en geef die de naam Labo_AutoScaling_TEAMxy_ALB.json
  • Verwijder de Classic Load Balancer (ElbWeb), type AWS::ElasticLoadBalancing::LoadBalancer
  • Voeg nu de correcte JSON elementen toe voor een Application Load Balancer, type AWS::ElasticLoadBalancingV2::LoadBalancer
tip

Er zijn redelijk wat tools te vinden die je kunnen helpen bij het schrijven van dergelijke Cloudformation templates. Een suggestie is de Visual Studio Code extension "Cloudformation" van aws-scripting-guy.
Op die manier kan je een AWS element typen waarbij de extension de volledige JSON structuur zal aanvullen.

tip2

Uiteraard kan je best steunen op de officiële Cloudformation documentatie van AWS om de correcte en minimaal verplichte elementen op te nemen.

Een AWS::ElasticLoadBalancingV2::LoadBalancer toevoegen zal niet voldoende zijn. Er zullen nog andere componenten moeten toegevoegd worden om de configuratie te vervolledigen.
Deze extra componenten zou je kunnen afleiden uit de documentatie maar ook uit de configuratie die je deed via de GUI.

  • Voeg de extra componenten met hun noodzakelijke parameters toe.
  • Vergeet niet om je "AutoscalingGroup" gebruik te laten maken van de nieuwe load balancer. (ifv je TargetGroup)
info

Je kan bovenstaande stappen tussentijds al eens uittesten in Cloudformation door je stack uit te rollen.
Bij "Events" kan je dan goed volgen of alle resources goed gedeployed worden of indien niet, welke problemen er waren.

  • Voorzie dat elke component, waar mogelijk, die je toegevoegd hebt ook een unieke naam kreeg. Dit is niet de naam van het object in de JSON-file maar wel de naam (als attribuut/eigenschap) van de resource die je toevoegt. Deze unieke naam bestaat uit een samenvoeging van een verkorte naam van de resource en je voornaam.familienaam (vb bij de Application LoadBalancer => ALB-voornaam.familienaam)
caution

Sla je template op met de naam Labo_AutoScaling_TEAMxy_ALB.json en laat je werkende stack met ALB eventjes zien aan je docent vooraleer eventueel verder te werken..