Grundlagen AWS
Was ist IaaS?
Ersatz für Rechenzentren Rechensysteme gekapselt P: Belastungspitzen werden abgefangen (Skalierbarkeit) N: Anwendungen laufen auf "fremden Maschinen"
Was ist PaaS?
Kein direkten Zugriff mehr auf Instanzen Betriebssystem gekapselt
Was ist SaaS?
Bereistellung einer kompletten Applikation Programme gekapselt
Cloudarten
- Public Cloud
- Private Cloud
- Hybrid Cloud
- Virtual Private Cloud (private Cloud innerhalb einer public Cloud) (VPC)
- Multi Cloud (Weiterentwicklung der Hybrid Cloud)
Isolationseinheiten
-> ACCOUNT -> VPC -> Subnetz (Broadcast Domains) -> EC2 (Virtuelle Maschinen)
Standarduser AWS
Account: Root-User (keine Einschränkungen) Account: IAM-User (Principle of Least Privilege)
Dienste
Globale Dienste
- IAM (Identity Access Mgmt)
- DNS (route53)
- CloudFront
Regionale Dienste
- S3
- AMIs
- VPC
- Cloudwatch
Lokale Dienste
- EC2
- EBS Volumes (Elastic Block Store)
Auswahl Region
- Compliance (rechtliche Grundlagen)
- geografische Nähe (kurze Latenz)
- Anzahl Services
- Preis
HA
-Für HA mindestens 2-3 AZs (Availability Zones) in der gewählten Region für "fault tolerance" => 2 Region auswählen
Dienste
- IAM: Userverwaltung
- VPC: Netzwerke
- EC2: Virtuelle Instanzen
- S3 & Glacier: Datenspiecher (S3 = Simple Storage Service)
AWS Konto
- gültige E-Mail-Adresse
- gültige Telefonummer
- gültige Kreditkarte
- Links:
- aws.amazon.com
- console.aws.amazon.com
Root-Account absichern: "IAM" nach der Anmeldung eintippen neuen User anlegen: IAM -> Users -> Add User [KontoAdmin] Policy: AdministratorAccess (ausser Rechnungen und KK Informationen) AnmeldeLink / Access Key / Secret Access Key kopieren [meineAbteilung] neue Gruppe anlegen: IAM -> Groups -> Create new Groups () Policy: S3FullAccess / S3ReadonlyAccess / EC2ReadonlyAccess / EC2FullAccess neuen User anlegen: IAM -> Users -> Add User [TestMA] -> nur Zugriff auf Konsole / Gruppe: EC2FullAccess (Passwort und Console Link kopieren)
AWS-CLI
Ininstallieren über PIP
aws configure (erstes Kommando)
aws help
aws ec2 help
aws ec2 describe-instances -instance-id=<id>
aws s3 ls (S3 Buckets anzeigen)
aws ec2 copy-image --source-image-id ami-XXXXXX --soource-region-eu-west1 --region eu-central-1 --name "MeinServerAMI
aws ec2 describe-instances --filters "Name=instance-type,Values=m1.small"
aws ec2 describe-instances --filters "Name=tag=Kostenstelle,Values=4711"
aws --dry-run
EC2
besteht aus
- Instanz Typen Familien: (T2,T3,M5 (Typ+Version)) | Größe: micro,medium
- Virtuelle Festplatte
- EBS (Elastic Block Storage -> Netzwerkspeicher)
- Daten bleiben erhalten bei Instanz stop -> Ausser bei "DeleteOnTermination"
- Lokaler Instanz Store
- sind direkt am Rack Computer angeschlossen
- Daten sind verloren wenn Instanz gestoppt oder terminiert wird
- Netzwerk
- BS Image (AMI) -> Aminator/Packer
- Userdata (Scripte zur Konfiguration der Instanz)
- Metadata (Abfragedienst für Informationen über die Instanz)
- kann nur in VPC gestartet werden
Preismodelle
- On-Demand (pay-as-you-go)
- Reserved Instances (Ein- oder Dreijahresverträge)
- Spot Instances (ungenutzte EC2 Kapazitäten, Bietersystem)
freie Nutzung EC2 für 1 Jahr mit 750 Bestriebsstunden pro Monat
- 24Std/Tag * 30Tage = 1x Node
- 2.4 Stunden/Tag * 30 Tage = 10xNodes gleichzeitig
S3 (Simple Storage Service)
- Object Store
- Online-Key-Value-Speicher (max 5TB)
- Bucket erstellen um Daten zu speichern
- Reverse-Domain-Notation sinnvoll (de.test.
. ) - Name des Objekts muss eindeutig sein
- Reverse-Domain-Notation sinnvoll (de.test.
- kennt keine (Unter-)Ordner, nur Präfixe
- Versionierbare Daten
- Verschlüsselung via AES-256
Speicherklassen
- S3 Standard, S3 Standard-1A, S3 One Zone 1A (hot storage -> häufige Änderungen)
Amazon Glazier (cold storage -> wenige Änderungen)
Bucket erstellen (S3 Dashboard wählen -> Create Bucket (eindeutiger Name))
Optionen:
- Versionierung
- Server Access Logging
- Tags
- Berechtigungen vergeben
Datei in Bucket speichern (via Dashboard)
- Dateifreigabe (S3Host/Bucket/Dateiname)
VPC
- sind immer an die Region gebunden
- können mehrere AZ in er Region umfassen
- Netzwerke /16 & /28
- Default VPC ist vorhanden (darf nicht gelöscht werden)
- weitere Isolationseinheit
- VPCs einer Region verbinden (Peering / Peering Requests) (erweitertes Routingkonzept)
- keine überlappenden IP Bereiche
- keine transitives Routing
- kein NAT zwischen VPC Peers
- keine privaten DNS Einträge zwischen VPCs
- Subnetze (teilen des VPC in kleinere Bereiche)
- keine überlappenden IP Bereiche
- privat oder public
- 1-4 und letzte IP für AWS reserviert
- 0 Netzwerkadresse
- 1 VPC Router
- 2 DNS
- 3 Sonstiges
- 255 Broadcastadresse
- VPC erstellen (VPC Dashboard wählen)
Weitere Services
Cloudformation (für Automatisierung)
- Dienst zur Automatisierung
- Templatesystem
- Stack wird erstellt (enhält Ressourcen)
- Ausführung ist atomar (alles-oder-nichts-Prinzip)
Lambda
- führt Scripts und Programmcode aus
- max Ausführungszeit (5Min)
- Zustandslos
- Sprachen: node,java,C#,Go,Python
- Glueing Service: auf Ereignisse anderer Dienste reagieren
- z.B hochgeladene Datei in S3 auf Compliance überprüfen
Serverless Computing
- Braucht man noch Webserver?
- Alternative: Lambda und API Gateway
CloudFront
- Content Distribution Network (CDN)
- Inhalte werden gecacht (55+ Edge Locations)
- geringe Latenz
- weniger Last auf EC2 Backend
- SSL Terminierung auf CloudFront möglich
- statischer und dynamischer Content möglich
CloudWatch
- Anwendungsüberwachung
- Leistungsüberwachung
- Sammelt Metriken und sendet Alarme
CloudTrail
- Anwendungs- und Accountüberwachung auf API Ebene
- Fortlaufendes Änderungsprotokoll
- Kann gegen Veränderungen geschützt werden (z.B für forensische Analysen)
- muss aktiviert werden
- Logs liegen in S3 Bucket
TrustedAdvisor
- zeigt potenzielle Fehlerquellen an
- (Trusted Advisor Dashboard wählen)
- Links:
- AWS kostenlos testen
- Docker auf EC2 starten