Steigern Sie Ihre Produktivität mit Amazon Web Services

Veröffentlicht: 2022-03-11

In den letzten Jahren war „Produktivität“ das heißeste Wort in aller Munde. In der sich schnell entwickelnden Internetwelt wird es immer positiv bewertet, etwas schnell zu erledigen. Obwohl ich echte Geschäftslogik schnell und genau implementieren musste, verbrachte ich als erfahrener PHP-Entwickler immer noch Hunderte von Stunden mit anderen Aufgaben, wie dem Einrichten von Datenbanken oder Caches, dem Bereitstellen von Projekten, dem Überwachen von Online-Statistiken und so weiter. Viele Entwickler kämpfen seit Jahren mit diesen sogenannten sonstigen Aufgaben und verschwenden Zeit damit, sich auf die Projektlogik zu konzentrieren.

Mein Leben hat sich verändert, als ein Freund vor vier Jahren Amazon Web Services (AWS) erwähnte. Es öffnete eine neue Tür und führte zu einer enormen Steigerung der Produktivität und Projektqualität. Für alle, die AWS noch nicht verwendet haben, lesen Sie bitte diesen Artikel, der sich sicher für Sie lohnt.

Steigern Sie Ihre Produktivität

Amazon Web Services (AWS) kann Ihre Produktivität buchstäblich in wenigen Minuten steigern.
Twittern

AWS-Hintergrund

Amazon Web Services wurde 2006 offiziell eingeführt. Viele Leute werden davon gehört haben, wissen aber wahrscheinlich nicht, was es zu bieten hat. Die erste Frage lautet also: Was ist AWS?

Amazon Web Services (AWS) ist eine Sammlung von Cloud-Computing-Diensten, auch Webdienste genannt, die eine von Amazon.com angebotene Cloud-Computing-Plattform bilden.

Wikipedia

Aus dieser Definition wissen wir zwei Dinge: AWS basiert auf der Cloud und AWS ist eine Sammlung von Diensten und kein einzelner Dienst. Da Ihnen das nicht viel sagt, ist es meiner Meinung nach für einen Anfänger besser, AWS zu verstehen als:

  • AWS ist eine Sammlung von Diensten in der Cloud, wie die Definition sagt.
  • AWS stellt online schnelle Rechenressourcen bereit (z. B. benötigen Sie 10 Minuten, um einen Linux-Server einzurichten).
  • AWS bietet erschwingliche Gebühren.
  • AWS bietet benutzerfreundliche Dienste, die sofort einsatzbereit sind, was viel Zeit beim manuellen Einrichten einer Datenbank, eines Caches, eines Speichers, eines Netzwerks und anderer Infrastrukturdienste spart.
  • AWS ist immer verfügbar und hochgradig skalierbar.

Die Verwendung von AWS bietet natürlich noch viele weitere Vorteile. Verschaffen wir uns also einen kurzen Überblick darüber, wie es Ihre Produktivität steigern kann.

Erstellen Sie kostenlos ein AWS-Konto

Um mit der Nutzung eines Dienstes beginnen zu können, benötigen Sie ein Konto. Das Erstellen eines Kontos für AWS sollte nicht länger als fünf Minuten dauern. Stellen Sie sicher, dass Sie die folgenden Informationen zur Hand haben:

  • Eine E-Mail-Adresse, die verwendet wird, um eine Bestätigungs-E-Mail zu erhalten.
  • Eine Kreditkarte, die nicht belastet wird, da der Einrichtungsvorgang immer kostenlos ist.
  • Eine Telefonnummer, die einen automatischen Systemaufruf erhält, um den Benutzer zu identifizieren

Das ist es. Sobald Sie die oben aufgeführten Informationen bereit haben, besuchen Sie die AWS-Webseite und erstellen Sie ein Konto, indem Sie den leicht verständlichen Anweisungen folgen.

Beachte das Folgende:

  • Die meisten AWS-Services bieten monatlich eine Fülle von kostenlosen Kontingent-Ressourcen. Das heißt, das Testen von AWS kostet Sie normalerweise wenig oder gar nichts.
  • Die Telefonnummer und andere persönliche Informationen wurden meiner Erfahrung nach nicht missbraucht

