Η Amazon Web Services (AWS) είναι μια θυγατρική της Amazon που παρέχει on demand cloud computing και API υπηρεσίες σε ιδιώτες, εταιρείες και κυβερνητικούς οργανισμούς. Αυτές οι υπηρεσίες web cloud computing παρέχουν μια ποικιλία βασικών και κατανεμημένων υπολογιστικών υποδομών.

Κάθε τρεις και λίγο έρχεται μία τεχνολογία που αλλάζει τα πάντα. Ριζικά. Στις μέρες μας αυτό είναι το Cloud Computing.

Όλα τα δεδομένα βρίσκονται στο “cloud” σε διάφορα datacenters. Δείτε το google docs, ή το office365, όπου βασικά σημαίνει να τρέχεις προγράμματα χρησιμοποιώντας εξωγενής πόρους (external resources).

Ο αρχηγός στο cloud computing είναι το Amazon AWS. Η Amazon ανά τα χρόνια, έφτιαξε μία από τις πιο μεγάλες infrastructures στον κόσμο, με τρομακτικό scaling. Φανταστείτε ένα γιγάντιο υπολογιστή όπου μπορείς να προσθέσεις-αφαιρέσεις όποτε θες, όσους CPU πυρήνες, μνήμη RAM και χωρητικότητα (δίσκο) θες.

Δεν υπάρχουν ανταγωνιστές; Σίγουρα υπάρχουν (Google Cloud Platform, Microsoft Azure), αλλά η Amazon είναι έτη φωτός μακριά τους, προσφέρει τόσα πολλά πράγματα όπου από κει που ήθελες απλά έναν server στο cloud, στην τελική καταλήγεις με άλλα 10 πράγματα – marketing.

Σε αυτή τη σειρά άρθρων θα ασχοληθούμε με τα απολύτως βασικά, με τους servers, τα websites, τους dns και οτιδήποτε άλλο χρειάζεται να ξέρει ένας system administrator για να τρέξει τα services στο cloud. Οι σειρά των άρθρων αφορά κυρίως τους on-premise System Administrators που θέλουν να μπούνε στον κόσμο του cloud computing αλλά και γενικά για αυτούς που θέλουν να δουν ποιες οι δυνατότητες που παρέχει το AWS.

Advertisements

Πώς θα γίνει αυτό:

  • Για να μάθετε αυτό το skill πρέπει να πραγματοποιήσετε αυτά που θα σας πω. (Κατεβάστε το Kindle App στο tablet/κινητό και έπειτα το AWS Command Line Interface: User Guide) Το διάβασμα δεν αρκεί, πρέπει να υλοποιήσετε τα tasks και συγκεκριμένα να τα επαναλάβετε τόσες φορές ώστε να το κάνετε πλέον μηχανικά.
  • Κρατήστε τις δικές σας σημειώσεις και φτιάξε τα δικά σας SOP.
  • Φτιάξτε ένα lab. Ναι υπάρχει δωρεάν για ένα έτος, αλλά κάποια στιγμή θα πρέπει να πληρώσετε, sorry. Θα πρέπει να έχετε κάρτα (συγκεκριμένα πιστωτική) και να φτιάξετε ένα account στο Amazon AWS.
  • Τέλος, να πω ξανά, ότι είναι σημαντικό να υλοποιήσετε αυτά για τα οποία θα σας μιλήσω. Είναι ένα καθαρά πρακτικής εμπειρίας, το οποίο είναι ότι πιο απλό πρέπει να ξέρει ένας system administrator σήμερα, και φυσικά από κει επιβάλλεται να ψαχτείτε μόνοι σας και να βρείτε το δικό σας workflow.
  • Το interface του AWS αλλάζει συνέχεια, οπότε αν θέλετε να είστε up to date, γραφτείτε στο AWS Newsletter καθώς είναι κάτι σαν changelog.
  • Μην το φοβάσαι. Κάποτε φοβόμουν να βάλω Linux και πλέον δεν μπορώ να δουλέψω χωρίς αυτό. Ο μόνος τρόπος να αγαπήσετε το cloud computing είναι με το να το χρησιμοποιείτε. Όσο περισσότερο το χρησιμοποιείτε τόσο πιο άνετα και ευχάριστα θα νιώθετε.

