Design Prozess App Notizen
Kerstin, Jan | 31.10.2024

URLs kürzen - so einfach geht das mit AWS

Webentwicklung > URLs kürzen - so einfach geht das mit AWS

Unsere Kollegin aus dem Marketing kam mit einer spannenden Software-Herausforderung auf uns zu: Die langen URLs von Landingpages und LinkedIn-Profilen führten als Grundlage von QR-Codes zu extrem detaillierten Bildern. Diese waren ziemlich ungeeignet, um sie in kleiner Größe in z.B. Visitenkarten einzubinden.

Unsere Kollegin wollte also eine Softwareschnittstelle haben, um URLs zu kürzen und dabei eine eigene Wunsch-URL auszusuchen. Externe Softwareanbieter für die URL-Kürzung an sich gibt es zwar viele, aber diese ermöglichen oft keine volle Kontrolle über die kurzen URLs, die dann bei Scan des QR-Codes mit der Handy-Kamera angezeigt werden. Beispiel: https://newcubator.com/interaktive-karten-webanwendung wird zu ncub.com/web-map. Aus dieser kurzen URL wird dann der einfache QR-Code generiert, diese URL wird auch bei Scan des Codes angezeigt.

Unter dem Motto „Softwareentwicklung bedeutet für uns nicht nur, sehr komplexe Probleme effizient zu lösen, sondern auch einfache und praktische Lösungen für alltägliche Herausforderungen zu finden." setzten wir uns also daran, einen eigenen, einfach zu verwendenden URL-Shortener zu bauen.

Unsere Lösung: Ein eigener URL-Shortener mit AWS und sogar Slack-Integration.

Wie das funktioniert? Das zeigen wir in diesem Artikel!


Die einfachste Lösung: URLs mit AWS kürzen


Mitarbeiterin hängt Zettel an Pinwand und lächelt
Manchmal entstehen die Besten Ideen für nützliche Softwarelösungen einfach im Arbeitsalltag.

Ohne jegliches Programmieren lässt sich ein URL-Shortener bereits direkt mit AWS realisieren:

Schritt 1: S3-Bucket für statisches Webhosting erstellen. Hier werden die Umleitungen später verwaltet.

Schritt 2: CloudFront-Distribution einrichten. Diese wird mit der gewünschten Domain verknüpft und verweist auf den S3-Bucket.

Schritt 3: Redirect-Objekte erstellen. Für jede gekürzte URL wird ein leeres Objekt im S3-Bucket angelegt. Die Metadata „x-amz-website-redirect-location“ wird so angepasst, dass eine Umleitung auf die ursprüngliche, lange URL erfolgt.

Optional: Mit einer Lifecycle-Policy können diese Objekte nach einer festgelegten Zeit automatisch gelöscht werden – praktisch, wenn z.B. ein Link nur vorübergehend benötigt wird.


Die beste Lösung: URLs automatisiert kürzen

Manuelles Einrichten von gekürzten URLs ist zwar einfach, aber zeitaufwändig – und somit nicht geeignet für den täglichen Gebrauch. Deshalb haben wir den gesamten Prozess in Software- Code gegossen, und das Projekt als Open-Source Lösung veröffentlicht. In unserer URL-Shortener-Lösung müssen Sie lediglich die Domain auf Ihre URL ändern.


Erstellen der Redirect-Objekte per CLI

Danach lassen sich die Redirect-Objekte bequem per CLI erstellen.


1$ export AWS_PROFILE=newcubator-newcubator
2$ touch empty
3$ aws s3 cp empty s3://ncub.de/[[NAME]] --website-redirect "[[URL]]"

Das Beste daran: Die Objekte sind leer, werden ausschließlich für Metadaten generiert und verbrauchen keinen Speicherplatz, was die Kosten der Serverless-Architektur bei nahezu 0 hält.


Caching für Höchstleistung

Durch Aktivieren von Caching können die Kosten der Softwarenutzung nochmal weiter gesenkt werden: CloudFront liest die Redirect-URL direkt aus dem Cache, wenn ein CacheHit auftritt. Dadurch erhalten User die Antwort noch schneller. Außerdem wird der Cache in EdgeLocations gespeichert, die (im Gegensatz zu S3 Buckets), nicht in den großen Datenzentren wie Frankfurt, Paris und London verarbeitet werden.