Holen Sie sich Ihr erstes EC2-Server-Setup

Einer der Vorteile eines Cloud-Dienstes ist die Möglichkeit, gemeinsam genutzte Ressourcen nach Bedarf zu erhalten. Amazon hat vier Serviceebenen für den Benutzer bereitgestellt, um auf seine Dienste zuzugreifen, die in der Reihenfolge der Einfachheit aufgeführt sind:

  • Managementkonsole,
  • Kommandozeilen-Tool,
  • SDK,
  • RESTful-API.

In diesem Artikel verwenden wir die Management Console. Nachdem Sie sich also bei der Konsole angemeldet haben, sehen Sie einen Bildschirm wie unten:

Einrichten Ihres ersten EC2-Servers in AWS

Dabei sind zwei Bereiche zu beachten:

  • In der oberen rechten Ecke finden Sie die Regionsauswahl. AWS bietet Services in 11 verschiedenen Regionen auf der ganzen Welt an und wächst weiter. Wählen Sie eine Region als Ihre Wahl aus, oder belassen Sie sie als Standard bei USA Ost (Nord-Virginia). Je nach Region können die Preise variieren, was Sie bei zunehmender Nutzung berücksichtigen sollten.
  • Der größte Teil des Bildschirms ist mit einer Liste von Diensten gefüllt. In diesem Abschnitt behandeln wir EC2. Werfen Sie einen kurzen Blick auf das, was AWS bietet. Machen Sie sich keine Sorgen, wenn sie keinen Sinn ergeben, alle Dienste funktionieren von selbst. Sie werden jedoch eine höhere Produktivität erzielen, wenn Sie eine Kombination davon verwenden.

Die grundlegendste Anforderung einer Cloud-Ressource ist der virtuelle Server. EC2 oder Elastic Compute Cloud ist der Name, den Amazon für seinen virtuellen Serverdienst gewählt hat. Schauen wir uns an, wie einfach es ist, einen Linux-Server online zu bekommen.

  • Starten Sie in der EC2-Verwaltungskonsole den Startvorgang wie folgt:

Einrichten Ihres ersten EC2-Servers in AWS

  • Wählen Sie zu Beginn ein Maschinen-Image (kurz AMI) aus. Dies ist das Betriebssystem, das Ihren Computer ausführt. Wählen Sie ein beliebiges System Ihrer Wahl. Ich empfehle Ihnen, mit Amazon Linux zu beginnen, das yum zum Verwalten von Paketen verwendet:

Einrichten Ihres ersten EC2-Servers in AWS

  • Wählen Sie als Nächstes einen Instance-Typ aus. Sie können dies als Ihre Hardwarespezifikation für Ihren virtuellen Server verstehen. Sie können mit t2.micro starten, denn Sie erhalten mit dieser Instanz im ersten Jahr jeden Monat 750 Stunden kostenlose Nutzung. Beachten Sie , dass dies nur im ersten Jahr ab dem Datum Ihrer Anmeldung und nur für die t2.micro- Instanz gültig ist. Es ist ein gutes Geschäft, wenn Sie nur einen Vorgeschmack auf AWS haben möchten.

Einrichten Ihres ersten EC2-Servers in AWS

  • Mit der Möglichkeit, den Server detaillierter zu konfigurieren, können Sie den Server starten. Wenn Sie EC2 zum ersten Mal verwenden, sehen Sie einen Bildschirm ähnlich dem folgenden. Die Warnung zur Sicherheit verrät uns, wie sehr Amazon den Sicherheitsaspekt betont. Wir können diese Warnung jedoch ignorieren, bis wir den Abschnitt über verwaltete Dienste besuchen.

Einrichten Ihres ersten EC2-Servers in AWS

  • Schließlich benötigen wir für den Zugriff auf einen entfernten Server eine Identität. AWS fordert uns auf, ein SSH-Schlüsselpaar auszuwählen, wie in der Abbildung unten. Laden Sie die Datenschutzschlüsseldatei herunter und klicken Sie auf die Schaltfläche „Starten“. Und ja, wir sind fertig; Ein neuer virtueller Server wird konfiguriert und ist in wenigen Minuten bereit.