Τι είναι το cloud;

Σκέψου ότι πας στην δουλειά, μπαίνεις μέσα στο server-room, φορτώνεις όλα τα μηχανήματα στο αυτοκίνητο και τα πας και τα αφήνεις σε ένα datacenter. Αυτό ήταν.

Είναι ένα off-site infrastructure καθώς και κάποια όμορφα σπέσιαλ features που έρχονται μαζί με αυτό. Μιλάμε για τον παραδοσιακό τρόπο, όπου εδώ ο κυρ Μήτσος αποφάσισε να φτιάξει το δικό του προσωπικό cloud – αυτό που λέμε on-premise ή αλλιώς bare-metal. Το πρώτο πράγμα που κάνει είναι να βρει ένα datacenter (συνήθως βρίσκονται σε περιοχές που δεν έχει σεισμούς και άλλες καταστροφές). BTW έχετε μπει ποτέ σε datacenter; Αν, όχι, απλά κάντε το. Χωρίς πλάκα, κανονίστε να πάτε σε ένα μεγάλο datacenter στην Ευρώπη και να βάλετε ένα 20 raspberry pi. Όταν θα μπείτε μέσα είναι σαν να βρίσκεσαι στο Death Star! Τεράστιοι ανεμιστήρες, φωτάκια παντού, κλπ.

Εκεί λοιπόν, ο κυρΜήτσος νοικιάζει ένα rack για να βάλει τον εξοπλισμό του. Για το rack αυτό (απλά και μόνο για τον χώρο) θα πληρώσει κάποια χρήματα. Για το ρεύμα, το internet και όλα τα υπόλοιπα θα πληρώσει επιπλέον χρήματα εννοείται. Εκεί, έχουμε κάποιες εταιρείες οι οποίες εδραιώνονται ενεργά μέσα στο datacenter, και είναι υπεύθυνοι για το σετάρισμα των switches, firewalls, servers, storages κλπ. Οπότε αν θέλετε να αναβαθμίσετε το δίκτυο σας σε fiber optics, πρέπει να απευθυνθείτε σε μία από αυτές, και οι engineers τους θα φροντίσουν για ό,τι χρειάζεται.

Είναι σαν να χτίζεις ένα σπίτι. Επιλέγεις τα καλώδια, το firewall, το πως θα κάνεις το power cycle, τα UPS, τους servers σου, κλπ. Το rack σου είναι σαν το σπίτι σου, μέσα στο datacenter και οι network engineers οι εργολάβοι.

Θέλω λοιπόν να τρέξω έναν web server. Θέλω να τρέξω ένα remote desktop server. Θέλω να τρέξω έναν SFTP server. Θέλω να τρέξω έναν mail server. Ο,τι θες να τρέξεις, τώρα μπορείς να το κάνεις, χρησιμοποιώντας το off-site infrastructure σου, όπου για σένα είναι πλέον το “cloud” σου. Μπορείς να σηκώσεις ένα ωραιότατο OpenStack!

Και φυσικά, μπορείς να κάνεις expand και σε άλλο datacenter. πχ να έχεις ένα στην Ευρώπη και ένα στην Αμερική. Αν κάτι πάει στραβά, πχ χαλάσει το air-condition και αρχίσουν να ψήνονται οι servers, τι θα κάνεις; Ναι, μπορεί να σου λένε ότι έχουν SLA 100% uptime, αλλά θα το ρισκάρεις; Οι εγγύηση αυτή ισχύει εφόσον το datacenter είναι ΟΚ, αν πιάσει φωτιά τότε προφανώς και θα πέσουν offline τα services σου. Πέρα από αυτό, αν προσφέρει πχ voice over IP services, και οι πελάτες σου είναι στην Κίνα, θες ένα datacenter στην Κίνα, διαφορετικά θα υπάρχει delay και lag. Το οποίο σημαίνει, ότι με τον παραδοσιακό τρόπο, ο Μήτσος πρέπει να πάει ταξίδι στην Κίνα!

