Java >> Java Tutorial >  >> Java

7 AWS-Services, die jeder Entwickler kennen sollte

In diesem Beitrag werde ich die 7 AWS-Services beschreiben, die ein Entwickler kennen sollte. Als Entwickler ist es wichtig zu verstehen, wann und wie diese Dienste verwendet werden.

Obwohl die Umstellung der Infrastruktur auf die Cloud-Bewegung im letzten Jahrzehnt begann, hat sie in den letzten 5-6 Jahren an Geschwindigkeit gewonnen. Wie immer war Amazon an dieser Front führend. Jetzt nutzen die meisten Unternehmen Cloud-Dienste, ob AWS, Google oder Microsoft Azure, für die Cloud-Infrastruktur.

Amazon Web Services bieten eine Reihe von Diensten an, aber wir werden uns nur die 7 AWS-Dienste ansehen. Diese Dienste helfen Benutzern, ihre Anwendungen reibungslos zu verwalten. Wenn Sie eine Anwendung erstellen und eine alte On-Premise-Infrastruktur verwenden, sollten Sie besser in die Cloud wechseln. Es stellt sich das Dilemma, welche Dienste zu verwenden sind, welcher Cloud-Dienst zu wählen ist.

Amazon ist persönlich die beste Lösung. Es bietet auch Warnungen für das Preismanagement. Mit AWS sind Millionen von Funktionen verfügbar.

7 AWS-Services, die Sie kennen sollten

  • Elastischer Behälterservice
  • AWS Lambda
  • Einfacher Cloud-Speicher (S3)
  • DynamoDB
  • Route53
  • Elastic Load Balancer (ELB)
  • Kinese

Elastic Container Service (ECS)

ECS ist ein Container-Orchestrierungsdienst. Was bedeutet Container-Orchestrierung?

  • Im Grunde erstellen Sie Ihre Anwendung.
  • Stellen Sie diese Anwendung in einem Docker-Container bereit.
  • Übertragen Sie das Docker-Image per Push an ECR (Elastic Container Repository).
  • Erstellen Sie Ihren Dienst für elastische Container, während Sie das Docker-Image von ECR verwenden.

ECS leistet gute Arbeit bei der Auswahl der zu verwendenden EC2-Instanz, der Identifizierung eines zu verwendenden Lastenausgleichs und der Anzahl der für Ihren Dienst auszuführenden Instanzen.

ECS lässt sich problemlos in andere Cloud-Dienste integrieren, die Amazon anbietet. Zu diesen Diensten gehören Amazon Route53, Secrets Manager, Identity and Access Management und Cloudwatch.

Während Sie Ihren Service auf ECS bereitstellen, können Sie einen EC2-Container oder einen AWS Fargate-Container auswählen. AWS Fargate ist eine serverlose Rechen-Engine, die sowohl mit Elastic Container Service als auch mit Elastic Kubernetes Service (EKS) funktioniert.

EC2 ist ein Elastic Cloud Computing-Dienst, der eine Serverinstanz anbietet. Sie können auswählen, was Sie auf Ihrer Serverinstanz installieren möchten.

Lambda

Wenn Sie das Wort „Serverless“ gehört haben, ist es AWS Lambda, das es populär gemacht hat. Sie können Ihren Code schreiben, ohne Server bereitzustellen oder zu verwalten. Das Verkaufsargument von Lambda ist, dass Sie sich keine Gedanken über die Backend-Infrastruktur machen müssen. Lambda kümmert sich darum, Sie zahlen nur für die Rechenzeit, die Sie nutzen. Das macht das Schreiben von effizientem Code noch wichtiger.

Die Schnelligkeit, mit der Lambda Ihren Code ausführt, macht Lambda zu einem der nützlichsten Dienste. Lambda ist definitiv am nützlichsten, wenn Sie sich wiederholende Aufgaben automatisieren möchten.

Das Ausführen einer gesamten Anwendung auf Lambda ist möglicherweise nicht die beste Idee. Wenn es sich um eine statische Website handelt, können Sie sicherlich Lambda verwenden. Da es sich jedoch um eine skalierbare und dynamische Anwendung handelt, sind Sie mit einer EC2-Instanz besser dran als mit Lambda.

Eine Heuristik, die Sie berücksichtigen sollten, um zu entscheiden, wann Lambda verwendet werden soll – Wenn Sie einen Code haben, der sich nicht ändert, aber auch sich wiederholende Aufgaben ohne großen Überwachungsaufwand ausführt, dann verwenden Sie Lambda.

S3

S3 ist ein einfacher Cloud-Speicher. Unabhängig davon, welche Art von Anwendung Sie erstellen, müssen Sie irgendwo statische Dateien speichern. AWS bietet einen einfachen und effektiven Service namens S3.