Einrichten Ihres ersten EC2-Servers in AWS

  • Sobald die Instanz bereit ist, können Sie sich mit Ihrem Datenschutzschlüssel als Standardbenutzer ec2-user beim System anmelden. ec2-user ist der AWS-Standard, der auch über die Sudo-Fähigkeit verfügt. Obwohl es nicht möglich ist, den Standard-Benutzernamen zu ändern, können Sie jeden Benutzer erstellen und die entsprechenden Berechtigungen gemäß Ihren Präferenzen zuweisen. Die Adresse Ihres Servers finden Sie hier:

Einrichten Ihres ersten EC2-Servers in AWS

Der obige Vorgang sollte weniger als fünf Minuten dauern, und so einfach bekommen wir einen virtuellen Server zum Laufen. Im nächsten Abschnitt erfahren wir, wie AWS uns bei der Verwaltung der gerade erstellten Instanz unterstützt.

Abrechnung nach Bedarf

Die meisten AWS-Ressourcen werden nach Stunden abgerechnet, was eine gute Flexibilität bietet. Nehmen wir zum Beispiel die EC2-Instance, die wir gerade erstellt haben, gibt es zwei Möglichkeiten, sie außer Betrieb zu setzen: Anhalten und Beenden. Beide Aktionen stoppen die Abrechnung. Der Unterschied besteht darin, dass wir durch das Stoppen einer Instanz sie später mit all unserer eingesparten Arbeit neu starten können. Im Gegensatz dazu geben wir durch das Beenden einer Instanz die Instanz zum Recycling an AWS zurück, und es gibt keine Möglichkeit, die Informationen wiederherzustellen. Die Notwendigkeit, eine Instanz zu beenden, ergibt sich daraus, dass AWS standardmäßig ein Limit von 20 Instanzen pro Region und Konto festlegt, und eine angehaltene Instanz zählt weiterhin, bis sie beendet wird.

Wir können eine Instanz schnell stoppen, indem wir:

Einrichten Ihres ersten EC2-Servers in AWS

Wenn Sie Ihre EC2-Instance stoppen, wächst auch Ihre Rechnung nicht mehr. Es ist besonders nützlich in den folgenden Szenarien:

  • Wenn Sie etwas Neues ausprobieren möchten, ist es kostengünstiger, wenn Sie nur für ein paar Stunden bezahlen müssen, und Sie werden wahrscheinlich das kostenlose Kontingent für einige Dienste nicht überschreiten.
  • Wenn Ihr Computing-Bedarf in Produktionsumgebungen skaliert wird. In der Vergangenheit musste ich beispielsweise Rechenressourcen reservieren, die normalerweise 30 bis 50 Prozent über der Spitzenauslastung liegen. Mit AWS konnte ich Ressourcen flexibler bereitstellen:

Einrichten Ihres ersten EC2-Servers in AWS

Preisinformationen für AWS sind online verfügbar. Nachdem Sie einige Berechnungen angestellt haben, stellen Sie sich vielleicht die Frage: Ist AWS tatsächlich billiger? Durch die Multiplikation des Stundensatzes für einen Monat sieht es so aus, als wäre es überhaupt nicht wettbewerbsfähig. Die Antwort ist ja und nein.

Günstiger wird AWS nicht, wenn man einfach den Stundensatz für die On-Demand-Ressource über einen Monat rechnet. Wir haben jedoch immer noch die Abrechnungsoptionen für reservierte Instanzen, wie unten dargestellt:

Einrichten Ihres ersten EC2-Servers in AWS

Für die minimalen Ressourcenanforderungen können wir mit der reservierten Instanz zusammen mit anderen unterschiedlichen Ressourcen, die als On-Demand-Instanz abgerechnet werden, einen Rabatt von 30 bis 70 Prozent erzielen. In der Praxis wird dies bei der einjährigen Bindung 30 bis 40 Prozent günstiger, bei einer dreijährigen Bindung über reservierte Instanzen sogar noch mehr. Deshalb werde ich bei der obigen Frage mit „Ja“ stimmen. Und AWS ist sogar noch billiger, wenn Sie die Sicherheits- und Überwachungsvorteile einbeziehen.

