אוטומציה של בדיקת תשתיות AWS עם Terratest

ארגונים המאמצים תשתית כקוד (IaC) על AWS לעיתים קרובות מתקשים להבטיח שהתשתית שלהם לא רק מסופקת כראוי אלא גם מתפקדת כפי שהתכוונו לאחר שהועלתה. גם תקלות קונפיגורציה מינוריות יכולות להוביל להפסקות עלות, פגיעויות אבטחה או בעיות ביצועים.

שיטות בדיקה מסורתיות – כמו בדיקה ידנית של משאבים או הסתמכות רק על ניתוח קוד סטטי – אינן מספקות ביטחון מספיק עבור סביבות ייצור. יש צורך דחוף בדרך אוטומטית ואמינה לאמת את שינויים בתשתית AWS לפני שהם נכנסים לפעולה.

פתרון

Terratest מספקת מסגרת בדיקה אוטומטית שכתובה ב-Go, שנועדה במיוחד לבדוק קוד תשתית בסביבות ענן בעולם האמיתי כמו AWS. על ידי פריסה, אימות והרס של משאבים באופן תכנותי, Terratest מגשרת על הפער בין כתיבת IaC (למשל, Terraform) לבין שליחת שינויים בביטחון. הנה איך זה עובד:

להלן מדריך מפורט כיצד להשיג בדיקות תשתית AWS באמצעות Terratest עם Terraform, יחד עם קטעי קוד לדוגמה ב-Go. זרימת העבודה הזו תעזור לך לספק משאבי AWS, להריץ בדיקות נגדן כדי לוודא שהן פועלות כפי שהתכוונת, ולאחר מכן לפרק הכל אוטומטית.

דרישות מוקדמות

התקנת Terraform

הורד והתקן את Terraform מהאתר הרשמי.

התקנת Go

Terratest נכתבת ב-Go, לכן תצטרך להתקין את Go. הורד את Go מהאתר הרשמי.

הגדרת אישורי AWS

ודא שאישורי AWS שלך מוגדרים (למשל, דרך ~/.aws/credentials או משתני סביבה כמו AWS_ACCESS_KEY_ID וAWS_SECRET_ACCESS_KEY).

אתחול מודול Go

בתיקיית הפרויקט שלך, הרץ:

Shell

 

הוסף את Terratest לgo.mod

בתיקיית הפרויקט/מאגר שלך, הרץ:

Shell

 

דוגמת קונפיגורציית Terraform

צור קונפיגורציית Terraform פשוטה שמשיקה מופע EC2 של AWS. שים את הקבצים הבאים בתיקייה בשם aws_ec2_example (או כל שם אחר שתרצה).

שמור את זה כmain.tf להפניה.

Shell

 

לאחר מכן, variables.tf:

Shell

 

קטע קוד Terratest

צור קובץ בדיקה ב-Go בתיקייה בשם test (או תוכל לקרוא לזה בכל שם, אבל test הוא שם מקובל). לדוגמה, aws_ec2_test.go:

Shell

 

מה הבדיקה הזו עושה

  • מאתחל ומיישם את קונפיגורציית Terraform ב../aws_ec2_example.
  • מפרסם מופע EC2 עם ה-AMI שצוין באזור us-east-1.
  • לוכד את הפלט instance_id של Terraform.
  • מאמת שה-ID של המופע אינו ריק באמצעות ספריית ההצהרות של Testify.
  • הורס את המשאבים בסוף הבדיקה כדי למנוע עלויות מתמשכות.

הרצת הבדיקות

  • נווט לתיקייה המכילה את קובץ הבדיקה של Go שלך (למשל, תיקיית הבדיקות).
  • הרץ את הפקודה הבאה:
Shell

 

  • שמור על הפלט:
    • תראה את Terraform מאתחל ומיישם את התשתית שלך ב-AWS.
    • לאחר שההצהרות של הבדיקה מצליחות, Terraform יפרק את המשאבים.

סיכום

על ידי ביצוע הצעדים הללו, תוכל לשלב את Terratest בתהליך העבודה של AWS IaC שלך כדי:

  • לספק משאבים ב-AWS באמצעות Terraform.
  • לבדוק אותם בצורה תוכנתית עם בדיקות מבוססות Go.
  • לאמת שהתשתית שלך מוגדרת כראוי ופועלת כפי שמצופה.
  • פרוס אוטומטית כדי להבטיח שאינך סובל מעלויות AWS מיותרות ושאתה שומר על סביבה נקייה להרצת בדיקות חוזרות.

Source:
https://dzone.com/articles/terratest-for-aws