Sie wollen ein neues Projekt starten oder vielleicht neue Funktionen entwickeln? Bevor Sie etwas unternehmen, lohnt es sich, so viel wie möglich über verschiedene externe Tools zu erfahren, die für Sie nützlich sein könnten.
Zwei grundlegende und wahrscheinlich die beliebtesten AWS-Dienste sind EC2 und S3. Kurz gesagt: Mit EC2 können Sie Ihre Projekt und der Welt zeigen, während S3 zum Speichern von Daten jeglicher Art verwendet wird. In diesem Artikel möchte ich jedoch auf andere mehr oder weniger beliebte AWS-Tools eingehen, die wir hier bei Codest normalerweise verwenden.
Cloudfront
Es ist ein Werkzeug, das speziell für eine sehr schnelle Bereitstellung von Ressourcen für viele Benutzer entwickelt wurde. Und viele bedeutet nicht Hunderte oder Tausende, sondern Millionen von Anfragen für eine einzige Ressource. Zum Beispiel möchten Sie Ihre Grafik, CSS, HTML oder javascript Datei auf einer beliebigen Seite. Sie möchten auch einen vollen Einfluss auf den Inhalt der Ressource haben - Sie müssen etwas ändern, und Sie möchten, dass diese Änderung auf allen Seiten mit Ihrer Datei erfolgt. Und hier kommt AWS Cloudfront ins Spiel, mit all seinen Möglichkeiten, die dafür sorgen, dass der Endnutzer Ihre Ressource so schnell wie möglich erhält.
Cloudfront bietet auch eine Reihe von Statistiken. Zum Beispiel - Seiten, die am meisten angefordert wurden, Geräte, mit denen die Anfrage für die Ressource gemacht wurde, http-Status, etc.
Natürlich ist dieses Tool recht teuer, aber je mehr Anfragen an Cloudfront gestellt werden, desto weniger zahlen Sie für den Dienst. Daher sollten Sie diese Lösung in Betracht ziehen, wenn Sie die Ressource auf Websites mit wirklich großem oder sogar riesigem Traffic platzieren möchten.
Stapel
Einfach ausgedrückt handelt es sich um einen Service, der die Ausführung einer großen Anzahl von Aufträgen direkt auf AWS ermöglicht. Alles, was Sie vorbereiten müssen, ist ein Ausführungsskript und ein Docker-Image, während AWS Batch den Rest erledigen wird. Batch erstellt dynamisch Instanzen auf EC2, weist einen geeigneten Platz für Aufträge zu und startet sie gleichzeitig. Sie müssen nicht befürchten, dass Ihrer EC2-Instanz der Platz oder der Speicher ausgeht, oder dass Sie ständig darüber nachdenken müssen, wann und wie der Job gestartet werden kann. Für die Kommunikation zwischen dem Skript im Docker-Image und Ihrem Dienst können Sie einfach die API erstellen und los geht's. Wenn Sie Batch verwenden möchten, sollten Sie auch Ihr Docker-Repository im Amazon Elastic Container Registry (ECR) Service vorbereiten.
Ein weiterer Dienst, der die Vorteile von Docker-Containern nutzt, ist ebenfalls erwähnenswert. Er heißt Elastic Container Service (ECS). Der Hauptunterschied zu Batch besteht darin, dass Sie die EC2-Instanz selbst einrichten und skalieren müssen, während Batch diese Aufgabe für Sie übernimmt. Die Kosten für Batch hängen davon ab, welche EC2-Instanzen Sie nutzen dürfen, da Sie in diesem Fall nur für laufende Instanzen zahlen.
Lambda
AWS Batch erledigt die Arbeit durch das Starten von Docker-Images, während der nächste Service - AWS Lambda - es Ihnen ermöglicht, das Skript direkt auszuführen. Sie müssen keinen Server einrichten, die Code virtuell ausgeführt wird, und was noch besser ist, Sie können auch einen Wert auf die gewünschte Weise zurückgeben.
Wann kann sie verwendet werden? Nehmen wir an, Sie möchten auf unserer Website einige Berechnungen auf der Grundlage von Parametern aus dem Browser durchführen, und vielleicht erfordern diese Berechnungen zusätzlich einige Abfragen an anderen Stellen im Web. In diesem Fall müssen Sie nur einen Endpunkt in Lambda erstellen, Ihr Skript hinzufügen und diesen Endpunkt auf der Website verwenden. Das ist wirklich einfach.
Die Lambda-Kosten werden nur gezählt, wenn das Skript ausgeführt wird, wenn der Endpunkt nicht verwendet wird, zahlen Sie nichts.
SNS
Simple Notification Service ist, wie der Name schon sagt, ein Tool, das speziell für den Versand von Benachrichtigungen entwickelt wurde. Es kann leicht für die Kommunikation zwischen verschiedenen AWS-Services verwendet werden. Sie haben z. B. eine Gruppe von Mikrodiensten und möchten, dass einer von ihnen die anderen anführt - einige von ihnen startet oder einige Aktionen ausführt. In diesem speziellen Fall können Sie eine Benachrichtigung vom Hauptservice senden und den Empfang von Nachrichten in einem anderen Mikroservice Ihrer Wahl abwickeln. Übrigens ist auch der Amazon Simple Queue Service (SQS) erwähnenswert, der zusammen mit SNS eine sehr interessante Verbindung herstellen kann.
Im Falle von SNS (wie auch von SQS) wird die Zahlung nur für ausgeführte Anfragen geleistet: Senden von Nachrichten an SNS, Senden von Nachrichten von SNS an andere Dienste und andere zusätzliche Anfragen aus dem SNS-API-Pool.
RDS
Amazon Relational Database Service ist lediglich eine externe Datenbank. Mit diesem Service ermöglicht AWS eine einfache Einrichtung, Nutzung und Skalierung einer relationalen Datenbank. Wenn Sie zum Beispiel davon ausgehen, dass Ihre Datenbank eine beträchtliche Größe hat und täglich wächst, und Sie planen, regelmäßig mehr oder weniger komplexe Operationen damit durchzuführen, z. B. die Verarbeitung und das Kopieren von Daten in eine andere Datenbank, ist diese Lösung eine Überlegung wert. Zu den verfügbaren Datenbank-Engines gehören PostgreSQL, MySQL und MariaDB.
Es ist leicht zu erraten, dass die RDS-Kosten mit der Größe der Datenbank und ihrer Nutzung zusammenhängen, so dass es schwer zu sagen ist, ob es sehr teuer sein wird oder nicht.
Zusammenfassung
AWS verändert sich ständig, sei es durch die Verbesserung bestehender Dienste oder durch die Schaffung neuer Angebote. Es ist nicht nur ratsam, sich über die technologischen Neuerungen auf dem Laufenden zu halten, sondern sich auch mit den bereits vorhandenen Dingen vertraut zu machen.
Nützliche Links