Verwaltete Dienste

Ein Ziel von AWS ist es, so viele Betriebskosten wie möglich zu eliminieren. Traditionell benötigen wir ein großes Team von Systemingenieuren, um die Sicherheit und den Zustand unserer Infrastruktur aufrechtzuerhalten, entweder online oder vor Ort. Erfahrene Teams werden ihre automatisierten Tools schreiben und bereitstellen, um den Prozess zu vereinfachen. Aber auch in der Praxis wird das Managen von Services zu einem komplizierten Projekt. AWS fungiert als Lebensretter, indem es uns hilft, unsere Ressourcen zu verwalten. Im Folgenden habe ich einige der von AWS bereitgestellten Dienste aufgelistet, die am häufigsten verwendet werden:

  • AWS-Sicherheitsgruppe,
  • IAM, Identitätszugriffsverwaltung,
  • CloudWatch,
  • Und eine Liste von automatischen Bereitstellungsdiensten wie OpsWorks (die in diesem Artikel nicht behandelt werden).

AWS-Sicherheitsgruppe

Wie AWS die Zugriffskontrolle von Diensten handhabt, erfolgt auf zwei separaten Ebenen. Auf Netzwerkebene wird dies durch die Verwendung einer Idee erreicht, die als „Sicherheitsgruppen“ bekannt ist. Alle AWS-Services befinden sich in Sicherheitsgruppen. Und die Sicherheitsgruppe bestimmt, wer passieren darf. Bei unserer EC2-Instanz hat AWS automatisch eine Sicherheitsgruppe für uns erstellt:

Einrichten Ihres ersten EC2-Servers in AWS

Wir können entscheiden, was reinkommt und was raus darf, indem wir Inbound/Outbound-Regeln konfigurieren. TCP-, UDP- und ICMP-Regeln werden vom EC2-Dienst unterstützt. Die Sicherheitsgruppe verhält sich wie eine externe Firewall auf Hardwareebene, und wir müssen nie daran denken, sie zu patchen.

Ein weiterer Vorteil der Verwendung von Sicherheitsgruppen besteht darin, dass sie wiederverwendbar sind. Eine Sicherheitsgruppe kann von vielen Ressourcen gemeinsam genutzt werden. In der Praxis verbessert es die Wartungseffizienz erheblich, indem es den Aufwand beseitigt, Sicherheitsrichtlinien einzeln für jede Ressource festzulegen. Die gemeinsam nutzbare Natur einer Sicherheitsgruppe ermöglicht es uns außerdem, sie an einem einzigen Ort zu konfigurieren und diese Sicherheitsrichtlinie auf alle anderen Ressourcen anzuwenden, ohne sie manuell einzeln für jede Ressource festlegen zu müssen.

Identitäts- und Zugriffsverwaltung

AWS bietet eine weitere Methode zur Handhabung der Zugriffskontrolle mithilfe von IAM. Dies ist eine Sicherheitskontrolle auf Anwendungsebene, wenn Sie auf die RESTful-Schnittstellen zugreifen müssen. Jede REST-Anfrage muss signiert werden, damit AWS weiß, wer auf den Service zugreift. Außerdem bestimmt AWS anhand einer vorkonfigurierten Liste von Richtlinien, ob die Aktion verweigert oder zugelassen werden soll.

Wir werden IAM in diesem Artikel nicht im Detail behandeln. Beachten Sie jedoch, dass AWS viel Wert auf Sicherheit legt, damit Sie sicher sein können, dass keine unbefugten Besucher auf Ihre vertraulichen Daten zugreifen können.

CloudWatch

CloudWatch ist ein von AWS bereitgestellter Service zum Sammeln und Verfolgen aller Arten von Metriken aus Ihren AWS-Ressourcen. Es ist leistungsfähiger, da es auf bestimmte Ereignisse (oder Alarme) reagieren kann. Mithilfe von CloudWatch können wir den Zustand unserer neu erstellten EC2-Instanz überwachen.

  • Wir können unserer EC2-Instanz schnell Alarme hinzufügen:

