Het klinkt zo eenvoudig… Een website is verhuisd dus de oude locatie moet doorverwijzen naar een nieuwe locatie. Technisch gezien is het ook niet zo heel spannend, maar toch zijn er meerdere juist geconfigureerde componentjes nodig om dit voor de gebruiker vlot te laten verlopen. In de oude wereld had je op z’n minst een webserver nodig. Deze tutorial laat je zien hoe je dit met TechNative’s Terraform url-redirect Module snel en eenvoudig in je AWS account kunt uitrollen.
Wat heb je er voor nodig:
- een beetje kennis van Terraform
- een AWS Account
- het oude domein moet als route53 zone in je AWS account aanwezig zijn.
Stel je website draaide eerst op https://eerste-locatie.amsterdam en inmiddels draait je website op https://nieuwe-locatie.amsterdam. Eerdere bezoekers hebben nog bookmarks naar de oude locatie en ook op talloze plekken zullen nog links naar de oude locatie aanwezig zijn. The ‘internet never forgets’
Om al deze oude links toch een eind bestemming bij jou nieuwe website te geven willen we de situatie als volgt inregelen.
Als een eerdere bezoeker nieuwe-locatie.amsterdam
in z’n browser invoert zal de
browser denken dat hij naar https://eerste-locatie.amsterdam
moet. De browser
zal een DNS query uitvoeren en wordt doorgestuurd naar een IP-adres waar een
webserver naar port 443 luistert. Hier zal de browser vragen om het SSL
certificaat dat hoort bij eerste-locatie.amsterdam
. Pas als dit certificaat
deze geldig is beschouwd accepteert de browser de response van de webserver. De
webserver geeft in z’n response de opdracht om in het vervolg direct de url
https://nieuwe-locatie.amsterdam/we-zijn-verhuisd
te openen. Hier staat een
bericht dat de bezoeker uitlegt dat de website is voortaan op deze nieuwe plek
te bezoeken is.
Met AWS bouwstenen gaan we dit als volgt oplossen:
Een Route53 record in de zone van eerste-locatie.amsterdam
gaat verwijzen
naar een CloudFfront distributie. Deze CF distributie heeft een ACM SSL
certificaat gekoppeld dat bewijst dat eerste-locatie.amsterdam
daadwerkelijk
in beheer is door de eigenaar van deze CloudFront resource. De CloudFfront
service stuurt alle http
en https
verzoeken door naar een als webserver
geconfigureerde S3 bucket. Deze S3 webserver stuurt vervolgens alle
browsers en web-agents door naar
https://nieuwe-locatie.amsterdam/we-zijn-verhuisd
Samengevat gebruiken we deze AWS diensten:
Ik ga niet helemaal uitleggen hoe je jouwe AWS account met Terraform
configureert. Bekijk de tutorials op de website van de makers van
Terraform
hoe je kunt beginnen. Als je een werkende setup hebt en je omgeving kan
aanpassen met terraform apply
maak dan een nieuw bestand aan in je Terraform
codebase en voeg hier onderstaande code aan toe.
module "redirect_technative_nl" {
source = "wearetechnative/module-url-redirect/aws"
version = "0.1.1"
domain = "technative.nl"
route53_zone_name = "technative.nl."
providers = {
aws.us-east-1: aws.us-east-1
}
redirect_target_url = "https://technative.eu"
}
Als je deze TF code uitrolt zal het even duren omdat vooral het aanmaken van een CloudFront distribute even duurt. Ook het valideren van de SSL certificaten neemt wat tijd in beslag. Bovenstaand code blokken kun je voor verschillende oude domeinnamen zoveel herhalen als je wilt.
Bedankt voor het lezen van deze tutorial. Mocht tegen problemen aanlopen, dan horen we dit graag via ons ticketsysteem op github.