Um S3 zu verstehen, muss man eine Hash-Tabelle verstehen. Wenn Sie eine Datei auf S3 speichern, generiert der Dienst normalerweise eine zufällige Zeichenfolge als Schlüssel zur Identifizierung dieser Datei. Die Datei sind die Daten im Blob-Format.

S3 richtet sich an Anwendungsersteller für einzelne Benutzer. Die Vorteile von S3 sind Skalierbarkeit, Hochverfügbarkeit, Leistung und Sicherheit. S3 kann auch für Redundanz verwendet werden. Denken Sie daran, dass Sie S3 nicht zum Hosten einer statischen Website verwenden können, insbesondere wenn Sie sie mit HTTPS verwenden möchten.

DynamoDB

DyanmoDB ist ein No-SQL-Datenbankdienst. Die Vorteile von DynamoDB gegenüber regulärer DB sind:

  • Hochleistung auch im großen Maßstab
  • eine einfache API, die einen einfachen Schlüsselwertzugriff ermöglicht

Dynamo DB ist eine partitionierte B-Tree-Datenstruktur. Die Leistung in DynamoDB bleibt unabhängig von den Daten, die Sie darin einfügen, konstant. Das Schlüssel-Wert-Paar erleichtert den Zugriff auf Dyanmo DB.

Sie können aggregierte oder sortierte Daten aus einer regulären relationalen Datenbank abrufen. Aber mit DynamoDB muss Ihre Anwendung alles alleine erledigen. Sobald die Anwendung die Daten von DynamoDB abruft, kann sie einzelne Daten oder einen zusammenhängenden Datenbereich abrufen. Dies ist der entscheidende Punkt bei der Entscheidung, ob Sie DynamoDB verwenden möchten oder nicht.

Route53

Route53 ist, wie der Name schon sagt, ein DNS-Dienst, der einen Domänennamen in eine IP-Adresse übersetzt. Wenn eine Anfrage von einer Anwendung an die AWS-Infrastruktur kommt, übersetzt Route53 diese Anfrage entweder an Load Balancer oder eine EC2-Instance oder einen S3-Bucket.

Route53 hat vielleicht nicht viele Vorteile gegenüber anderen Infrastrukturen, aber als Entwickler ist es wichtig, über Route53 Bescheid zu wissen. Nachdem Sie Ihre Anwendung in AWS bereitgestellt haben, müssen Sie sicherstellen, dass Benutzer darauf zugreifen können. Aus Netzwerksicht ist es wichtig, Route53 zu verstehen.

Route53 lässt sich gut in ELB (Elastic Load Balancer) integrieren.

ELB

ELB ist ein Elastic Load Balancer-Dienst. Es bietet einen Load Balancer für die Anwendung und für das Netzwerk. Wir können also Application Load Balancer (ALB) oder Network Load Balancer (NLB) sagen.

Application Load Balancer leitet grundsätzlich den Datenverkehr aus dem Internet zu Ihrer Anwendung und umgekehrt. ALBs bieten verschiedene Funktionen wie Routing-Regeln, Sticky Sessions, Authentifizierungen.

Netzwerk-Load-Balancer leiten die Netzwerkpakete weiter. NLB ist ein Netzwerk-Router und kein HTTP-Request-Router.

Sowohl NLBs als auch ALBs unterstützen TLS/HTTPS und lassen sich in AWS Certificate Manager integrieren. NLBs und ALBs validieren keine Zertifikate, aber da diese Load Balancer in einer VPC ausgeführt werden, gibt es einen Schutz vor Spoofing und Man-in-the-Middle-Angriffen.

Ein Nachteil von ALBs besteht darin, dass jeder Anfrage einige Millisekunden hinzugefügt werden, was die Latenz im Prozess erhöht. AWS übernimmt die Skalierung von ALB automatisch basierend auf der Nachfrage nach Ihrem Service.

Kinese

Kinesis ist ein Streaming-Dienst. Es sammelt, verarbeitet und analysiert im Wesentlichen Echtzeitdaten. Sobald die Daten im Streaming-Dienst ankommen, können Sie ein Ereignis erstellen, um die Daten zu verarbeiten. Kinesis Steam ist eine äußerst dauerhafte verknüpfte Liste.

Sie können mehrere Anwendungen haben, die Daten von Kinesis verwenden. Da Datenstreaming immer beliebter wird, bietet Kinesis viel Flexibilität.

Schlussfolgerung

Es gibt viele andere AWS-Dienste wie SQS, Cloud Formation, Cognito, API Gateway, Step Functions usw. Hier habe ich 7 AWS-Dienste beschrieben, die Sie am häufigsten verwenden werden. Außerdem möchte ich Daniel Vassallo und seinem aufschlussreichen Buch The Good Parts of AWS danken.

Wenn Ihnen dieser Beitrag gefallen hat, abonnieren Sie bitte meinen Blog hier.


Java-Tag