Einrichten Ihres ersten EC2-Servers in AWS

  • Alarme können durch Angabe von Kriterien für viele verschiedene Zwecke erstellt werden:

Einrichten Ihres ersten EC2-Servers in AWS

HINWEIS : SNS ist ein themenbasierter Service, der von AWS zum Senden von Benachrichtigungen bereitgestellt wird. Benachrichtigungen können per E-Mail, SMS, iOS/Android-Push-Benachrichtigung und vielen anderen Formaten gesendet werden.

Von der Überwachung bis zur Benachrichtigung versucht CloudWatch, die Überwachungsanforderungen mit wenigen Klicks zu automatisieren. Es gibt unzählige Metriken, die für verschiedene AWS-Services vordefiniert sind. Für fortgeschrittene Benutzer können Sie sogar benutzerdefinierte Metriken für Ihre Anwendung erstellen.

In Bezug auf die Kosten ist der von CloudWatch bereitgestellte kostenlose Tier-Service normalerweise ausreichend für Start-up-Projekte. Aber selbst wenn Ihr Unternehmen wächst, betragen die zusätzlichen Kosten normalerweise weniger als 1 Prozent der Servicekosten. Überprüfen Sie die detaillierten Preise für weitere Informationen. Wenn man bedenkt, wie einfach es ist, ein Überwachungssystem mit CloudWatch einzurichten, ist es zum am häufigsten verwendeten Überwachungstool geworden.

Problemlose Anwendungsdienste

Als Entwickler haben wir wahrscheinlich die folgenden Szenarien erlebt:

  • Unsere Anwendung benötigt eine Datenbankkomponente, was bedeutet, dass wir:
    • Holen Sie sich einen Server für die Datenbank.
    • Installieren Sie die Datenbanksoftware.
    • Konfigurieren Sie Monitore für den Server und die Datenbank.
    • Planen Sie Backup-Schemata.
    • Patchen Sie die Software nach Bedarf.
    • Und viele andere, die hier nicht aufgeführt sind.
  • Unsere Anwendung benötigt eine verteilte Dateispeicherung, was bedeutet, dass wir:
    • Finden Sie vorhandene Open-Source- (oder kommerzielle) Lösungen für die verteilte Dateispeicherung.
    • Bereiten Sie die benötigten Server vor.
    • Installieren und konfigurieren Sie die gewählte Lösung, was normalerweise nicht einfach ist.
    • Konfigurieren Sie Monitore für den Server und die Datenbank
    • Und viele andere, die hier nicht aufgeführt sind
  • Unsere Anwendung benötigt einen Cache.
  • Unsere Anwendung benötigt eine Nachrichtenwarteschlange.
  • Und viele andere Probleme, die gelöst werden müssen, außerdem müssen wir Vorkonfigurations- und Nachüberwachungsarbeiten durchführen.

Und wie Sie vielleicht schon erraten haben, ist dies ein weiterer wichtiger Bereich, in dem AWS hilft. Es sind viele Dienste auf Anwendungsebene verfügbar, sodass Sie nichts weiter berücksichtigen müssen.

Lassen Sie uns einige davon behandeln, um Ihnen ein schnelles Bild zu geben.

RDS, Datenbank, die für Sie verwaltet wird, aber nicht von Ihnen

Relationale Datenbanken (RDBMS) wurden von vielen Anwendungen weit verbreitet. In der Produktionsumgebung ist immer besondere Aufmerksamkeit erforderlich, wenn Anwendungen mithilfe von RDBMS bereitgestellt werden, beginnend mit der Einrichtung und Konfiguration der Datenbank, gefolgt davon, wann und wie Sicherungen erstellt und wiederhergestellt werden.

In unserem Team verbrachte unser Datenbankadministrator (DBA) früher mindestens 30 Prozent seiner Zeit mit dem Schreiben von Setup- und Wartungsskripten. Mit der Einführung von AWS RDS hat unser DBA mehr Zeit für die SQL-Leistungsoptimierung, den bevorzugten Bereich, in den Sie Ihren DBA investieren sollten.