Advertisements

Τι είναι το AWS (Amazon Web Services);

Το πρώτο πράγμα: δεν φορτώνεις τίποτα στο αμάξι σου. Δεν αγοράζεις καλώδια, δεν αγοράζεις rack, δεν πας στην Κίνα, δεν, δεν, δεν, δεν. Απλά μπαίνεις σε ένα website και επιλέγεις τι θες να κάνεις.

Το πρώτο πράγμα που επιλέγεις είναι το Region, δηλαδή την περιοχή που η Amazon έχει datacenters. πχ eu-west-1, us-east-1, us-east2-, κλπ. Κάθε region έχει ένα pool από Availability Zones, τα οποία είναι datacenters που λειτουργούν ανεξάρτητα το ένα από το άλλο. Οπότε,

  • region = περιοχή,
  • availability-zones=datacenters στην περιοχή αυτή.
Κάθε region έχει ένα pool από Availability Zones

Για κάθε region υπάρχουν περισσότερα ή λιγότερα availability zones. Δεν σημαίνει ότι η τάδε region είναι καλύτερη από την άλλη. Όλα τα datacenters έχουν τις ίδιες προδιαγραφές και ISO.

  1. Επιλέγουμε λοιπόν μία region και μία availability zone, και πλέον μπορούμε να κάνουμε provision τον server μας.
  2. Κάνουμε λοιπόν launch ένα instance (πχ ubuntu) και ένα instance type (πχ micro). Το instance type είναι το πόσο μεγάλος ή μικρός είναι αυτός ο server. Δύο πράγματα δηλαδή: το operating system και τα hardware specs (instance type).
  3. Έχοντας το server να τρέχει, πλέον μπορούμε να σηκώσουμε τα services που θέλουμε. Εναν webserver, εναν mailserver, ενα ZNC, ο,τι θέλουμε …
  4. Το επόμενο βήμα είναι να κάνει expand σε άλλο datacenter (availability zone) γιατί θέλουμε να υπάρχει redundancy (εφεδρεία). Υποθέτοντας ότι έχουμε τον server στην Αμερική στο us-west-1a datacenter, τότε μπορούμε να τον επεκτείνουμε και στην us-west-1c availability zone. Είναι στην ίδια τοποθεσία, αλλά σε διαφορετικό datacenter. Οπότε τώρα, με 2 κλικ έχω multi-datacenter redundancy. Αν έχω πάλι του Κινέζους πελάτες, τότε μπορώ να κάνω extend και σε άλλο Region, κοντά στη Κίνα, ώστε να έχω multi-region redundancy.

Ας τα βάλουμε κάτω, τα θετικά και τα αρνητικά:

