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](https://images.newcubator.com/f/180644/8192x5464/fc4a5dd4f4/newcubator_22_m6_0671_full.jpg/m/3840x0/)
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.