Also, was bietet Ihnen RDS? Zusamenfassend:

  • RDS bietet Unterstützung für die meisten gängigen Datenbank-Engines, einschließlich MySQL, SQLServer, PostgreSQL.
  • Eine Datenbank, entweder ein Knoten oder ein Cluster, kann mit wenigen Klicks erstellt werden.
  • RDS bietet integrierte Unterstützung für gemeinsam genutzte Datenbankparameter unter dem Dienst „Parameter Group“.
  • RDS bietet integrierte Unterstützung für die Zugriffsverwaltung mit Hilfe der Sicherheitsgruppe , die derjenigen, die wir für EC2 behandelt haben, ziemlich ähnlich ist.
  • RDS bietet zusätzliche Dienste, indem es Multi-AZ mit einem einzigen Klick aktiviert. Alle Überwachungs-, Standby- und Failover-Umschaltungen erfolgen automatisch.
  • Wartung und Backup von RDS sind automatisiert.

Zusammenfassend lässt sich sagen, dass RDS bei der Einrichtung und Wartung der Datenbankdienste erheblich Zeit spart. Dafür zahlen Sie rund 40 Prozent mehr als für den entsprechenden EC2-Server. Es ist also eine unternehmerische Entscheidung, ob man sich für RDS entscheidet oder den entsprechenden Server selbst einsetzt. Sie können jedoch mehr Zeit in Arbeit investieren, die sich auf das eigentliche Geschäft bezieht, anstatt auf die Stabilität und Skalierbarkeit der Infrastruktur. Außerdem werden Sie bald feststellen, dass dies der Geschäftsweg ist, den AWS befürwortet.

Dynamo DB, ein Schlüsselwertspeicher, skaliert auf Milliarden von Datensätzen

