Χθες το βράδυ, ήθελα να παίξω με το AWS ECS Service. Έγραψα έναν terraform κώδικα για να κάνω deploy τα πάντα ταυτόχρονα. Το terraform δημιουργεί όλους τους πόρους για να τρέξει ECS σε διαφορετικό VPC, απομονωμένο από τους άλλους πόρους σου.

Χρησιμοποίησα την nginx:alpine docker image για αυτό το project αλλά αν χρειαστεί, μπορείς να τροποποιήσεις ή να αλλάξεις το terraform και να το προσαρμόσεις στις ανάγκες σου.

Τι είναι το AWS ECS;

Το Amazon Elastic Container Service (Amazon ECS) είναι μια fully managed container orchestration υπηρεσία. Οι πελάτες χρησιμοποιούν το ECS για να τρέχουν τις πιο ευαίσθητες και mission-critical εφαρμογές τους λόγω της ασφάλειας, της αξιοπιστίας και της επεκτασιμότητάς του.

Το ECS είναι μια εξαιρετική επιλογή για να τρέχεις containers για διάφορους λόγους. Πρώτον, μπορείς να επιλέξεις να τρέχεις τα ECS clusters σου χρησιμοποιώντας AWS Fargate, το οποίο είναι serverless compute για containers. Το Fargate αφαιρεί την ανάγκη για provisioning και διαχείριση servers, σου επιτρέπει να καθορίζεις και να πληρώνεις για πόρους ανά εφαρμογή και βελτιώνει την ασφάλεια μέσω application isolation by design. Δεύτερον, το ECS χρησιμοποιείται εκτενώς μέσα στην Amazon για να τροφοδοτεί υπηρεσίες όπως το Amazon SageMaker, το AWS Batch, το Amazon Lex και τη recommendation engine του Amazon.com, διασφαλίζοντας ότι το ECS είναι εκτενώς δοκιμασμένο για ασφάλεια, αξιοπιστία και διαθεσιμότητα.

Επιπλέον, επειδή το ECS είναι θεμελιώδης πυλώνας για βασικές υπηρεσίες της Amazon, μπορεί να ενσωματωθεί εγγενώς με άλλες υπηρεσίες όπως Amazon Route 53, Secrets Manager, AWS Identity and Access Management (IAM) και Amazon CloudWatch, παρέχοντάς σου μια οικεία εμπειρία για deploy και scale των containers σου. Το ECS μπορεί επίσης να ενσωματωθεί γρήγορα με άλλες AWS υπηρεσίες για να φέρει νέες δυνατότητες στο ECS. Για παράδειγμα, το ECS επιτρέπει στις εφαρμογές σου την ευελιξία να χρησιμοποιούν έναν συνδυασμό Amazon EC2 και AWS Fargate με επιλογές τιμολόγησης Spot και On-Demand. Το ECS ενσωματώνεται επίσης με το AWS App Mesh, το οποίο είναι ένα service mesh, για να φέρει πλούσια παρατηρησιμότητα, έλεγχο κίνησης και χαρακτηριστικά ασφαλείας στις εφαρμογές σου. Το ECS έχει αναπτυχθεί ραγδαία από το λανσάρισμά του και επί του παρόντος εκκινεί 5 φορές περισσότερα containers ανά ώρα από όσα EC2 instances εκκινεί.

Repository

Μπορείς να δεις το repository μέσω https://github.com/flightlesstux/aws-ecs-nginx-app και αν χρειαστεί, μπορείς να χρησιμοποιήσεις τον κώδικα για να κάνεις deploy ή να κατανοήσεις πώς λειτουργεί το ECS.