Bare Metal / Private Cloud:

  • Πληρώνεις εξαρχής ένα σκασμό λεφτά, καθώς δεν ξερεις πόσα περίπου πράγματα θα χρησιμοποιήσεις (καλώδια, servers, UPS, κλπ), οπότε πληρώνεις για να είσαι σίγουρος ότι θα σου φτάσουν. Επειδή δεν θες να απογοητεύσεις τους πελάτες σου, συνήθως αγοράζεις παραπάνω από ότι χρειάζεσαι, με αποτέλεσμα να πληρώνεις τζάμπα λεφτά.
  • Οι τεχνικοί στο datacenter δεν είναι φθηνοί. Όλοι αυτοί οι δικτυάδες με τα Cisco και AT&T που συνδέουν και πατσάρουν και σετάρουν και ρυθμίζουν και τρέχουν πάνω κάτω, είναι προσωπικό που παρέχει ένα service το οποίο χρειάζεσαι.
  • Και φυσικά, μιλάμε για μία custom λύση, αναλόγως την εμπειρία που έχεις και την εμπειρία που έχει ο εκάστοτε engineer που υλοποιεί τη λύση που πιστεύει ότι είναι η καλύτερη. Οπότε πολλές φορές ανακαλύπτουμε τον τροχό ξανά και ξανά, χωρίς η επόμενη φορά να είναι καλύτερη από τη προηγούμενη.
  • Πλεονέκτημα είναι προφανώς όλα αυτά σου ανήκουν, δεν τα νοικιάζεις, αλλά είναι αγορασμένα στο όνομά σου, αλλά στην ουσία εξαρτάσαι αρκετά απο άλλους παράγοντες, τους μηχανικούς, το datacenter το ίδιο, και ελπίζεις ότι όλα θα πάνε καλά.
  • Μπορείς να φτιάξεις όσο πιο μεγάλο “θηρίο” server θες. Δεν υπάρχει micro, small, medium, large, xxl, και άλλα μεγέθη. Οργίασε όσο θες με τα specs.
Advertisements