Das Route 53 Netzwerk, auf das der Cache zugreift, nutzt deutlich mehr Datenzentren, die flächendeckend in ganz Europa verteilt sind. Durch die physische Nähe werden Nutzer noch schneller bedient.

Im Bild: AWS-seitig werden Cloudfront, S3 Buckets und Lambdas genutzt. Intern haben wir Slack und Matomo eingebunden.


Praktisches Kürzen von URLs in Slack

Ein extrem wichtiges Tool bei newcubator ist Slack. Slack ist die Software, die wir zur täglichen Kommunikation nutzen und die sich dank ihrer vielen Features und exzellenten Performance immer wieder bewährt. Da wir bereits andere Funktionen über Slack aufrufen, wollten wir auch den URL-Shortener über die Chat-Oberfläche bedienbar machen - ohne, dass Nutzende technische Vorkenntnisse haben müssen. Der Plan war wie folgt: Wir kreieren ein Kommando, dass über ein „Slash", also ein /-Zeichen, aufrufbar ist. Dieses Kommando sollte das CLI-Kommando ersetzen. Das Kommando löst eine Lamda-Funktion via API-Call aus, die dann das leere Redirect-Objekt im S3-Bucket erstellt.

Davon bekommt der Endnutzende aber gar nichts mit, er muss lediglich folgendes in Slack eingeben:

1/shortlink https://newcubator.com/interaktive-karten-webanwendung web-map 

Die lange URL ist dabei die ursprüngliche URL, der Nachsatz "web-map" ist die neue, kurze URL.

Die Antwort auf das Kommando lautet:

1ncub.de/web-map

Und so erhalten wir die gekürzte URL, die als QR wundervoll auf unsere Visitenkarten passt!


Kein Third-Party-Tracking der kurz-URLs

Ein entscheidender Vorteil: Keine Tracking-Daten werden an Dritte weitergegeben. Alle Anfragen an die generierten URLs werden über die eigene CloudFront-Instanz protokolliert und in einem eigenen S3-Bucket gespeichert. Die Lambda-Funktion filtert die relevanten Daten und leitet sie sogar an unser Analysetool Matomo weiter. Damit bleibt unser Marketing-Team stets auf dem neuesten Stand – und das komplett datenschutzkonform.


Technisch einfache Softwarelösungen schaffen

Technische Lösungen müssen nicht immer kompliziert sein. Unsere URL-Kürzung zeigt, wie individuelle Softwareentwicklung den Arbeitsalltag erleichtern kann. Das Setup ist simpel und für alle Abteilungen zugänglich. Wir alle können einfach URLs über eine vertraute Oberfläche wie Slack kürzen, nicht nur die Kolleg:innen ohne programmatische Vorkenntnisse profitieren vom neuen Tool. So wird nicht nur die ursprüngliche Herausforderung gelöst, sondern gleich ein Mehrwert für das gesamte Unternehmen geschaffen.


Open Source: Jetzt können alle Ihre URLs kürzen

Unsere Lösung ist auf GitHub öffentlich verfügbar. Probiert sie aus und lasst uns wissen, wie sie euch hilft! Wir freuen uns auf eure Erfahrungen und stehen für Fragen bereit. Softwareentwicklung lebt von Zusammenarbeit – und wir unterstützen gern.

Inhalt
  • Die einfachste Lösung: URLs mit AWS kürzen
  • Die beste Lösung: URLs automatisiert kürzen
  • Praktisches Kürzen von URLs in Slack
  • Kein Third-Party-Tracking!
  • Vorstellung des Open-Source-Projekts
Kerstin Meschede
Kerstin (Softwareentwicklerin)

... ist eine leidenschaftliche Frontendentwicklerin in Dortmund. Ihre Hauptwerkzeuge sind TypeScript, Angular, und Figma. Sie baut im Nu zauberhafte Mockups und setzt diese effizient um. Nutzerzentrie... mehr anzeigen

Jan Sauer
Jan (Softwareentwickler)

… ist als bewanderter Backend-Entwickler mit Focus auf DevOps-Engineering in der TypeScript- und JavaScript-Welt zuhause. Für alle Themen rund um Cloud und Softwarearchitektur ist er als AWS Certified... mehr anzeigen

Github

More from Kerstin

More from Jan

Unsere Entwicklungsexpertise

Standort Hannover

newcubator GmbH
Bödekerstraße 22
30161 Hannover

Standort Dortmund

newcubator GmbH
Westenhellweg 85-89
44137 Dortmund