הגדרה וקונפיגורציה של CodeDeploy

שימו לב! המאמר עדיין לא גמור ורק חלק מהשלבים הרלוונטים מפורטים ומוסברים בו.

  1. אנו צריכים ליצור משתמש IAM (משתמש Non-admin) עם פוליסת CodeDeploy על מנת לאפשר לו לנהל את כל מה שקשור לCodeDeploy. לחילופין אנו יכולים לשדך את הפוליסה ל"קבוצה" ולשייך את המשתמש שיצרנו לאותה קבוצה.
  2. יצירת Instance Profile – מאפשר לנו לתת גישה לקוד רפוסיטי שלנו לEC2.
  3. יצירת Service Role – יאפשר לCodeDeploy להתקשר עם שירותים נוספים של AWS
  4. התקנת AWS CLI (מומלץ)

בשלב הראשון ניצור משתמש IAM חדש בשם MyCodeDeployUser

על מנת ליצור פוליסה מתאימה, נלחץ על AMI ואז של Policies.שם נלחץ על Create Policy

ואז נבחר באופציה CodeDeploy ונבחר את הפוליסה בשם "AWSCodeDeployFullAccess" או פוליסה אחרת שמתאימה לנו בהתאם לצורך.

לאחר מכן אנו צריכים להצמיד את הפוליסה למשתמש שאנו מעוניינים שיהיו לו את כל ההרשאות הקשורות לניהול CodeDeploy. נעשה זאת על ידי בחירת המשתמש MyCodeDeployUser תחת משתמשי הIAM שלנו ואז נלחץ על הוספת הרשאות. (בתמונה שם הפוליסה הוא MyCodeDeployPolicy אבל אצלכם שם הפוליסה יהיה AwsCodeDeployFullAccess

הגדרת Service Role מתאים לEC2

ניגש לIAM ואז לRoles, ואז נלחץ על Create Role.
ברשימת השירותים נבחר את השירות CodeDeploy וב Use Case נבחר "CodeDeploy"


ניתן שם לRole ונקרא לו CodeDeployServiceRole

מה זה CodeDeploy

CodeDeploy הוא שירות של AWS שמאפשר לנו להפוך את תהליך הDeployment שלנו לאוטומטי.

ייתרונות:
* Scale – ניתן לעשות דפלוי לשרת אחד או לאלפי שרתים ביחד
* שליטה – מאפשר לנו לקבל עדכונים ודוחות עם מידע לגבי מתי ומה דפלויד למערכת.
* צימצום זמן הDown Time שלנו – מאפשר שיטות דפלוי שונות כמו Rolling Updates ועוד.
* ניתן לעשות שימוש בCodeDeploy בכל שפה או טכנולוגיה – בתנאי שהקוד מנוהל במנוע מסוג GIT כמו CodeCommit לדוגמה או שהקוד שלנו יושב בS3
* ניתן לעשות דפלוי לשרתי EC2, לקונטיינרים או לSERVERLESS

למה אנחנו יכולים לעשות דפלוי?
* כמובן לקוד שלנו
* פונקציות Lambada
* סקריפטים
* קבצי מולטימדיה
ועוד…