Früher war die Rechenleistung die Aufgabe der Hardware-Infrastruktur vor Ort. Jetzt – wenn sich Ihre Softwarelösung in der Cloud befindet – wird sie zur Aufgabe des Webdienstes Elastic Compute Cloud (EC2).
EC2 bringt anpassbare Rechenkapazität in die Cloud. Benutzer können virtuelle Computer mit Instanzen mieten, auf denen sie ihre Anwendungen ausführen. Die Instanzen können verschiedene Konfigurationen, unterschiedliche Betriebssysteme, Rechenleistung und Speicherkapazität haben.
EC2 ist eine Kernkomponente von Amazon Web Services (AWS). Als solche wird sie für fast alle möglichen Projektimplementierungen in der Cloud verwendet. Natürlich nur, wenn Sie keine serverlose Architektur anstreben. In diesem Fall ist EC2 vom Tisch.
Die wichtigsten Komponenten von EC2
Jede AWS EC2, die Sie für Ihr Projekt verwenden möchten, muss aus anderen AWS-Komponenten bestehen. Diese legen die genauen Parameter Ihrer Konfiguration fest.
#1. Instanzen
Eine EC2-Instanz ist im Grunde eine Cloud-Interpretation einer virtuellen Maschine. Die Instanz können Sie in einer Vielzahl von Konfigurationen vorbereiten und starten. Außerdem müssen Sie ein bestimmtes Betriebssystem für die Instanz festlegen und bestimmen, wie stark die Instanz sein soll (Menge an CPU, RAM usw.).
Schließlich können Sie die Menge an Speicherkapazität angeben, die dauerhaft mit der EC2-Instanz verbunden sein soll.
#2. Amazon Machine Images (AMIs)
Ein AMI ist eine vorkonfigurierte Vorlage, die alle notwendigen Informationen für einen erfolgreichen Start der Instanz enthält. Hier geben Sie an, auf welchem Betriebssystem Sie die Anwendungen ausführen möchten, wie der Anwendungsserver aussehen soll und welche Anwendungen genau installiert werden sollen.
#3. Elastic Block Store (EBS)
Hierbei handelt es sich um einen Speicherdienst, der Ihnen persistente Speichervolumes zur Verwendung mit der EC2-Instanz zur Verfügung stellt. Hier werden alle Anwendungsdaten und auch die Kundendaten gespeichert, sobald die Anwendungen auf den EC2-Instanzen genutzt werden.
#4. Sicherheitsgruppen
Für jede EC2-Instanz benötigen Sie einen kontrollierten Sicherheitszugang. Das gilt sowohl für die Kommunikation von der Außenwelt in die EC2-Instanz (ausgehender Verkehr) als auch zwischen den AWS-Diensten innerhalb Ihrer Cloud-Infrastruktur (eingehender Verkehr).
#5. Schlüsselpaare
Um die Sicherheit zu erhöhen, müssen Sie öffentliche und private Schlüsselpaare generieren, die Sie für die sichere Verbindung zu EC2-Instanzen verwenden.
#6. Elastische IP-Adressen
Damit Sie von außerhalb des Internets auf Ihre neue EC2-Instanz zugreifen oder sogar innerhalb Ihrer Infrastruktur in der Cloud auf sie verweisen können, müssen Sie EC2-Instanzen eine statische IP-Adresse zuweisen. Von da an ist die virtuelle Maschine mit einer EC2-Instanz erreichbar.
#7. Platzierungsgruppen
Mit Hilfe dieser Gruppen können Sie logische Gruppierungen von Instanzen erstellen. Diese sind darauf ausgelegt, Netzwerkverbindungen mit niedriger Latenz und hoher Bandbreite bereitzustellen. Dies dient sowohl aus organisatorischen als auch aus Leistungsgründen.
#8. Automatische Skalierung
Hierbei handelt es sich um einen unter den verschiedenen Cloud-Anbietern einzigartigen Service, der die Anzahl der EC2-Instanzen in einer Gruppe automatisch an die Anforderungen Ihrer Arbeitslast anpasst. Das heißt, sobald Sie die automatische Skalierung aktivieren, können Ihre EC2-Instanzen vervielfacht oder hardwaremäßig hochskaliert werden, um den gestiegenen Bedarf zu decken.
Alternativ können Sie die Anzahl der Instanzen verringern oder herunterskalieren, wenn die Nachfrage deutlich geringer als gewöhnlich ist. Der Hauptgrund dafür ist, dass Sie während der Spitzenlast nicht zu langsam sind. Aber auch, um Geld zu sparen, wenn es nicht viel zu tun gibt.
#9. Lastverteiler
Einfach ausgedrückt, handelt es sich hierbei um einen Dienst, der den eingehenden Datenverkehr auf mehrere EC2-Instanzen verteilt und damit die Verfügbarkeit und Skalierbarkeit verbessert.
#10. Virtuelle Private Cloud (VPC)
VPC ist ein logisch getrenntes virtuelles Netzwerk, das eine sichere und isolierte Umgebung für EC2-Instanzen bietet. Sie können verschiedene EC2-Instanzen in der gleichen oder in verschiedenen VPCs organisieren und dann Regeln für den ein- und ausgehenden Datenverkehr zwischen den VPCs und damit auch zwischen den verschiedenen EC2-Instanzen in Ihrer Cloud-Infrastruktur festlegen.
Normalerweise möchten Sie einige EC2-Instanzen privat halten und nur für Ihren Anwendungscode zugänglich machen. Gleichzeitig möchten Sie andere EC2-Instanzen über das Internet zugänglich machen. VPC ist eine perfekte Lösung.
Hauptmerkmale von EC2
EC2-Instanzen bieten skalierbare Rechenkapazität in der AWS-Cloud. Unternehmen können schnell virtuelle Maschinen mit der benötigten Rechenleistung und Speicherkapazität einrichten, ohne in physische Hardware investieren zu müssen. Dies ist der eigentliche Vorteil der Cloud-Infrastruktur, und EC2 spielt dabei eine wichtige Rolle.
Der übliche Zweck von EC2-Instanzen besteht darin, verschiedene Anwendungen oder Websites in der Cloud zu hosten. Sie können sie nutzen, um Ihre Arbeitslasten zu befriedigen, egal ob es sich um Batch-, Echtzeitverarbeitungsanforderungen, Web- oder mobile Anwendungen handelt.
Die Art der Arbeit, für die Sie EC2 verwenden, ist praktisch endlos. Vielleicht brauchen Sie viel Leistung für Datenverarbeitung, maschinelles Lernen oder Spiele. Vielleicht benötigen Sie zusätzliche Entwicklungs- oder Testumgebungen für Ihre Infrastruktur. Dann können Sie definitiv alle Vorteile von EC2-Instanzen nutzen.
Das Beste daran ist, dass Sie sie jederzeit zerstören und neu erstellen können. In diesem Fall sparen Sie Geld für Ihre Entwicklungs- und Testinfrastruktur für die Zeiten, in denen Sie sie nicht benötigen. Die Beendigung und Wiederherstellung auf Abruf hat natürlich noch viele andere Anwendungen für das Unternehmen.
Grundlagen des Cloud Computing
Da wir bereits über EC2 gesprochen haben, könnte ein kleiner Schritt zurück vielleicht hilfreich sein, um ein wenig zu erklären, was genau Cloud Computing ist.
Sie können es als ein Modell für die Bereitstellung von Computing-Ressourcen über das Internet betrachten, das auf Abruf und als Service aufgebaut ist. Es handelt sich dabei um einen Mechanismus, der den Zugriff auf Rechenleistung mit all ihrer Infrastruktur und ihren Anwendungen ermöglicht, ohne dass Sie in physische Hardware oder Infrastruktur investieren müssen. Cloud Computing basiert auf einer Reihe von Grundprinzipien, darunter:
- Benutzer haben jederzeit einen On-Demand-Self-Service zur Verfügung. Server und Speicherplatz sind verfügbar, ohne dass ein langwieriger Beschaffungsprozess erforderlich ist.
- tabletsCloud-Ressourcen können von überall und von jedem beliebigen Gerät aus genutzt werden (z.B. Laptops, Desktops, Tablets, Mobiltelefone).
- Computing-Ressourcen oder die gesamte Infrastruktur können gemeinsam genutzt und dynamisch zugewiesen werden, um veränderten Umgebungen und Anforderungen gerecht zu werden.
- Sie können jede Ressource je nach aktuellem Bedarf schnell vergrößern oder verkleinern.
- Cloud Computing in Echtzeit bedeutet im Wesentlichen ein Pay-as-you-go-Preismodell, bei dem die Benutzer nur für die Ressourcen zahlen, die sie tatsächlich nutzen. Auch die verbrauchte Nutzung können Sie in Echtzeit verfolgen.
Service-Modelle des Cloud Computing
Beim Cloud Computing gibt es drei Hauptdienstmodelle:
- Infrastructure as a Service (IaaS), bei dem Sie virtualisierte Computing-Ressourcen wie Server, Speicher und Netzwerke als Service erhalten. Die Schaffung einer praktikablen Lösung darüber hinaus liegt allein bei Ihnen.
- Platform as a Service (PaaS) geht noch einen Schritt weiter. Sie erhalten eine ganze Plattform für die Entwicklung, Bereitstellung und Verwaltung von Anwendungen als Service. Sie brauchen sich um die Details der Infrastruktur nicht zu kümmern.
- Software as a Service (SaaS) ist die höchste Stufe, bei der Sie komplette Softwareanwendungen wie E-Mail, CRM oder Produktivitätstools als Service erhalten. In diesem Fall nutzen Sie einfach das, was bereits für Sie verfügbar ist.
Bereitstellungsmodelle von Cloud Computing
Cloud Computing unterscheidet sich auch durch die Art und Weise, wie Sie die Ressourcen bereitstellen und darauf zugreifen:
- Eine öffentliche Cloud bedeutet, dass die Cloud-Ressourcen von einem Drittanbieter wie AWS, Microsoft Azure oder Google Cloud bereitgestellt werden und über das Internet zugänglich sind.
- Eine private Cloud liegt vor, wenn ein Unternehmen sein eigenes Rechenzentrum aufbaut und die Infrastruktur nur innerhalb des Netzwerks des Unternehmens zugänglich ist.
- Eine hybride Cloud ist eine Kombination aus öffentlichen und privaten Cloud-Ressourcen, die integriert werden, um eine gemeinsame, miteinander verbundene Infrastruktur bereitzustellen.
- Multi-Cloud ist eine Strategie, bei der ein Unternehmen mehrere Cloud-Anbieter nutzt, um bestimmte Geschäftsanforderungen zu erfüllen. So können Sie beispielsweise Amazon Cloud und SAP Datawarehouse Cloud kombinieren, um eine Lösung aufzubauen, die aus regulierten Transaktionsdaten in SAP und einem in AWS aufgebauten Data Lake besteht.
Die Elastizität von EC2
Elastizität ist eine Schlüsseleigenschaft des Cloud Computing. Sie bezieht sich auf die Fähigkeit der Cloud-Infrastruktur, Rechenressourcen dynamisch zuzuweisen und freizugeben, um auf Ihre sich ständig ändernden Anforderungen zu reagieren. Dank der Elastizität können Sie die Infrastruktur je nach Bedarf vergrößern oder verkleinern. Und das alles, ohne in physische Hardware oder Infrastruktur investieren zu müssen.
Hand in Hand damit geht eine weitere Eigenschaft der Cloud, nämlich die Skalierbarkeit. Es handelt sich dabei um die Fähigkeit eines Systems, zunehmende Lasten oder Datenverkehr zu bewältigen, ohne dass die Leistung darunter leidet.
Zum Beispiel, wenn Ihre Homepage aufgrund der Veröffentlichung eines neuen, sehnlichst erwarteten Produkts plötzlich einen ungewöhnlich hohen Datenverkehr erfährt. Dies ist der Zeitpunkt, an dem die Skalierbarkeit einspringt und alle Ihre Ressourcen und die Leistung erhöht, um diese hohe Belastung zu bewältigen.
Skalierbarkeit wird durch den Einsatz elastischer Ressourcen wie virtuelle Maschinen, Speicher und Netzwerke erreicht, die schnell und einfach nach oben oder unten skaliert werden können.
Autoscaling ist dann eine zusätzliche Funktion, die die Skalierungsfähigkeit nutzt und sie auf der Grundlage vordefinierter Belastungserwartungen automatisiert. Sie passt die Anzahl der zu verwendenden Computerressourcen automatisch an den Bedarf an. Das bedeutet auch, dass Sie die Ressourcen nicht überwachen und manuell anpassen müssen. Die Skalierung der Ressourcen nach oben oder unten kann auf der Grundlage verschiedener Metriken erfolgen, z. B. CPU-Auslastung, Netzwerkverkehr oder Reaktionszeit der Anwendung.
Schließlich werden die Ressourcen dynamisch und in Echtzeit zugewiesen. Dies gibt Ihnen die Möglichkeit, die Nutzung Ihrer Infrastruktur zu optimieren. Weisen Sie Ihre Ressourcen nur dann zu, wenn Sie sie brauchen, und geben Sie sie frei, wenn Sie sie nicht mehr benötigen.
Die dynamische Ressourcenzuweisung ist ein wesentliches Merkmal des Cloud Computing, denn sie ermöglicht eine hohe Auslastung und Effizienz bei gleichzeitiger Minimierung der Kosten.
Vorteile von EC2
Einige der wichtigsten Vorteile von EC2 sind jetzt schon offensichtlich. Aber um sie in einen expliziten Kontext zu stellen, sind die folgenden die wichtigsten:
Flexibilität
Mit der EC2 können Sie die Rechenressourcen ganz einfach nach oben oder unten skalieren, um der aktuellen Auslastung gerecht zu werden. Starten oder zerstören Sie Instanzen, wenn Sie sie gerade benötigen. Pausieren Sie Instanzen und starten Sie sie neu, wann immer es Ihnen am besten passt. Sie können sicher sein, dass Sie immer ein Backup haben, falls etwas schief geht.
Kosteneffizienz
Eine direkte Folge der Flexibilität ist die Möglichkeit, bei der Bereitstellung der Infrastruktur Geld zu sparen. Wenn Sie die richtigen Einstellungen vornehmen, werden Ihre EC2-Instanzen zum richtigen Zeitpunkt gestartet und beendet. Dadurch vermeiden Sie die Kosten, die mit ungerechtfertigten Kosten für die Bereitstellung von Ressourcen verbunden sind.
Hohe Verfügbarkeit
Mit EC2 erhalten Sie eine hochverfügbare Infrastruktur, die darauf abzielt, Ausfallzeiten zu minimieren und sicherzustellen, dass Anwendungen und Dienste immer zugänglich sind.
Verlässlichkeit
EC2 bietet eine zuverlässige Infrastruktur, deren Ziel es ist, praktisch ohne Unterbrechung verfügbar zu sein, und stellt sicher, dass Anwendungen und Dienste immer verfügbar und performant sind.
Zugänglichkeit
Sie können von überall aus zugreifen, über Desktops, Laptops, Tablets oder Smartphones. Ebenso haben Sie die volle Freiheit, den Zugang nach Ihren Wünschen einzuschränken.
Globale Erreichbarkeit
EC2 ist in mehreren Regionen weltweit verfügbar, so dass Sie die Anwendungen und Dienste näher an Ihren Kunden einsetzen und die lokalen Datenschutzbestimmungen einhalten können.
Agilität
Sie verfügen über eine wirklich agile Infrastruktur, die Ihnen die Möglichkeit gibt, schnell auf veränderte Marktbedingungen zu reagieren und schneller zu innovieren.
Datensicherheit
EC2 bietet Ihnen eine sichere Infrastruktur, die von vornherein darauf ausgelegt ist, Daten und Anwendungen vor unbefugtem Zugriff und Cyber-Bedrohungen zu schützen.
Konformität
EC2 ist mit einer Vielzahl von Industriestandards und Vorschriften konform, darunter HIPAA, PCI DSS und GDPR.
Zusammenarbeit
EC2 bietet eine kollaborative Umgebung, die es Teams ermöglicht, gemeinsam an Projekten zu arbeiten und Ressourcen und Daten gemeinsam zu nutzen.
Herausforderungen mit EC2
Sicherlich gibt es auch einige Herausforderungen, die Sie bei der Nutzung von EC2 beachten sollten.
#1. Verwaltung der Kosten
Das gesamte AWS-Kostenmodell ist im Wesentlichen darauf ausgerichtet, es so komplex wie möglich zu machen, und die EC2-Preisgestaltung ist da keine Ausnahme. Sie müssen Ihre Nutzung sorgfältig verwalten, um unerwartete Kosten zu vermeiden, und einige zuverlässige Tools zur Verfügung haben, um sie kontinuierlich zu überwachen. Sie können einige Tools zur Kostenoptimierung verwenden, z.B. AWS Cost Explorer oder AWS Trusted Advisor.
#2. Sicherheit
Auch wenn EC2 Ihnen eine sichere Infrastruktur zur Verfügung stellt, sind Sie dennoch für die Sicherheit Ihrer eigenen Anwendungen und Daten verantwortlich. Sie sollten Best Practices für die Sicherheit implementieren, z.B. die Verwendung sicherer Passwörter, die Verschlüsselung von Daten und die Implementierung von Zugriffskontrollen.
#3. Compliance
Bei EC2 müssen Sie sicherstellen, dass die Nutzung mit den Industriestandards und -vorschriften konform ist. Daher ist es wichtig, die AWS-Compliance-Dokumentation regelmäßig zu überprüfen und mit AWS-Compliance-Experten zusammenzuarbeiten, um sicherzustellen, dass Sie die von Ihren Kunden geforderten Compliance-Anforderungen erfüllen.
#4. Leistung
Die Leistung von EC2 kann durch verschiedene Faktoren beeinflusst werden, wie z.B. Netzwerklatenz, Festplatten-E/A oder CPU-Auslastung. Überwachen Sie die Leistung Ihrer Infrastruktur systematisch und verwenden Sie Tools zur Leistungsoptimierung, wie AWS CloudWatch und AWS X-Ray, um Leistungsprobleme zu erkennen und zu beheben.
#5. Verfügbarkeit
Es stimmt zwar, dass EC2 eine hochverfügbare Infrastruktur bietet, aber dennoch müssen Sie sicherstellen, dass die Anwendungen und Services, die Sie bereitstellen, auch für hohe Verfügbarkeit ausgelegt sind. Nutzen Sie dazu AWS-Services wie Elastic Load Balancing oder Auto Scaling, um sicherzustellen, dass die Anwendungen und Services immer verfügbar sind.
#6. Datenübertragungen
Achten Sie bei der Nutzung von EC2 auf die Kosten für die Datenübertragung, da für die Datenübertragung zwischen EC2-Instanzen und anderen AWS-Services zusätzliche Gebühren anfallen können. Es geht also nicht nur um den Austausch von Daten zwischen Ihrer Infrastruktur und dem Internet. Nutzen Sie Amazon S3 und Amazon CloudFront, um die Kosten für die Datenübertragung zu minimieren.
#7. Lock-in von Anbietern
Das Bewusstsein für das Potenzial von Vendor Lock-in bei der Nutzung von EC2 sollte auf Ihrer Prioritätenliste stehen. Entwerfen Sie die Anwendungen und Dienste so, dass sie zwischen verschiedenen Cloud-Anbietern übertragbar sind und verwenden Sie offene Standards und APIs, um Interoperabilität zu gewährleisten. Auf diese Weise wird Ihre Lösung Cloud-unabhängig und wird zu einer zusätzlichen Flexibilitätsebene, die immer noch einen erheblichen Marktvorteil darstellt.
EC2 und zukünftige Trends
Sind Sie neugierig auf zukünftige Trends und Innovationen, die die Zukunft von EC2 prägen werden? Hier sind sie.
Serverlos
Serverloses Computing ist immer noch ein neues Paradigma im Cloud Computing, auch wenn es bereits seit einigen Jahren von einigen der fortschrittlichsten Entwicklungsteams umgesetzt wird. Die Entwickler führen den Code aus, ohne Server oder Infrastruktur zu verwalten. AWS Lambda oder AWS Step function ist ein Beispiel für einen serverlosen Computing-Service, den Sie auf EC2 aufbauen können.
Maschinelles Lernen
EC2 ist eine perfekte Infrastruktur für die Ausführung von Machine Learning-Modellen, Vorhersagen und Arbeitslasten. Sie können buchstäblich in Minutenschnelle beeindruckend große Datenseen mit Modelldatenvorhersagen erstellen. Darüber hinaus bietet AWS eine Reihe gebrauchsfertiger Services für maschinelles Lernen, wie Amazon SageMaker und Amazon Rekognition, die auf EC2 aufbauen.
Edge-Computing
Edge Computing ist ein neues Paradigma im Cloud Computing. Dabei geht es um die Datenverarbeitung näher an der Quelle und nicht in einem zentralisierten Rechenzentrum. Das bedeutet, dass Sie alle umfangreichen Datenbelastungen in dem Bereich durchführen, in dem Sie die Daten erzeugen. Anschließend übertragen Sie die Daten mit Hilfe verschiedener Caching-Dienste in einen zentralen Datenspeicher, was die Verarbeitung der Operationen des Benutzers nicht mehr wirklich beeinträchtigt. AWS bietet eine Reihe von Edge-Computing-Services wie AWS Greengrass und AWS IoT, die Sie zusätzlich zu EC2 einsetzen können.
Containerisierung
Die Containerisierung ist eine Strategie, bei der Anwendungen und Services in Container verpackt werden, die einfach bereitgestellt und verwaltet werden können. Sie erhalten eine Kompatibilitätsgarantie, wenn der Transport von Services zwischen Instanzen oder Infrastrukturen erforderlich ist. AWS bietet eine Reihe von Containerisierungsservices, wie Amazon ECS und Amazon EKS, die auf EC2 aufbauen.
Quanten-Computing
Quantencomputing ist wiederum ein recht neues Paradigma, bei dem quantenmechanische Phänomene wie Überlagerung und Verschränkung zur Durchführung von Berechnungen genutzt werden. AWS bietet eine Reihe von Quantencomputing-Services wie Amazon Braket an, die Sie zusätzlich zu EC2 nutzen können.
Letzte Worte
EC2 ist ein grundlegender Bestandteil jeder ernstzunehmenden Cloud-Infrastruktur, und das wird sich auch in absehbarer Zeit nicht ändern. In der Regel werden Sie ihn wahrscheinlich unter den Top 3 der Dienste mit der höchsten Kostenentwicklung finden, aber das alles hat seinen Grund.
EC2 ist das Rückgrat der Cloud-Infrastruktur, das alle anderen Dienste auf seiner Oberfläche einfängt. Das Verständnis von EC2 ist daher entscheidend, wenn Sie in der Welt des Cloud Computing erfolgreich sein wollen.
Sehen Sie sich als nächstes die Best Practices für die Sicherheit von AWS EC2 an.