ದೊಡ್ಡಗಾತ್ರದ infrastructure ಟೆರಾಫಾರ್ಮ್ ನೊಂದಿಗೆ

ಮೂಲ: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraform

ಈ ಉದಾಹರಣೆಯು ದೊಡ್ಡ ಗಾತ್ರದ infrastructure ಗಾಗಿ ಟೆರಾಫಾರ್ಮ್ ಕಾಂಫಿಗುರೇಷನ್ ಗಳನ್ನು ರಚಿಸುವ ಉದಾಹರಣೆಯಾಗಿ ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ:

  • 2 AWS ಖಾತೆಗಳು

  • 2 ಪ್ರದೇಶಗಳು

  • 2 ಪ್ರತ್ಯೇಕ ಪರಿಸರಗಳು (prod ಮತ್ತು stage ಏನನ್ನೂ ಹಂಚಿಕೊಳ್ಳುವುದಿಲ್ಲ). ಪ್ರತಿಯೊಂದು ಪರಿಸರವು ಪ್ರತ್ಯೇಕ AWS ಖಾತೆಯಲ್ಲಿ ವಾಸಿಸುತ್ತದೆ ಮತ್ತು 2 ಪ್ರದೇಶಗಳ ನಡುವಿನ ವ್ಯಾಪ್ತಿಯ ಸಂಪನ್ಮೂಲಗಳು

  • ಪ್ರತಿ ಪರಿಸರವು ಟೆರ್ರಾಫಾರ್ಮ್ ರಿಜಿಸ್ಟ್ರಿಯಿಂದ ಆಫ್-ದಿ-ಶೆಲ್ಫ್ infrastructure ಮಾಡ್ಯೂಲ್ (alb) ನ ವಿಭಿನ್ನ ಆವೃತ್ತಿಯನ್ನು ಬಳಸುತ್ತದೆ

  • ಪ್ರತಿ ಪರಿಸರವು ಆಂತರಿಕ ಮಾಡ್ಯೂಲ್ modules/network ಅದೇ ಆವೃತ್ತಿಯನ್ನು ಬಳಸುತ್ತದೆ ಏಕೆಂದರೆ ಇದು ಸ್ಥಳೀಯ ಡೈರೆಕ್ಟರಿಯಿಂದ ಹೊಂದಲ್ಪಟ್ಟಿದೆ.

ಇಲ್ಲಿ ವಿವರಿಸಿರುವಂತಹ ದೊಡ್ಡ ಪ್ರಾಜೆಕ್ಟ್ ನಲ್ಲಿ ಟೆರಾಗ್ರಂಟ್ ಅನ್ನು ಬಳಸುವ ಪ್ರಯೋಜನಗಳು ಬಹಳಷ್ಟು ಇವೆ. Code Structures examples with Terragrunt ನೋಡಿ.

  • Infrastructure ಅನ್ನು ತಾರ್ಕಿಕವಾಗಿ ಪ್ರತ್ಯೇಕಿಸಿದ ಯೋಜನೆಗಳಿಗೆ ಉತ್ತಮ (ಪ್ರತ್ಯೇಕ AWS ಖಾತೆಗಳು)

  • AWS ಖಾತೆಗಳ ನಡುವೆ ಹಂಚಿಕೊಳ್ಳಲಾದ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಮಾರ್ಪಡಿಸುವ ಅಗತ್ಯವಿಲ್ಲದಿದ್ದಾಗ ಒಳ್ಳೆಯದು (ಒಂದು ಪರಿಸರ = ಒಂದು AWS ಖಾತೆ = ಒಂದು ಸ್ಟೇಟ್ ಫೈಲ್)

  • ಪರಿಸರಗಳ ನಡುವಿನ ಬದಲಾವಣೆಗಳ orchestration ಅಗತ್ಯವಿಲ್ಲದಿದ್ದಾಗ ಒಳ್ಳೆಯದು

  • Infrastructure ಸಂಪನ್ಮೂಲಗಳು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಪರಿಸರಕ್ಕೆ ವಿಭಿನ್ನವಾಗಿರುವಾಗ ಮತ್ತು ಸಾಮಾನ್ಯೀಕರಿಸಲಾಗದಿದ್ದಾಗ ಒಳ್ಳೆಯದು (ಉದಾ, ಕೆಲವು ಸಂಪನ್ಮೂಲಗಳು ಒಂದು ಪರಿಸರದಲ್ಲಿ ಅಥವಾ ಕೆಲವು ಪ್ರದೇಶಗಳಲ್ಲಿ ಇರುವುದಿಲ್ಲ)

ಪ್ರಾಜೆಕ್ಟ್ ಬೆಳೆದಂತೆ, ಈ ಪರಿಸರಗಳನ್ನು ಪರಸ್ಪರ ನವೀಕೃತವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಲು ಕಷ್ಟವಾಗುತ್ತದೆ. ಪುನರಾವರ್ತಿತ ಕಾರ್ಯಗಳಿಗಾಗಿ infrastructure ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು (ಆಫ್-ದಿ-ಶೆಲ್ಫ್ ಅಥವಾ ಆಂತರಿಕ) ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ.

Last updated