מדריך לאוטומטיזציה של פריסת תשתית AWS

כשזה מגיע לניהול תשתיות בענן, AWS מספקת מספר כלים רבי עוצמה שעוזרים לאוטומט את יצירת וניהול המשאבים.

אחת הדרכים היעילות ביותר לטפל בפריסה היא באמצעות AWS CloudFormation. זה מאפשר לך להגדיר את התשתיות שלך בדרך הצהרתית, מה שמקל על אוטומציה של אספקת שירותי AWS, כולל Elastic Beanstalk, יישומים ללא שרת, מופעי EC2, קבוצות אבטחה, מאזן העומסים ועוד.

במדריך הזה, נחקור איך להשתמש ב-AWS CloudFormation כדי לפרוס תשתיות בצורה תוכנית. נדבר גם על איך לפרוס משאבים ידנית באמצעות קונסולת ניהול AWS ואיך לשלב שירותים כמו Elastic Beanstalk, פונקציות ללא שרת, EC2, IAM ומשאבים אחרים של AWS בתהליך האוטומטי שלך.

שימוש ב-AWS CloudFormation לתשתיות כקוד

AWS CloudFormation מאפשרת לך להגדיר את התשתיות שלך באמצעות קוד. CloudFormation מספקת מסגרת אחידה לאוטומט ולגרסה של התשתיות שלך על ידי הקמת Elastic Beanstalk, מופעי EC2, VPCs, תפקידי IAM, פונקציות Lambda או יישומים ללא שרת.

תבניות CloudFormation נכתבות בפורמט YAML או JSON, והן מגדירות את המשאבים שאתה צריך לאספק. עם CloudFormation, אתה יכול לאוטומט את כל מהפשוט ביותר ועד לסביבות מורכבות עם מספר שירותים.

מאפייני עיקר של CloudFormation

  • הגדרת תצורה דקלרטיבית. תיאר את המצב הרצוי של התשתית שלך, ו-CloudFormation תבטיח שהמצב הנוכחי יתאים לו. 
  • ניהול משאבים. מציע ומנהל באופן אוטומטי משאבי AWS כמו מקרים EC2, מסדי נתונים RDS, VPCs, פונקציות Lambda, תפקידי IAM ועוד.
  • עדכוני מחסנית דקלרטיביים. אם תרצה לשנות את התשתית שלך, פשוט עדכן את התבנית של CloudFormation והיא תכוון את המשאבים שלך למצב הרצוי החדש.

שלבים לשימוש ב-CloudFormation לפריסות שונות ב-AWS

פריסת Elastic Beanstalk עם CloudFormation

1. כתוב תבנית של CloudFormation

צור תבנית CloudFormation בפורמט YAML או JSON כדי להגדיר את היישום והסביבה של Elastic Beanstalk שלך. התבנית יכולה לכלול משאבים כמו מקרים EC2, קבוצות אבטחה, מדיניות התאמת גודל, ואף את היישום של Elastic Beanstalk עצמו.

דוגמה לתבנית של CloudFormation (Elastic Beanstalk):

YAML

 

2. פרוץ את מחסנית ה-CloudFormation

השתמש ב-AWS CLI או ב-לוח הבקרה של AWS כדי להפעיל את מחסנית ה-CloudFormation. לאחר הפריצה, CloudFormation תיצור באופן אוטומטי את כל המשאבים שהוגדרו בתבנית.

פריצה דרך AWS CLI:

YAML

 

פריסת Serverless עם AWS Lambda, API Gateway ו-DynamoDB

CloudFormation מצוין גם לפריסת יישומים ללא שרת. עם שירותים כמו AWS Lambda, API Gateway, DynamoDB ו-S3, ניתן לנהל בקלות עומסי עבודה ללא שרת.

1. צור תבנית CloudFormation ללא שרת

תבנית זו תכלול פונקציית Lambda, API Gateway לגישה לפונקציה, וטבלת DynamoDB.

דוגמה לתבנית CloudFormation (ללא שרת):

YAML

 

2. פרוס את הסטאק ללא שרת

פרוס את היישום ללא שרת שלך באמצעות AWS CLI או AWS Management Console.

YAML

 

פריסת VPC ו-EC2

CloudFormation יכולה לאוטומט את יצירת ענן פרטי וירטואלי (VPC), תתי-רשתות, קבוצות אבטחה, ודוגמאות EC2 עבור עומסי עבודה מסורתיים יותר.

1. תבנית CloudFormation עבור VPC ו-EC2

תבנית זו מגדירה דוגמת EC2 פשוטה בתוך VPC, עם קבוצת אבטחה המאפשרת תעבורת HTTP.

דוגמה לתבנית CloudFormation (VPC ו-EC2):

YAML

 

2. פרוס את הסטאק

YAML

 

תכונות מתקדמות של CloudFormation

AWS CloudFormation מציעה יותר מאשר פשוט אספקת משאבים. הנה כמה מהתכונות המתקדמות שהופכות את CloudFormation לכלי חזק לאוטומציה של תשתיות:

  • סטאק סטים. צור וניהול סטאק על פני מספר חשבונות AWS ואזורים, מה שמאפשר פריסה עקבית של תשתיות ברחבי הארגון שלך.
  • שינויי סטים. לפני החלטת השינויים על הערכת CloudFormation שלך, תצג את השינויים באמצעות סט שינויים כדי לוודא את התוצאה הרצויה.
  • פלטים. ערכי פלט מתוך CloudFormation שבאפשרותך להשתמש בהם עבור ערימות או אפליקציות אחרות. לדוגמה, להפיק בפלט את כתובת ה-URL של Gateway API או כתובת ה-IP של מכונת EC2.
  • פרמטרים. שלח פרמטרים על מנת להתאים אישית את הערימה שלך מבלי לשנות את התבנית עצמה, עשוי להפוך אותה לניתנת לשימוש בסביבות שונות.
  • מיפויים. צור זוגות מפתח-ערך למיפוי ערכי התצורה, כמו ערכי ספציפיים לאזורי AWS, סוגי מכונות או פרמטרים אחרים המיועדים לסביבה מסוימת.

שימוש ב-CloudFormation עם שירותי AWS מעבר ל- Elastic Beanstalk

CloudFormation אינה מוגבלת רק לפרסומי Elastic Beanstalk – זהו כלי גמיש שניתן לשימוש עם מגוון של שירותי AWS, כולל:

  • AWS Lambda. אוטומציה של הפרסום של פונקציות serverless יחד עם טריגרים כמו Gateway API, S3 או אירועי DynamoDB.
  • Amazon S3. השתמש ב-CloudFormation ליצירת קעריות S3 ולניהול התצורה שלהן.
  • AWS IAM. אוטומציה של יצירת תפקיד IAM ומדיניות כדי לשלוט בגישה אל המשאבים שלך.
  • Amazon RDS. הגדר בסיסי נתונים RDS (MySQL, PostgreSQL, וכו') עם כל ההגדרות הקשורות כמו הגדרות VPC, תתי-רשתות וקבוצות אבטחה.
  • Amazon SQS, SNS. לנהל תורים ונושאים עבור ארכיטקטורת היישום שלך באמצעות CloudFormation.
  • Amazon ECS ו־EKS. לאוטומציה של יצירה ופרסום של יישומים בקונטיינרים בעזרת שירותים כמו ECS ו־EKS.

פרסום תשתית ידנית מממשק הניהול של AWS

בעוד CloudFormation מאוטומטת את התהליך, לעיתים יש צורך בהתערבות ידנית. ממשק הניהול של AWS מאפשר לך לפרסם משאבים ידנית.

1. אפליקציית Elastic Beanstalk

  • עבור לממשק הניהול של Elastic Beanstalk.
  • לחץ על "יצירת אפליקציה", עקוב אחר השלבים להגדרת שם האפליקציה והפלטפורמה (כמו Docker, Node.js), ואז להגדיר באופן ידני את הסביבה, הגיוס והאפשרויות האבטחה.

2. אפליקציות ללא שרתים (Lambda + API Gateway)

  • עבור לממשק הניהול של Lambda כדי ליצור ולפרסם פונקציות.
  • השתמש בממשק הניהול של API Gateway כדי ליצור ממשקי API עבור פונקציות ה־Lambda שלך.

3. מקרים של EC2

  • הפעלת מקרים של EC2 מממשק הניהול של EC2 והגדרתם עם סוג המקרה, קבוצות האבטחה וזוגות המפתחות שנבחרו.

מסקנה

CloudFormation של AWS מספקת דרך עקביתה וחוזרת לניהול תשתיות ליישומי Elastic Beanstalk, ארכיטקטורות ללא שרתים ויישומי EC2. עם התכונות המתקדמות שלה כמו Stack Sets, Change Sets ו־Parameters, CloudFormation יכולה להתקשר עם צרכי הסביבות המורכבות.

עבור כל מי שמנהל סביבות AWS גדולות או דינמיות, CloudFormation הוא כלי חיוני להבטחת עקביות, אבטחה ואוטומציה בכל ההתקנות שלך ב- AWS.

Source:
https://dzone.com/articles/automate-aws-infrastructure-deployment