ΕΠΛ425 : Τεχνολογίες Διαδικτύου Εργαστήρια Δημήτρης Πασχαλίδης Χειμερινό Εξάμηνο 2016 1
Εργαστήριο 1 Εισαγωγή στους Virtual Servers και AWS
Τι θα μελετήσουμε; Τί είναι οι Virtual Servers Κατανόηση Virtualization Concepts όπως Physical versus Virtual Host και Image versus Instance Σύντομη περιγραφή του Cloud και των μοντέλων του IAAS, PAAS και SAAS Εισαγωγή στο AWS Amazon Web Services Εγγραφή στο Github Student Pack για λήψη δωρεάν AWS credits Δημιουργία AWS λογαριασμού Εκκίνηση, προσπέλαση και τερματισμός του δικού σας Virtual Server Instance στο Amazon
Τι είναι ένας Virtual Server; Παραδοσιακός Physical Server Αποτελεί μία μηχανή / ένα κομμάτι υλικού Είναι εγκατεστημένος σε ένα rack μέσα σε ένα server room Φιλοξενείται σε ένα συγκεκριμένο χώρο Όλοι οι πόροι του ( CPUs, memory, disk, network ) είναι καθορισμένοι σε ένα ρόλο π.χ. Web Server ή Mail Server Κατά μέσο όρο μόνο το 20% των πόρων του χρησιμοποιείται
Τι είναι ένας Virtual Server; Virtual Server Ένας απο τους πολλαπλούς servers που λειτουργούν πάνω σε ένα physical server Οι Virtual Servers μοιράζονται τους πόρους του physical server στο οποίο βρίσκονται Οι Virtual Servers είναι sandboxed, δηλαδή οι τελικοί χρήστες τους δέν γνωρίζουν την ύπαρξη των υπόλοιπων Virtual Servers και των δεδομένων τους Image courtesy of: vmware.com
Τι είναι ένας Virtual Server; Το Virtualization κάνει αδύνατη την εκτέλεση πολλαπλών operating systems (guests) και applications στο ίδιο physical infrastructure την ίδια χρονική στιγμή. Το VMM - Virtual Machine Monitor ή Hypervisor αποτελεί ένα ειδικό λογισμικό το οποίο είναι υπέυθυνο για την δημιουργία και διαχείριση των Virtual Servers Βρίσκεται εγκατεστημένο πάνω απο το hardware layer στο οποίο είναι εγκατεστημένα τα virtual machines που τρέχουν Image courtesy of: docker.com
Cloud Computing The NIST Definition of Cloud Computing, NIST, 2011 Παρέχει: Εύκολη και on-demand πρόσβαση στο δίκτυο Κοινή συλλογή απο προγραμματιζόμενους πόρους Γρήγορη παροχή και έκδοση Ελάχιστος κόπος για διαχείριση Ελάχιστη αλληλεπίδραση με τον Service Provider Το Virtualization αποτελεί ένα κύριο χαρακτηριστικό του Cloud Computing, το οποίο βοηθάει στην υλοποίηση του.
Cloud Models The NIST Definition of Cloud Computing, NIST, 2011 Service Models Software as a Service SaaS Platform as a Service PaaS Infrastructure as a Service IaaS Deployment Models Private Community Public Hybrid
Cloud Models The NIST Definition of Cloud Computing, NIST, 2011 [ Image courtesy of: Microsoft Azure]
Virtual Machines, Images and Instances Virtual Machines Αποτελεί έναν Virtual Server Images Αποτελεί ένα στατικό template που περιέχει τα προγράμματα που θα εκκινήσουν μαζί με το Virtual Machine Instances Αποτελεί ένα αντίγραφο του τρέχοντος Image σε ένα Cloud Infrastructure. Αντιθέτως με ένα Image, είναι δυναμικό και εκτελεί συγκεκριμένο task.
AWS Dashboard
AWS Dashboard Εδώ είναι τα computing resources που χρησιμοποιούν ται τωρά. Εδώ μπορείς να δημιουργησεις καινούργιο virtual server.
Επιλογή Virtual Machine
Επιλογή τύπου Instance
Ρυθμιση του Instance
Προσθήκη αποθηκευτικου χώρου
Ρυθμιση ασφάλειας
AWS Δημιουργία Public Key Μετά τη δημιουργία του instance σας, θα σας ζητηθεί ένα key pair για επικοινωνία με τον server. Επιλέξτε τη δημιουργία καινούργιου δίνοντας του ένα όνομα και πατώντας Download. Φυλάξτε το κάπου ασφαλισμένα καθώς είναι πολύ σημαντικό και δέν μπορείτε να το ξανακατεβάσετε.
Public Key Cryptography Χρησιμοποιείται για να δημιουργηθεί μία secure connection μεταξύ δύο οντοτήτων. Βασίζεται πάνω στο asymmetrical encryption και χρησιμοποιεί δύο κλειδιά, το public και private. Το public μπορεί να διαμοιραστεί σε οποιαδήποτε εξωτερική οντότητα. Το public είναι μαθηματικά συνδεδεμένο με το private key του. Αυτο σημαίνει ότι το public key μπορεί να κάνει encrypt μηνύματα που μόνο το private key μπορεί να κάνει decrypt. Αυτή η σχέση μεταξύ τους είναι μιας κατεύθυνσης, και γι αυτο λέγεται asymmetrical.
Public Key Cryptography Το public key δέν μπορεί να κάνει decrypt μηνύματα που γράφει το ίδιο. Το public key δέν μπορεί να κάνει decrypt μηνύματα που γράφει το private key. Το private key μόνο μπορεί να κάνει decrypt μηνύματα.
SSH Secure Shell Επικοινωνία Το SSH είναι ένα ασφαλές πρωτόκολλο επικοινωνίας μέσω του οποίου μπορεί να εκτελεστεί remote login απο ένα μή ασφαλές δίκτυο. Μέσω αυτόυ μπορείτε να κάνετε remote login στους AWS Virtual Servers σας. Βασίζεται μερικώς πάνω στο asymmetrical encryption.
Ρύθμιση PuTTY για σύνδεση με AWS Ανοίξτε το PuTTYgen http://www.chiark.greenend.or g.uk/~sgtatham/putty/ Επιλεξτε τη δημιουργία SSH-2 RSA Κάντε load το.pem που δημιούργησε το AWS. Κάντε Save το private key στο format του PuTTY.
Ρύθμιση PuTTY για σύνδεση με AWS Ανοίξτε το PuTTY. Πηγαίνετε στην επιλογή Connection -> SSH->Auth. Πατήστε Browse και επιλέξτε το.pem που δημιούργησε το AWS. Κάντε load το.ppk που δημιούργησε το AWS.
Ρύθμιση PuTTY για σύνδεση με AWS Στο Host κάντε paste το public DNS του AWS Instance σας. Το public DNS μπορεί να βρεθεί στα Instances στο AWS Dashboard. Στο login as, βάλτε ubuntu.
Προσοχή: Κάντε terminate τα instances Μήν ξεχνάτε να κάνετε terminate τα instances που δέν χρειάζεστε πλέον διότι θα χρεώνεστε άδικα.