Amazon Web Service (AWS)

  • Εδώ το μοντέλο είναι pay-as-you-go και μάλιστα σου δίνουν και δωρεάν services για τον πρώτο χρόνο για το transitioning period. Μπορείς πολύ εύκολο να αυξήσεις και να μειώσεις ότι resources θες, απλά με μερικά κλικ.
  • Δεν θες να πληρώνεις ένα σκασμό λεφτά για πράγματα που δε χρειάζεσαι, σωστά; Αυτό λέγεται ELASTIC. Καλώς ήρθες στο Elastic Computing, όπου λέξη κλειδί είναι το: grow-as-needed. Όταν βλέπεις ότι ο χώρος στο δίσκο αρχίζει να τελειώνει, τότε automagically (μου αρέσει αυτή η λέξη) σηκώνεται κι άλλο μηχάνημα και μεγαλώνει έτσι η χωρητικότητα! Φυσικά αυτό το ρυθμίζεις, πχ όταν του πελάτη φρικάρει λόγω κίνησης, το οποίο συμβαίνει συνήθως σε ώρες αιχμής (πχ 13:00 με 16:00), τότε θέλω για αυτό το διάστημα να σηκώσεις άλλους δύο servers για να μοιράσει το φόρτο. Μόλις πάει 16:00 να σκοτώσεις τον έναν, και μόλις πάει 17:00 να σκοτώσεις και τον άλλο, ώστε να μείνει πάλι με αυτόν που είχε. Φυσικά αυτό μπορεί να ρυθμιστεί και με άλλα quota, όχι απαραίτητα με βάση την ώρα. Λεφτά να έχεις, και pricing models θα βρεις. Στο Amazon λοιπόν, αυτό λέγεται EC2 – Elastic Computing: το οποίο είπαμε ότι σημαίνει add-more-as-you-need και τα αφαιρείς όταν είσαι ΟΚ. Όπως είπα στην αρχή, η Amazon δεν έχει πρόβλημα με το scaling, οπότε ότι κι αν ζητήσετε, οι τύποι θα το κάνουν deliver.
  • Επίσης έχουν ένα κάρο security compliance, όπου εκεί έχουμε τα legal/δικηγορικά στη μέση. Μερικοί πελάτες λένε: “παιδιά εμείς παίζουμε μόνο με το X ISO, ή με το Y ISO”. Έχοντας το infrastructure στο AWS, είναι 100% σίγουρο (ούτε καν χρειάζεται να το σκεφτείς) ότι είναι compliant με το πρότυπο που ζητάει ο πελάτης.
  • Πολλαπλά datacenters, με ένα κλικ. Διαφορετικά, δοκιμάστε να φορτώσετε τα πάντα σε ένα αμάξι και να στήσετε δεύτερο infrastructure.
  • Οι Engineers στο Amazon δουλεύουν στην αιχμή της τεχνολογίας όσον αφορά τα datacenters. Πρώτα θα το ανακαλύψουν αυτοί, και μετά θα το πάρουν όλοι οι άλλοι. Οπότε η εξειδίκευση που υπάρχει είναι τεράστια, συνεπώς έχεις το καλύτερο support που θα μπορούσες να έχεις από την άποψη του consulting – και θα πληρώσεις για αυτό.
  • Horizontal Scaling. Τι είναι αυτό; Υπάρχει και vertical scaling; Ναι! πχ Θέλεις περισσότερη επεξεργαστική ισχύ; Αγοράζεις περισσότερους επεξεργαστές. Θέλεις περισσότερη RAM, αγοράζεις περισσότερη RAM. Με το Amazon είναι λίγο διαφορετική η φιλοσοφία. Αντί να προσθέτεις hardware, προσθέτεις instances. Στο AWS τα πάντα είναι virtualized. Προφανώς αυτά τρέχουν σε κάποιο bare metal hardware, αλλά η φάση είναι ότι μέσω ενός wizard μπορούμε να φτιάξουμε ένα custom server, virtualized, το οποίο λέγεται AMI. Οπότε αντί να κάνουμε το AMI μεγαλύτερο (πχ να προσθέσουμε περισσότερους επεξεργαστές σε αυτό, ή περισσότερη RAM), αντί δηλαδή να κάνουμε vertical scaling, το AWS σου προτείνει να σηκώσει ένα δεύτερο AMI. πχ ας πούμε ότι τρέχεις ένα website που έχει πολλή κίνηση και γίνεται χαμός. Όλη μέρα όλοι μπαίνουν στο site σου, και βλέπεις ότι 8:00 – 17:00, μπαίνουν όλοι μέσα και κάνουν το ΑΜΙ σου να βογκάει. Οπότε, εδώ έρχεται το horizontal scaling του AWS όπου σου επιτρέπει να κάνεις clone το AMI, και να φτιάξεις όσους κλώνους του webserver θες. (btw Όλοι αυτοί μιλάνε με την ίδια database προφανώς). Σηκώνεις και έναν loadbalancer μπροστά, ο οποίος ανακατευθύνει το traffic και έτσι σώθηκες. Το website σου παραμένει online και παρόλο που δεν είχε υπολογίσει ότι θα γίνει τόσο χαμός, με 5 κλικ σηκώθηκαν αμέσως τα cloned AMIs και έβαλες μπροστά τους και έναν LB. Αυτό είναι το horizontal scaling.

Επίλογος εισαγωγής στο AWS

Με απλά λόγια, το AWS είναι μία τεχνολογία που άλλαξε και αλλάζει τα πράγματα!

Το AWS εντάσσεται στην κατηγορία του public cloud, δηλαδή όλα τα τα features, λίγο-πολύ, τα παρέχουν κι άλλοι, όπως Microsoft Azure, Google GCP, DigitalOcean, OVH κλπ.

Φυσικά, το public cloud δεν είναι καινούριο, ο κόσμος το χρησιμοποιεί εδώ και αρκετό καιρό. Το 70% των public cloud services παγκοσμίως τρέχουν σε AWS. Με άλλα λόγια, αν πάτε να πιάσετε δουλειά σήμερα: ΠΡΕΠΕΙ ΝΑ ΞΕΡΕΤΕ ΤΑ ΒΑΣΙΚΑ ΤΟΥ AWS.

Οπότε:

  1. Πρέπει να μάθεις να χρησιμοποιείς το public cloud.
  2. Το AWS είναι μακράν το πιο ευρέως διαδεδομένο public cloud. Ξεκίνα από αυτό!

Παραπομπές: