Funktionsweise und Architektur der Amazon Cloud
Transcription
Funktionsweise und Architektur der Amazon Cloud
Funktionsweise und Architektur der Amazon Cloud Sven Ramuschkat Wer ist Amazon Web Services? Amazon ist der weltgrößte Online Händler Amazon betreibt auf seiner Plattform auch B2B, so dass andere Unternehmen Amazons Online Plattform bis hin zu Distributionsressourcen nutzen können. Seit 2006 existiert Amazon AWS als 100% Tochtergesellschaft der Amazon Inc. Entstanden ist die Idee aus den umfangreichen Erfahrungen mit Amazon.com und dem eigenen Bedarf. Wer ist tecRacer? tecRacer, mit Sitz in Hannover, Deutschland, ist 2006 als Spin-Off der Herrlich & Ramuschkat GmbH entstanden und beschäftigt 30 Mitarbeiter. tecRacer verfügt über langjährige Erfahrungen im Bereich von webbasierten Softwareentwicklungsprojekten auf Basis agiler Methoden für Unternehmen wie Volkswagen, Deutsche Telekom, B.Braun, Grundfos und Faurecia. Als autorisierter Amazon Web Services Solution Provider bietet tecRacer seit 2011 seinen Kunden Consulting, Training, Development und Managed Hosting für Projekte in der Amazon Cloud an. Was ist Cloud Computing Cloud Computing ist eine Dienstleistung, die Ihnen Zugriff auf von Experten gemanagte Technologieressourcen gibt. Der Zugriff erfolgt über das Internet oder VPN, es gibt keine Investitionskosten, sondern Ressourcen wie z.B. virtuelle Server, Datenbanken oder Speicherdienste werden nur nach in Anspruchnahme abgerechnet. Cloud Computing Infrastructure as a Servce (Iaas) Bedarfsorientiere Bereitstellung von Hardware- oder hardware-nahen ITRessourcen nach dem Konzept von Everything as a Service (EaaS). Diese ITRessourcen sind oft durch Hardware-Virtualisierung von der physikalischen Hardware auf der sie betrieben werden entkoppelt. • Amazon AWS EC2, VPC, S3, etc. Platform as a Service (PaaS) Unter PaaS versteht man den Ansatz, eine integrierte Laufzeit- (und evtl. auch Entwicklungs-) -umgebung als einen Dienst zur Verfügung zu stellen, für den der Nutzer on demand zahlen muss. • Amazon AWS ElasticBeanstalk (TomCat, PHP, .NET, Phyton) • Zahlreiche Drittanbieter wie z.B. Scalarium auf Basis von Amazon AWS Wie kann mein Unternehmen von der Amazon Cloud profitieren? Cloud Computing Vorteile Elastizität Die Serverleistung passt sich perfekt den gerade aktuellen Bedürfnissen an. Sowohl was Rechenleistung, Storage und Bandbreite betrifft. Elastizität 6.00 Uhr Elastizität 10.00 Uhr 25% Einsparung Web Server Elastizität 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Uhrzeit Beispiel einer Wallstreet-Anwendung 3000 CPU’s for one firm’s risk management processes Number of EC2 Instances 3000 - 300 CPU‘s on weekends 300 - Wednesday 4/22/2009 Thursday 4/23/2009 Friday 4/24/2009 Saturday 4/25/2009 Sunday 4/26/2009 Monday 4/27/2009 Tuesday 4/28/2009 Amazon S3 Wachstum Wie groß ist Amazon AWS? This was calculated by Huan Liu in his Blog , not Amazon AWS official! Amazon actually has 1.982.384 IP4 Adressen in their Pool. Data center # of server racks # of blade servers US East (Virginia) 5,030 321,920 US West (Oregon) 41 2,624 US West (N. California) 630 40,320 EU West (Ireland) 814 52,096 AP Northeast (Japan) 314 20,096 AP Southeast (Singapore) 246 15,744 SA East (Sao Paulo) 25 1,600 Total 7,100 454,400 Amazon AWS Building Blocks AWS Plattform Überblick AWS Globale Infrastruktur Amazon AWS Regionen Zur Zeit existieren 8 Amazon Rechenzentren (AWS Regions) in unterschiedlichen Regionen der Welt. Bei jeder Amazon AWS Ressource kann ausschließlich durch den Kunden entschieden werden, wo diese verwendet bzw. gespeichert wird. Deutsche Kunden nutzen in der Regel das Rechenzentrum in Irland, das europäischem Recht unterliegt. Amazon AWS Availability Zones Jedes Amazon Rechenzentrum (AWS Region) besteht aus mindestens einer Availability Zone Availability Zones sind eigenständige Unter-Standorte die so entwickelt wurden, dass sie von Fehlern in anderen Availability Zones isoliert sind (unabhängige Strom- und Datenversorgung). Bestimmte AWS Ressourcen wie z.B. Datenbank-Dienste (RDS) oder Speicherdienste (S3) replizieren Ihre Daten automatisch innerhalb der AWS Region auf die unterschiedlichen Availability Zones. Amazon AWS verfügt über entsprechende Zertifizierungen wie ISO27001 und hat ein umfassendes Sicherheitskonzept für den Betrieb seiner Rechenzentrum implementiert. Mehr Infos dazu finden Sie hier: http://aws.amazon.com/de/security/ www.yourApp.com Multi-AZ Szenario media.yourApp.com (Static data) Amazon Route 53 Hosted Zone Elastic Load Balancer mit Multi-AZ Amazon SES Email EC2 Web Server EC2 Web Server EC2 Web Server EC2 Web Server Auto Scaling Group SES ist ein sehr kostengünstiger SMTP-Service Availability Zone Assets Amazon S3 Bucket S3 ist stets Multi-AZ redundant Availability Zone MySQL RDS ist ein von Amazon gemanagter MultiAZ Cluster AWS weltweite Verteilung von Daten Mit Amazon CloudFront können Sie Ihre statischen/dynamischen Inhalte und Streaming-Inhalte über ein globales Netzwerk aus Edge-Standorten bereitstellen. Anfragen für Ihre Objekte werden automatisch an den nächsten Edge-Standort durchgeleitet, sodass die Bereitstellung der Inhalte mit der bestmöglichen Leistung erfolgt. AWS Network Services Amazon VPS Amazon VPS AWS Compute Services Amazon Elastic Compute Cloud (EC2) EC2 = Virtual Machine Amazon EC2: on-demand compute power Obtain and boot new server instances in minutes Quickly scale capacity up or down Servers from $0.02 (2 cents) per hour On Demand, Reserved, and Spot Pricing Key features: Support for Windows, Linux, FreeBSD, and OpenSolaris Supports all major web and application platforms Deploy across Availability Zones for reliability monitors status and usage Amazon EC2 Eine EC2 Compute Unit (ECU) bietet die entsprechende CPU-Kapazität eines 1,0- bis 1,2-GHzOpteron- oder -Xeon-Prozessors von 2007 Amazon EC2 Architektur Amazon Machine Image (AMI) Region Availability Zone EC2 Instance CloudWatch Ephemeral Storage Elastic Block Storage Security Group(s) Amazon S3 Auto Scaling Elastic IP Address Load Balancing EBS Snapshot EBS Snapshot Amazon EC2 Amazon EC2 Instanz Preise Viele Kunden nutzen das Konzept der Reserved Instances überhaupt nicht und verzichten damit auf große Kosteneinsparungen … Durch einen entsprechenden Rabattplan und einer Vorauszahlung lassen sich bei den EC2 Instanzen bis zu 70% an Kosten sparen! AWS Storage Services Amazon Elastic Block Store (EBS) EBS Volumes werden als Laufwerk jeweils einer EC2 Instanz zugewiesen. 1 GB bis 1 TB per Volume • EBS-Volumes sind gut geeignet für Boot-Volumes und Anwendungen mit einem moderaten I/O Bedarf. • Amazon EBS-Volumes schaffen im Durchschnitt ungefähr 100 IOPS. • Normale PC Festplatten mit 7.200 RPM schaffen ungefähr 75 – 100 IOPS • PC Festplatten mit 15.000 RPM liegen ungefähr bei 175 bis 210 IOS. Elastic Block Store (EBS) mit provisioned IOPS Ab sofort stellt Amazon AWS zusätzlich “Provisioned IOPS for EBS Volumes” zur Verfügung. Dies sind spezielle EBS-Volumes, bei denen man die IOPS-Anzahl die man benötigt, entsprechend definiert. Im Augenblick werden bis zu 1.000 IOPS (für 16K Blöcke) angeboten. Somit sind diese neuen High-Speed EBS-Volumes super geeignet für jegliche Form von Datenbanken … • 200 GB EBS Volume mit 1.000 IOPS kostet: • ($0.11 pro provisioned IOPS-Month * 1000 IOPS Provisioned ) + 200 GB * $0.138 = $137,60 im Monat. • ein vergleichbares normales EBS-Volume würde $25 bis $30 je nach Anzahl der Millionen I/Os im Monat kosten. • Somit lohnen sich diese neuen High-Speed EBS-Volumes wirklich nur für sehr performance kritische Anwendungen! EBS Snapshots werden auf S3 gespeichert Amazon Simple Storage Service (S3) Bei Amazon S3 handelt es sich um einen mehrfach redundanten Speicher für das Internet. Objekte werden auf mehreren Geräten an mehreren Standorten einer Amazon S3 Region redundant gespeichert. Um die Beständigkeit zu gewährleisten, speichert Amazon die Daten mittels S3 PUT- und COPY-Operationen synchron an mehreren Standorten, bevor SUCCESS gemeldet wird. Amazon Simple Storage Service (S3) Amazon Simple Storage Service (S3) Amazon Glacier für Langzeit-Archivierung • Pro Gigabyte gespeicherter Daten verlangt Amazon je nach AWS-Region zwischen 1 und 1,2 US-Cent im Monat • Die Daten werden wie bei S3 multiredundant gespeichert, Amazon spricht von einer Verfügbarkeit von 99.999999999% • Innerhalb von Glacier sind die Daten mit 256-AES verschlüsselt, wobei Amazon die Schlüssel selbst verwaltet • Der Upload von Daten erfolgt über ein eigenes API bzw. über Tools von Drittherstellen wie z.B. http://fastglacier.com/, wie bei Amazon AWS üblich, ist der Traffic für eingehende Daten kostenlos • Der Abruf der Daten ist allerdings nicht wie bei S3 sofort möglich, sondern es muss ein Request für den Download erfolgen, innerhalb von 3-4 Stunden wird dann ein Download-Link zu den Daten bereitgestellt. Der Download kostet, sofern er ein definiertes Limit überschreitet extra Geld. Somit reduziert sich das Einsatzszenario von Glacier auf Daten, die langfristig dauerhaft archiviert werden müssen und nur gelegentlich abgerufen werden müssen. Amazon Glacier für Langzeit-Archivierung AWS Database Services Amazon Relational Database Service (RDS) Amazon RDS = MySQL, Oracle 11g und SQLServer 2008R2 gemanagte Datenbanken Dieser Dienst stellt kosteneffiziente und individuell anpassbare Kapazitäten zur Verfügung und erledigt gleichzeitig zeitraubende Datenbank-Verwaltungsaufgaben, sodass Sie sich stärker auf Ihre Anwendungen und Ihr Unternehmen konzentrieren können. Multi-AZ-Bereitstellung – mit der Sie die Datenbankverfügbarkeit steigern und gleichzeitig Ihre jüngsten Datenbank-Updates gegen ungeplante Ausfälle schützen können. Wenn Sie Ihre DB-Instance zur Ausführung als Multi-AZ-Bereitstellung erstellen oder modifizieren, erzeugt und wartet Amazon RDS automatisch synchron eine "Standby"-Replika in einer anderen Availability Zone Amazon Relational Database Service (RDS) Viele Kunden nutzen das Konzept der Reserved Instances überhaupt nicht und verzichten damit auf große Kosteneinsparungen … Durch einen entsprechenden Rabattplan und einer Vorauszahlung lassen sich bei den RDS Instanzen bis zu 70% an Kosten sparen! AWS App Services AWS App Services AWS App Services AWS Deployment & Administration Wie wird Amazon AWS gesteuert und bedient? Sofern erlaubt, Windows RDP oder Linux SSH Zugang Zu Ihren Servern Browser basierte Administration Amazon AWS = Rechenzentrum mit einer API API Zugriff oder Command Line Gibt es in Amazon AWS ein User-Management mit Rechteverwaltung? Im Rahmen des (kostenlosen) Moduls Amazon AWS IAM können User, Gruppen und Rollen definiert werden. Einem User können dort eigene AccessKeys, Zertifikate und auch ein MultiFactor Authentication Device (Apps Mobile-Devices existieren) zugeordnet werden . Usern, Gruppen und Rollen können dann dediziert Zugriffsrechte auf entsprechende Amazon AWS Ressourcen gewährt werden. Können AWS Ressourcen Kostenstellen zugeordnet werden? • • Ab sofort bietet Amazon AWS über Tagging von Amazon AWS Ressourcen Kostenstellenstellen Support an. Über Tagging lann man den AWS Ressourcen beliebige Tags vergeben, also Kostenstelle, Projekt, etc. … es ist dabei somit notwendig, ein eigenes sinnvolles Konzept für das Tagging zu haben. Anschließend muss in den Stammdaten des Amazon AWS Accounts noch der Cost Allocation Report mit den entsprechenden Tags aktiviert werden. Platform as a Service (PaaS) mit ElasticBeanstalk • Einfaches Deployment und Managen von Applikationen in AWS • Du: • Erstellen und Uploaden der Anwendung (Jar, Zip, Git) • Elastic Beanstalk: • Capacity provisioning (EC2) • App Deployment • Load balancing (ELB) • Auto-scaling (Auto Scaling) • Application health monitoring (CloudWatch) Platform as a Service (PaaS) mit ElasticBeanstalk Mit Elastic Beanstalk erhalten Entwickler volle Kontrolle über die AWS-Ressourcen hinter Ihren Anwendungen. Somit können zahlreiche Funktionen ausgeführt werden, indem einfach die Standardkonfiguration der Elastic Beanstalk Management Console geändert wird. So z. B.: Auswahl des passenden Amazon EC2-Instance-Typs, der zu den Anforderungen von CPU und Speicher der jeweiligen Anwendung passt Auswahl aus mehreren verfügbaren Datenbanken und Speicheroptionen wie Amazon RDS Erhöhung der Anwendungszuverlässigkeit durch den Betrieb in mehr als einer Availability Zone Anpassung der Anwendungsserver-Einstellungen (z. B. JVM-Einstellungen) und Übermitteln der Umgebungsvariablen Anpassung der Auto Scaling-Einstellungen zur Steuerung der Metriken und Schwellenwerte, die verwendet werden, um festzulegen, wann Instances aus einer Umgebung hinzugefügt oder entfernt werden sollen AWS Elastic Beanstalk - Environments PHP / Phyton .NET • • • • • AWS SDK for .NET Visual Studio Toolkit Microsoft Web Deploy Upload ZIP Microsoft Windows + IIS • • • • • AWS SDK for PHP Existing dev tools Git-based deployment GIT PUSH Linux + Apache Java • • • • AWS SDK for Java Eclipse Toolkit Upload WAR file Linux + Tomcat + Apache Fragen … http://www.aws-blog.de http://www.tecracer.de Ihr Ansprechpartner: Herr Sven Ramuschkat Haben Sie Fragen? Gerne stehe ich Ihnen unter +49 (0) 511-59095-942 telefonisch zur Verfügung, oder senden Sie mir eine Email an aws@tecracer.de