NoSQL ist in den letzten Jahren zu einem Lieblingsthema geworden. Da viele reale Projekte die Unterstützung verschiedener relationaler DBMS nicht benötigen, wurde eine Liste von NoSQL-Datenbanken auf den Markt gebracht. Amazon fällt dabei nicht ins Hintertreffen. DynamoDB (https://aws.amazon.com/dynamodb) ist der 2012 von Amazon angekündigte Key-Value-Store, und der Hauptbeitragende zu diesem Service ist Werner Vogels, CTO von Amazon, einer der weltweit führenden Experten für Ultra- skalierbare Systeme.

Es ist kein Geheimnis, dass Amazon massiven Datenverkehr abwickelt. DynamoDB ist von Dynamo abgeleitet, das die interne Speicher-Engine für viele Amazon-Unternehmen war, einschließlich seines Warenkorb-Services, der jedes Jahr zu Weihnachten Milliarden von Anfragen bedient. DynamoDB hat keine Einschränkung beim Hochskalieren.

Darüber hinaus bietet DynamoDB im Vergleich zu anderen NoSQL-Lösungen wie Cassandra oder MongoDB einen enormen wirtschaftlichen Vorteil. er wird in der Einheit des reservierten Durchsatzes abgerechnet (wie viele Schreib-/Lesevorgänge pro Sekunde zulässig sind), der in Echtzeit erhöht oder verringert werden kann. Nachfolgend finden Sie eine Kostenvergleichstabelle zwischen DynamoDB und anderen eigenständigen NoSQL-Lösungen:

Geschäftsanforderungen DynamoDB-Dienst DynamoDB-Kosten Verwenden eines anderen Dienstes Kosten bei Nutzung eines anderen Dienstes
Kleinunternehmen
(weniger als 1000 DAU, 16 GB Daten)
10 Schreibeinheit
10 Leseeinheit
9,07 $/Monat • t1.micro ••
16 GB EBS •••
14,64 $/Monat
Mittleres Geschäft
(weniger als 100.000 DAU, 160 GB Daten)
100 Schreibeinheiten
100 Leseeinheit
$101,62/Monat m4.xlarge
160 GB EBS
190,95 $/Monat
Großes Geschäft
(bis zu 1 Mio. DAU, 1 TB Daten)
1000 Schreibeinheiten
1000 gelesene Einheit
852,58 $/Monat Geclustertes c4.4xlarge • 512 GB EBS • $1329,24/Monat

• Aus Fairnessgründen wird der Preis anhand der On-Demand-Preise in der Region USA-OST berechnet
•• AWS EC2-Instanzen werden ausgewählt, um andere NoSQL-Dienste zu hosten
••• EBS ist der von AWS bereitgestellte dauerhafte Speicherdienst

Wie wir aus der Tabelle entnehmen können, bietet DynamoDB seinen Service sofort einsatzbereit und normalerweise zu einem niedrigeren Preis im Vergleich zum Aufbau eines eigenen Schlüsselwertspeichers. Dies liegt daran, dass Sie mehr für etwas bezahlen, das Sie nie verwenden, es sei denn, Sie erreichen die maximale Kapazität Ihres MongoDB/Cassandra-Clusters.

Amazon bietet seinen Service vollständig verwaltet an. Das bedeutet, dass Sie sich keine Gedanken darüber machen müssen, wie Sie Ihre DynamoDB einrichten, skalieren oder überwachen; Sie werden alle von AWS ausgeführt. Tatsächlich wird das Lesen und Schreiben von DynamoDB-Elementen immer in konstanter Zeitkomplexität gemessen, unabhängig von der Größe der zu manipulierenden Daten. Daher haben sich einige Anwendungen dafür entschieden, Cache-Layer zu verwerfen, nachdem sie zu DynamoDB gewechselt sind. Erstaunlich, in der Tat.

SQS, verteilter Warteschlangendienst

Beim Arbeiten mit großen Datenmengen verteilen wir Berechnungen oft auf viele Rechenknoten. Wenn wir weltweit Geschäfte tätigen, benötigen wir oft eine Pipeline, um Daten zu verarbeiten, die von geografisch weit verteilten Knoten gesammelt werden. Um die Anforderungen für solche Ereignisse zu erfüllen, führt AWS SQS, Simple Queue Service, ein. Wie viele bestätigte Warteschlangendienste bietet SQS eine Möglichkeit, Nachrichten/Jobs dauerhaft zwischen verschiedenen logischen Komponenten zu übergeben.

Wie der Name schon sagt, ist SQS ein Basisdienst, der zu Beginn von AWS verfügbar ist. Amazon hat SQS jedoch stetig weiterentwickelt, und je nach Bedarf ist SQS mit vielen anpassbaren Parametern möglicherweise so einfach oder so leistungsstark, wie Sie es benötigen. Einige der erweiterten Funktionen von SQS sind:

  • Aufbewahrung von Nachrichten für bis zu 14 Tage.
  • Sichtbarkeitsmechanismus zur Vermeidung von Nachrichtenverlusten bei einem Fehlerereignis.
  • Lieferverzögerung pro Nachricht.
  • Redrive-Richtlinie zum Umgang mit fehlgeschlagenen Nachrichten (sogenannte unzustellbare Nachrichten).

Warteschlangendienste sollten nicht zu kompliziert sein. Sie fragen sich vielleicht, warum es sich lohnt, einen ganzen Abschnitt zu verwenden, nur um SQS vorzustellen. Vielleicht haben Sie den Grund schon erraten; Wie andere AWS-Services ist SQS ein vollständig verwalteter Service, was bedeutet:

  • Die Warteschlange ist hochgradig skalierbar; Es können Dutzende von Nachrichten sein, die Sie durchlaufen, oder Millionen pro Sekunde, sodass SQS im laufenden Betrieb skaliert.
  • Die Warteschlange ist persistent und verteilt, was bedeutet, dass kritische Daten nicht verloren gehen, es sei denn, sie verfallen.
  • Sie müssen keinen Server einrichten, um Ihre Warteschlangensoftware bereitzustellen. Und natürlich müssen Sie auch kein komplexes Monitoring für den Dienst einrichten

S3, ein Dateispeicher, aber nicht nur ein Dateispeicher

S3 steht für Simple Storage Service und ist wie Dropbox ein Dienst für den Endnutzer, allerdings für Anwendungen. Per Definition ist S3 ein objektbasierter Speicher mit einer einfachen Weboberfläche.

S3 ist für den Benutzer einfach, bietet aber auch viele erweiterte Funktionen. I S3 ist zu einem Industriestandard geworden, insbesondere für Anwendungen, die andere AWS-Dienste verwenden. Dies liegt hauptsächlich daran, dass S3 so einfach zu integrieren ist, dass es für die meisten AWS-Dienste zu einem beliebten externen Speicherziel geworden ist. Außerdem nutzen viele Dienste wie DynamoDB, SQS usw. S3 intern stark.

Das Verständnis von S3 sollte die Vorteile der Verwendung anderer verwalteter AWS-Services verstärken. Dies liegt daran, dass die meisten Dienste ihre Backups auf S3 speichern. Außerdem ist S3 das gemeinsame Export-/Importziel für Dienste, einschließlich, aber nicht beschränkt auf DynamoDB, RDS und Redshift.

Schließlich ist S3 wie andere AWS-Dienste; Es ist vollständig verwaltet, sodass wir einfach mit der Nutzung des Dienstes beginnen können, ohne Server- oder Failover-Mechanismen einzurichten. In wirtschaftlicher Hinsicht ist S3 auch ein Pay-as-you-Use-Service, sodass Sie es jederzeit ohne große Kosten ausprobieren können.

Erweiterte Dienste und SDK

Es gibt auch viele andere erwähnenswerte AWS-Dienste. Aus Platzgründen listen wir hier nur einige interessante auf:

  • Redshift: Eine spaltenbasierte Datenbank, mit der Billionen von Daten sehr schnell verarbeitet werden können. Sie müssen es versuchen, wenn Sie für die ETL einer großen Datenmenge verantwortlich sind.
  • Datenpipeline: IErmöglicht Ihnen die schnelle Übertragung von Daten zwischen AWS-Services und ermöglicht außerdem die regelmäßige Verarbeitung von Daten in einem kleineren Shard.
  • ElastiCache: Verwalteter Memcache-Server, einfach, aber macht den Job perfekt.
  • Lambda: Cloud-Computing der nächsten Generation. Lambda führt einen hochgeladenen Code ereignisgesteuert aus, was eine neue Tür für das Entwerfen verteilter Anwendungen öffnet.
  • Route53: Leistungsstarke DNS-Lösung mit Unterstützung von gewichteter Antwort, geolokalisierungsbasierter Antwort zusätzlich zu anderen industriellen Standard-DNS-Lösungen.
  • SNS: Benutzerfreundlicher Benachrichtigungsdienst, der nach dem Abonnenten-/Publisher-Muster entwickelt wurde.
  • Viel mehr.

Ich denke, es ist eine gute Angewohnheit, AWS zu überprüfen, wenn Sie eine neue Komponente in Ihre Anwendung einführen. Meistens wird AWS Sie überraschen, da es eine SaaS-Alternative bereithält.

Um den Zugriff auf RESTful-Schnittstellen zu erleichtern, hat Amazon außerdem SDKs in fast allen gängigen Programmiersprachen bereitgestellt. Sie sollten kein Problem haben, Ihr bevorzugtes SDK zu finden.

Zusammenfassung

In diesem Artikel haben wir einige der am häufigsten verwendeten Dienste von AWS behandelt. Sicherlich gibt es einige Bereiche, in denen AWS Ihrem Unternehmen helfen wird. Sie könnten sich dafür entscheiden, eine vorhandene Servicekomponente zu ihrem AWS-Äquivalent zu migrieren, z. B. eine MySQL-Datenbank zu RDS. Sie fragen sich vielleicht, ob es AWS-Services für diese Komponente meiner Software gibt? Holen Sie sich also noch heute ein AWS-Konto und steigern Sie Ihre Produktivität in wenigen Minuten.


Weiterführende Literatur im Toptal Engineering Blog:

  • Entwicklung für die Cloud in der Cloud: BigData-Entwicklung mit Docker in AWS
  • Machen Sie Ihre Hausaufgaben: 7 Tipps für die Prüfung zum AWS Certified Solutions Architect
  • SSH-Protokollierung und Sitzungsverwaltung mit AWS SSM
  • Arbeiten mit TypeScript und Jest Support: Ein AWS SAM-Tutorial