Πρόκειται να ξεκινήσετε ένα νέο έργο ή ίσως πρόκειται να αναπτύξετε κάποια νέα χαρακτηριστικά; Πριν ξεκινήσετε να αναλαμβάνετε οποιαδήποτε ενέργεια, αξίζει να μάθετε όσο το δυνατόν περισσότερα για διάφορα εξωτερικά εργαλεία που μπορεί να σας φανούν χρήσιμα.
Δύο βασικές και ίσως οι πιο δημοφιλείς AWS υπηρεσίες είναι οι EC2 και S3. Με λίγα λόγια: με την EC2 μπορείτε να δημιουργήσετε την έργο και να το παρουσιάσει στον κόσμο, ενώ το S3 χρησιμοποιείται για την αποθήκευση δεδομένων κάθε είδους. Ωστόσο, σε αυτό το άρθρο θα ήθελα να εξετάσω άλλα περισσότερο ή λιγότερο δημοφιλή εργαλεία του AWS που συνήθως χρησιμοποιούμε εδώ, στην Codest.

Cloudfront
Πρόκειται για ένα εργαλείο που δημιουργήθηκε ειδικά για την πολύ γρήγορη παράδοση πόρων σε πολλούς χρήστες. Και πολλά δεν σημαίνει εκατοντάδες ή χιλιάδες, αλλά εκατομμύρια αιτήσεις για έναν μόνο πόρο. Για παράδειγμα, θέλετε να επιτρέψετε την τοποθέτηση γραφικών, css, html ή javascript αρχείο σε οποιαδήποτε σελίδα. Θέλετε επίσης να έχετε πλήρη αντίκτυπο στα περιεχόμενα που παρέχει ο πόρος - πρέπει να αλλάξετε κάτι και θέλετε αυτή η αλλαγή να συμβεί σε όλες τις σελίδες με το αρχείο σας. Και εδώ έρχεται το AWS Cloudfront, με όλες τις δυνατότητές του, οι οποίες θα κάνουν τον τελικό χρήστη να λάβει τον πόρο σας το συντομότερο δυνατό.
Το Cloudfront προσφέρει επίσης μια σειρά από στατιστικά στοιχεία. Για παράδειγμα - σελίδες που έχουν ζητηθεί περισσότερο, συσκευές με τις οποίες έγινε η αίτηση για τον πόρο, καταστάσεις http κ.λπ.
Φυσικά, αυτό το εργαλείο είναι αρκετά ακριβό, αλλά όσο περισσότερες αιτήσεις στο cloudfront πρόκειται να γίνουν, τόσο λιγότερο πληρώνετε για την υπηρεσία. Ως εκ τούτου, θα πρέπει να εξετάσετε αυτή τη λύση σε περίπτωση που θέλετε να τοποθετήσετε τον πόρο σε ιστότοπους με πραγματικά μεγάλη ή και τεράστια επισκεψιμότητα.
Παρτίδα
Με απλά λόγια, πρόκειται για μια υπηρεσία που επιτρέπει την εκτέλεση μεγάλου αριθμού εργασιών απευθείας στο AWS. Το μόνο που πρέπει να προετοιμάσετε είναι ένα σενάριο εκτέλεσης και μια εικόνα docker, ενώ το AWS Batch θα κάνει τα υπόλοιπα. Το Batch θα δημιουργήσει δυναμικά instances στον EC2, θα διαθέσει μια κατάλληλη θέση για τις εργασίες και θα τις εκκινήσει ταυτόχρονα. Δεν χρειάζεται να ανησυχείτε ότι η παρουσία σας στον EC2 θα ξεμείνει από χώρο ή μνήμη ή ότι πρέπει να σκέφτεστε συνεχώς πότε και πώς μπορεί να ξεκινήσει η εργασία. Για την επικοινωνία μεταξύ του σεναρίου στην εικόνα docker και της υπηρεσίας σας μπορείτε απλώς να δημιουργήσετε το API και να είστε έτοιμοι. Αν θέλετε να χρησιμοποιήσετε το Batch θα πρέπει επίσης να προετοιμάσετε το docker repository σας στην υπηρεσία Amazon Elastic Container Registry (ECR).
Αξίζει επίσης να αναφερθεί μια άλλη υπηρεσία, η οποία επωφελείται από τα δοχεία docker. Ονομάζεται Elastic Container Service (ECS). Η κύρια διαφορά της σε σύγκριση με το Batch είναι ότι πρέπει να ρυθμίσετε και να κλιμακώσετε μόνοι σας την παρουσία EC2, ενώ το Batch κάνει όλη τη δουλειά για εσάς. Το κόστος του Batch εξαρτάται από το ποια EC2 instances επιτρέπεται να χρησιμοποιήσετε, καθώς, σε αυτή την περίπτωση, πληρώνετε μόνο για τα instances που λειτουργούν.
Λάμδα
Το AWS Batch κάνει τη δουλειά εκκινώντας εικόνες docker, ενώ η επόμενη υπηρεσία - AWS Lambda - σας επιτρέπει να εκτελέσετε το σενάριο απευθείας. Δεν χρειάζεται να ρυθμίσετε κανέναν διακομιστή, η κωδικός εκτελείται εικονικά, και το καλύτερο είναι ότι μπορείτε επίσης να επιστρέψετε κάποια τιμή με τον τρόπο που θέλετε.
Πότε μπορεί να χρησιμοποιηθεί; Ας υποθέσουμε ότι θέλετε να κάνετε κάποιους υπολογισμούς στον ιστότοπό μας με βάση παραμέτρους από το πρόγραμμα περιήγησης και ίσως, επιπλέον, αυτοί οι υπολογισμοί απαιτούν κάποια επιπλέον ερωτήματα σε άλλα σημεία του διαδικτύου. Σε αυτή την περίπτωση, το μόνο που χρειάζεται να κάνετε είναι να δημιουργήσετε ένα τελικό σημείο στο Lambda, να προσθέσετε το σενάριό σας και να χρησιμοποιήσετε αυτό το τελικό σημείο στον ιστότοπο. Είναι πραγματικά εύκολο.
Το κόστος Lambda υπολογίζεται μόνο όταν εκτελείται το σενάριο, όταν το τελικό σημείο δεν χρησιμοποιείται, δεν πληρώνετε τίποτα.
SNS
Η Simple Notification Service, όπως υποδηλώνει και το όνομά της, είναι ένα εργαλείο που έχει αναπτυχθεί ειδικά για την αποστολή ειδοποιήσεων. Μπορεί να χρησιμοποιηθεί εύκολα για την επικοινωνία μεταξύ διαφόρων υπηρεσιών AWS. Για παράδειγμα, έχετε μια ομάδα μικρο-υπηρεσιών και θέλετε μία από αυτές να καθοδηγεί τις υπόλοιπες - να εκκινεί κάποιες από αυτές ή να εκτελεί κάποιες ενέργειες. Στη συγκεκριμένη περίπτωση, μπορείτε να στείλετε ειδοποίηση από την κύρια υπηρεσία και να χειριστείτε τη λήψη μηνυμάτων σε άλλη μικρο-υπηρεσία που προτιμάτε. Παρεμπιπτόντως, αξίζει επίσης να αναφέρουμε την υπηρεσία Amazon Simple Queue Service (SQS), η οποία μπορεί να δημιουργήσει μια πολύ ενδιαφέρουσα σύνδεση μαζί με το SNS.
Στην περίπτωση του SNS (καθώς και του SQS), η πληρωμή παρέχεται μόνο για τα εκτελούμενα αιτήματα: αποστολή μηνυμάτων στο SNS, αποστολή μηνυμάτων από το SNS σε άλλες υπηρεσίες και άλλα πρόσθετα αιτήματα από τη δεξαμενή API του SNS.
RDS
Η υπηρεσία σχεσιακής βάσης δεδομένων της Amazon είναι απλώς μια εξωτερική βάση δεδομένων. Με την υπηρεσία αυτή η AWS επιτρέπει την εύκολη εγκατάσταση, χρήση και κλιμάκωση μιας σχεσιακής βάσης δεδομένων. Για παράδειγμα, εάν αναμένετε ότι η βάση δεδομένων σας θα έχει αρκετά σημαντικό μέγεθος και θα αυξάνεται όλο και περισσότερο κάθε μέρα, και σκοπεύετε να εκτελείτε τακτικά περισσότερο ή λιγότερο σύνθετες λειτουργίες με τη χρήση της, π.χ. επεξεργασία και αντιγραφή δεδομένων σε άλλη βάση δεδομένων, αξίζει να εξετάσετε αυτή τη λύση. Οι διαθέσιμες μηχανές βάσεων δεδομένων περιλαμβάνουν τις PostgreSQL, MySQL και MariaDB.
Είναι εύκολο να μαντέψει κανείς ότι το κόστος του RDS σχετίζεται με το μέγεθος της βάσης δεδομένων και τη χρήση της, οπότε είναι δύσκολο να πει κανείς αν θα είναι πολύ ακριβό ή όχι.

Περίληψη
Το AWS αλλάζει συνεχώς, είτε πρόκειται για τη βελτίωση των υφιστάμενων υπηρεσιών είτε για τη δημιουργία κάτι νέου. Δεν είναι μόνο προτιμότερο να ενημερώνεστε για τις τεχνολογικές καινοτομίες τους, αλλά και να γνωρίσετε τα ήδη υπάρχοντα πράγματα.
Χρήσιμοι σύνδεσμοι