Πηγή: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/medium-terraform
Αυτό το παράδειγμα περιέχει κώδικα ως παράδειγμα δόμησης των ρυθμίσεων Terraform για μια μεσαίου μεγέθους υποδομή που χρησιμοποιεί:
2 λογαριασμούς AWS
2 ξεχωριστά περιβάλλοντα (prod και stage που δεν διαμοιράζονται τίποτα). Κάθε περιβάλλον ζει σε ξεχωριστό λογαριασμό AWS
Κάθε περιβάλλον χρησιμοποιεί διαφορετική έκδοση της έτοιμης μονάδας υποδομής (alb) που προέρχεται από το
Κάθε περιβάλλον χρησιμοποιεί την ίδια έκδοση μιας εσωτερικής μονάδας modules/network, καθώς προέρχεται από έναν τοπικό κατάλογο.
Ιδανικό για έργα όπου η υποδομή διαχωρίζεται λογικά (ξεχωριστοί λογαριασμοί AWS)
Καλό όταν δεν υπάρχει ανάγκη τροποποίησης πόρων που διαμοιράζονται μεταξύ λογαριασμών AWS (ένα περιβάλλον = ένας λογαριασμός AWS = ένα αρχείο κατάστασης)
Καθώς το έργο μεγαλώνει, θα είναι πιο δύσκολο να διατηρούνται αυτά τα περιβάλλοντα ενημερωμένα μεταξύ τους. Εξετάστε το ενδεχόμενο χρήσης μονάδων υποδομής (έτοιμων ή εσωτερικών) για επαναλαμβανόμενες εργασίες.
Καλό όταν οι πόροι υποδομής είναι διαφορετικοί ανά περιβάλλον επίτηδες και δεν μπορούν να γενικευτούν (π.χ. κάποιοι πόροι απουσιάζουν από ένα περιβάλλον ή από ορισμένες περιοχές)
Τα παρακάτω είναι τα άρθρα αυτής της ενότητας:
Υποδομή μικρού μεγέθους με Terraform
Υποδομή μεσαίου μεγέθους με Terraform
Υποδομή μεγάλου μεγέθους με Terraform
Πηγή: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraform
Αυτό το παράδειγμα περιέχει κώδικα ως παράδειγμα δόμησης των ρυθμίσεων της Terraform για μια υποδομή μεγάλου μεγέθους που χρησιμοποιεί:
2 λογαριασμούς AWS
2 regions
2 ξεχωριστά περιβάλλοντα (prod και stage που δεν διαμοιράζονται τίποτα). Κάθε περιβάλλον ζει σε ξεχωριστό λογαριασμό AWS και καλύπτει πόρους μεταξύ 2 regions
Κάθε περιβάλλον χρησιμοποιεί διαφορετική έκδοση της έτοιμης μονάδας υποδομής (alb) που προέρχεται από το .
Κάθε περιβάλλον χρησιμοποιεί την ίδια έκδοση μιας εσωτερικής μονάδας modules/network, καθώς προέρχεται από έναν τοπικό κατάλογο.
Ιδανικό για έργα όπου η υποδομή είναι λογικά διαχωρισμένη (ξεχωριστοί λογαριασμοί AWS)
Καλό όταν δεν υπάρχει ανάγκη τροποποίησης πόρων που διαμοιράζονται μεταξύ λογαριασμών AWS (ένα περιβάλλον = ένας λογαριασμός AWS = ένα αρχείο κατάστασης)
Καθώς το έργο μεγαλώνει, θα είναι πιο δύσκολο να διατηρούνται αυτά τα περιβάλλοντα ενημερωμένα μεταξύ τους. Εξετάστε το ενδεχόμενο χρήσης μονάδων υποδομής (έτοιμων ή εσωτερικών) για επαναλαμβανόμενες εργασίες.
Καλό όταν οι πόροι υποδομής είναι διαφορετικοί ανά περιβάλλον επίτηδες και δεν μπορούν να γενικευτούν (π.χ. κάποιοι πόροι απουσιάζουν από ένα περιβάλλον ή από ορισμένες περιοχές)
Πηγή: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/small-terraform
Αυτό το παράδειγμα περιέχει κώδικα ως παράδειγμα δόμησης των ρυθμίσεων του Terraform για μια υποδομή μικρού μεγέθους, όπου δεν χρησιμοποιούνται εξωτερικές εξαρτήσεις.
Ιδανικό για να ξεκινήσετε και να αναδιαμορφώσετε καθώς προχωράτε
Ιδανικό για μικρές ενότητες πόρων
Καλό για μικρές και γραμμικές ενότητες υποδομής (π.χ. )
Καλό για μικρό αριθμό πόρων (λιγότερους από 20-30)
Το ενιαίο αρχείο κατάστασης για όλους τους πόρους μπορεί να κάνει τη διαδικασία εργασίας με το Terraform αργή αν ο αριθμός των πόρων αυξάνεται (εξετάστε το ενδεχόμενο να χρησιμοποιήσετε ένα όρισμα -target για να περιορίσετε τον αριθμό των πόρων)