ದೊಡ್ಡಗಾತ್ರದ 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