Code Deployment Automation ด้วย AWS CodeCommit & CodeDeploy

เผยแพร่แล้ว: 2022-03-25

Automate Code Deployment with AWS CodeCommit & CodeDeploy

ในฐานะนักพัฒนาเว็บ งานของคุณอาจมีงานที่ซับซ้อนหลายอย่าง เช่น การปรับใช้โค้ดอัตโนมัติไปยังเซิร์ฟเวอร์ที่ใช้งานจริง หรือหากคุณทำงานเป็นกลุ่มและประสบปัญหาขณะอัปโหลดโค้ดของคุณไปยังเว็บไซต์ที่ใช้งานจริง โพสต์บล็อกนี้เป็นวิธีแก้ปัญหาทั้งหมด ปัญหา.

เมื่อใช้ FTP คุณต้องเขียนทับโค้ดของผู้ร่วมพัฒนาร่วมของคุณ ซึ่งเป็นปัญหาที่พบได้บ่อยและเกิดขึ้นกับพวกเราส่วนใหญ่ คู่มือนี้จะแสดงให้คุณเห็นถึงการปรับใช้โค้ดอัตโนมัติด้วยบริการ AWS CodeCommit, CodeDeploy และไปป์ไลน์

ภาพรวมเทคโนโลยี:

  1. AWS CodeCommit : เราจะใช้ CodeCommit เพื่อรักษาที่เก็บของเรา (เนื้อหาเว็บ/ไฟล์โค้ด) ที่จะเก็บไฟล์โครงการทั้งหมดและบันทึกการคอมมิต
  2. เซิร์ฟเวอร์ EC2 : เราจะใช้ EC2 เป็นเซิร์ฟเวอร์ที่ใช้งานจริง โดยจะมีไซต์และโค้ดที่ใช้งานจริงสำหรับผู้เยี่ยมชมเว็บไซต์ของคุณ
  3. AWS CodeDeploy : จะเก็บแอปพลิเคชันไว้เพื่อเผยแพร่รหัสของคุณไปยังเซิร์ฟเวอร์ EC2 นอกจากนี้ เราจะสร้าง Deployment Group ซึ่งจะเก็บชื่อ/แท็กของอินสแตนซ์ EC2 เป้าหมายที่เราต้องการเผยแพร่โค้ดของเรา
  4. ไปป์ไลน์ : เราจะเลือก CodeCommit เป็นซอร์สและ CodeDeploy เป็นขั้นตอนการปรับใช้ของเรา ดังนั้น เมื่อใดก็ตามที่ตรวจพบการเปลี่ยนแปลงโค้ดใน CodeCommit ไปป์ไลน์จะทำงานและพุชการเปลี่ยนแปลงโค้ดเหล่านั้นไปที่ CodeDeploy (EC2 Instance)

Code Deployment Automation: อธิบายโดยละเอียด :

กำลังมองหา AWS EXPERTS อยู่ใช่ไหม ชำระเงินที่นี่

การสร้างผู้ใช้ IAM และ Git สำหรับ Code Deployment Automation

ก่อนอื่นเราต้องสร้างผู้ใช้ IAM และผู้ใช้ Git ที่จะทำการเปลี่ยนแปลงโค้ดและเผยแพร่บนเซิร์ฟเวอร์การปรับใช้

  1. สร้างผู้ใช้ IAM
    1. อนุญาตให้เข้าถึง : AWSCodeCommitFullAccess, AWSCodeDeployFullAccess, AWSCodeCommitPowerUser คุณจะพบตัวเลือกนี้ในแท็บ "แนบนโยบายที่มีอยู่โดยตรง"
  2. ตอนนี้ เข้าสู่ระบบด้วยผู้ใช้ IAM นี้
  3. คลิกที่ Security Credentials จากมุมบนขวา
  4. คลิกที่ แท็บ ข้อมูลประจำตัว AWS CodeCommit
  5. ใต้ส่วน "ข้อมูลรับรอง HTTPS Git สำหรับ AWS CodeCommit" ให้คลิกปุ่ม สร้าง ข้อมูลรับรอง
  6. ตอนนี้ คัดลอกชื่อผู้ใช้และรหัสผ่านนั้นในที่ปลอดภัย นี่จะเป็นชื่อผู้ใช้และรหัสผ่านหลักของ Git ของคุณเพื่อผลัก/ดึงการเปลี่ยนแปลงรหัส

การสร้างที่เก็บใน CodeCommit

ตอนนี้ มาสร้างพื้นที่เก็บข้อมูลที่จะเก็บรหัสที่แน่นอนของคุณ

  1. ไปที่ CodeCommit Dashboard จากผู้ใช้ IAM
  2. ที่มุมบนขวา ให้เลือกภูมิภาคที่คุณต้องการสร้างที่เก็บของคุณ
  3. คลิกที่สร้างที่เก็บ ตั้งชื่อ คำอธิบาย และคลิกที่สร้าง
  4. ใต้ส่วน " โคลนที่เก็บ " คุณจะเห็น URL ของที่เก็บของคุณ เก็บไว้ในที่ปลอดภัย จะมีลักษณะดังนี้: https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/HarryTest

Creating a Repository in CodeCommit

กำลังมองหา AWS EXPERTS อยู่ใช่ไหม ชำระเงินที่นี่

กำลังอัปโหลดไฟล์โครงการของคุณเป็นครั้งแรก

  1. เปิด พรอมต์คำสั่ง ของระบบในพื้นที่ของคุณที่มีรหัสเดิมอยู่
  2. ในพรอมต์คำสั่ง นำทางไปยังเส้นทางที่โค้ดของคุณอยู่
  3. ตอนนี้ ให้รันคำสั่งต่อไปนี้เพื่อพุชโค้ดของคุณไปยังที่เก็บ AWS เป็นครั้งแรก:

git init
git config –local init.defaultBranch หลัก
git config –global init.defaultBranch หลัก
git เพิ่ม ## สิ่งนี้จะคอมมิตไฟล์ทั้งหมดของโครงการ
git commit –m “การคอมมิตเริ่มต้น”
git push https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/HarryTest –all

Uploading your project file for the first time

  • สร้างอินสแตนซ์ EC2 และติดตั้ง CodeDeploy Agent
  1. สร้างบทบาทอินสแตนซ์
    1. เปิดคอนโซล AWS IAM ของคุณ
    2. ไปที่แท็บบทบาท >> สร้างบทบาท
    3. ภายใต้ Select type of trusted entity ให้เลือก AWS service ภายใต้ 'เลือกกรณีการใช้งาน' เลือก EC2 ภายใต้ 'เลือกกรณีการใช้งานของคุณ' เลือก EC2 เลือกถัดไป: การ อนุญาต
    4. ค้นหาและเลือกนโยบายที่ชื่อ AmazonEC2RoleforAWSCodeDeploy จากนั้นเลือก ถัดไป: แท็
    5. เลือกถัดไป: ตรวจทาน ป้อนชื่อสำหรับบทบาท (เช่น EC2InstanceRole ) แล้ว คลิก Create
  2. สร้างอินสแตนซ์ EC2
    1. ไปที่คอนโซล EC2 คลิกที่เปิดตัวอินสแตนซ์
    2. เลือก Amazon Machine Image (AMI) ค้นหา Amazon Linux 2 AMI (HVM) SSD Volume Type แล้วเลือก Select (AMI นี้มีป้ายกำกับว่า "มีสิทธิ์ใน Free Tier" และอยู่ที่ด้านบนสุดของรายการ)
    3. เลือก หน้าประเภทอินสแตนซ์ เลือกประเภท t2.micro ที่เข้าเกณฑ์ฟรีเป็นการกำหนดค่าฮาร์ดแวร์สำหรับอินสแตนซ์ของคุณ จากนั้นเลือก ถัดไป: กำหนดค่ารายละเอียดอิน สแตน ซ์
    4. กำหนดค่าหน้ารายละเอียดอินสแตนซ์ ทำดังต่อไปนี้:
      1. ในจำนวนอินสแตนซ์ ให้ ป้อน 1
      2. ในการกำหนด IP สาธารณะอัตโนมัติ ให้ เลือก เปิดใช้ งาน
      3. ในบทบาท IAM ให้เลือกบทบาท IAM ที่คุณสร้างในขั้นตอนก่อนหน้า (เช่น EC2InstanceRole )
      4. ขยาย รายละเอียดขั้นสูง และในฟิลด์ข้อมูลผู้ใช้ ให้ป้อนข้อมูลต่อไปนี้:

#!/bin/bash
yum -y อัปเดต
yum ติดตั้ง -y ruby
yum ติดตั้ง -y aws-cli
cd /home/ec2-user
wget https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install
chmod +x ./install
./ติดตั้งอัตโนมัติ

  1. ปล่อยให้รายการที่เหลือในขั้นตอนที่ 3: กำหนดค่าหน้ารายละเอียดอินสแตนซ์ไม่เปลี่ยนแปลง เลือกถัดไป: เพิ่มพื้นที่เก็บ ข้อมูล
  2. ปล่อยให้ขั้นตอนที่ 4: เพิ่มหน้าการจัดเก็บไม่เปลี่ยนแปลง แล้วเลือก ถัดไป: เพิ่มแท็ก
  3. เลือก เพิ่มแท็ ใน Key ให้ป้อน Name และใน Value ให้ ป้อน MyCodePipelineDemo เลือกถัดไป: กำหนดค่ากลุ่มความปลอดภัย ต่อมา คุณสร้างแอปพลิเคชัน CodeDeploy ที่ปรับใช้แอปพลิเคชันตัวอย่างกับอินสแตนซ์นี้ CodeDeploy เลือกอินสแตนซ์ที่จะปรับใช้ตามแท็กที่แนบกับอินสแตนซ์
  4. กำหนดค่าหน้ากลุ่มความปลอดภัย ทำดังต่อไปนี้:
      • ถัดจาก กำหนดกลุ่มความปลอดภัย ให้เลือก สร้างกลุ่มความปลอดภัย ใหม่
      • ในแถวสำหรับ SSH ภายใต้ Source ให้ เลือก My IP
      • เลือก Add Rule เลือก HTTP จากนั้นภายใต้ Source เลือก My IP
  5. เลือกตรวจทานและเปิดใช้
  6. ใน หน้าเปิดใช้อินสแตนซ์รีวิว ให้เลือกเปิดใช้ เมื่อได้รับพร้อมท์สำหรับคู่คีย์ ให้เลือก ' ดำเนินการต่อโดยไม่มีคู่คีย์ '
  7. เลือก ดูอินสแตนซ์ เพื่อปิดหน้าการยืนยันและกลับไปที่คอนโซล
  8. คุณสามารถดูสถานะการเปิดตัวได้ใน หน้า อิน สแตนซ์ เมื่อคุณเปิดอินสแตนซ์ สถานะเริ่มต้นคือ 'รอดำเนินการ' หลังจากที่อินสแตนซ์เริ่มทำงาน สถานะของอินสแตนซ์จะเปลี่ยนเป็น 'กำลังทำงาน' และได้รับชื่อ DNS สาธารณะ (ถ้า คอลัมน์ DNS สาธารณะ ไม่ปรากฏขึ้น ให้เลือก ไอคอน แสดง/ซ่อน แล้วเลือก DNS สาธารณะ )
  9. อาจใช้เวลาสักครู่ก่อนที่อินสแตนซ์จะพร้อมให้คุณเชื่อมต่อ ดูข้อมูลใน คอลัมน์การ ตรวจสอบสถานะ เพื่อดูว่าอินสแตนซ์ของคุณผ่านการตรวจสอบสถานะหรือไม่

Create an EC2 Instance

กำลังมองหา AWS EXPERTS อยู่ใช่ไหม ชำระเงินที่นี่

สร้างแอปพลิเคชันใน CodeDeploy

  • สร้างบทบาทบริการ CodeDeploy
    • เปิดคอนโซล IAM ที่ https://console.aws.amazon.com/iam/
    • จากแดชบอร์ดคอนโซล ให้เลือก Roles
    • เลือก สร้างบทบาท
    • ภายใต้ Select type of trusted entity ให้เลือก AWS service ภายใต้ เลือกกรณีการใช้งาน เลือก CodeDeploy ภายใต้ เลือกกรณีการใช้งานของคุณ เลือก CodeDeploy เลือกถัดไป: สิทธิ์ นโยบายที่มีการจัดการ AWSCodeDeployRole แนบมากับบทบาทแล้ว
    • เลือก ถัดไป: แท็ก และ ถัดไป: ตรวจทาน
    • ป้อนชื่อสำหรับบทบาท (เช่น CodeDeployRole) แล้วเลือกสร้างบทบาท
  • สร้างแอปพลิเคชันใน CodeDeploy
    • เปิดคอนโซล CodeDeploy ที่ https://console.aws.amazon.com/codedeploy
    • หากหน้า แอปพลิเคชัน ไม่ปรากฏขึ้น บนเมนู ให้เลือก แอปพลิเคชัน
    • เลือก สร้างแอปพลิเคชัน
    • ในชื่อแอปพลิเคชัน ให้ป้อน MyDemoApplication
    • ใน Compute Platform ให้เลือก EC2/On-premises
    • เลือกสร้างแอปพลิเคชัน

    Create an application in CodeDeploy

  • สร้างกลุ่มการปรับใช้ใน CodeDeploy
    • บนเพจที่แสดงแอปพลิเคชันของคุณ ให้เลือก สร้างกลุ่มการปรับใช้
    • ในชื่อกลุ่มการปรับใช้ ให้ป้อน MyDemoDeploymentGroup
    • In-Service Role เลือกบทบาทของบริการที่คุณสร้างไว้ก่อนหน้านี้ (เช่น CodeDeployRole )
    • ภายใต้ ประเภทการทำให้ใช้งานได้ เลือก แทนที่
    • ภายใต้ การกำหนดค่าสภาพแวดล้อม ให้เลือกอินสแตนซ์ Amazon EC2 ในฟิลด์ คีย์ ให้ป้อน ชื่อ ในฟิลด์ Value ให้ป้อนชื่อที่คุณใช้แท็กอินสแตนซ์ (เช่น MyCodePipelineDemo )
    • ภายใต้การกำหนดค่าการทำให้ใช้งานได้ เลือก CodeDeployDefault.OneAtaTime
    • ภายใต้ Load Balancer ตรวจสอบให้แน่ใจว่าไม่ได้ เลือก Enable load balancing คุณไม่จำเป็นต้องตั้งค่าตัวโหลดบาลานซ์หรือเลือกกลุ่มเป้าหมายสำหรับตัวอย่างนี้
    • ขยายส่วนขั้นสูง ภายใต้ Alarms หากมีการแจ้งเตือนใดๆ อยู่ในรายการ ให้เลือก Ignore alarm configuration
    • เลือกสร้างกลุ่มการปรับใช้

Create a deployment group in CodeDeploy

กำลังมองหา AWS EXPERTS อยู่ใช่ไหม ชำระเงินที่นี่

สร้างไปป์ไลน์

    • สร้างไปป์ไลน์
    • ลงชื่อเข้าใช้ AWS Management Console และเปิดคอนโซล CodePipeline ที่ http://console.aws.amazon.com/codesuite/codepipeline/home
    • เปิดคอนโซล CodePipeline ที่ https://console.aws.amazon.com/codepipeline/
    • เลือก สร้างไปป์ ไลน์
    • ใน ขั้นตอนที่ 1 : เลือกการตั้งค่าไปป์ไลน์ ในชื่อไปป์ไลน์ ให้ ป้อน MyFirstPipeline
    • ในบทบาทบริการ เลือกบทบาทบริการใหม่เพื่อ อนุญาตให้ CodePipeline สร้างบทบาทบริการ ใน IAM
    • ปล่อยให้การตั้งค่าอยู่ภายใต้การตั้งค่าขั้นสูงเป็นค่าเริ่มต้น แล้วเลือกถัดไป
    • ในขั้นตอนที่ 2 : เพิ่มสเตจซอร์ส ใน Source Provider ให้ เลือก CodeCommit
      ใน ชื่อที่เก็บ เลือกชื่อของที่เก็บ CodeCommit ที่คุณสร้างขึ้นในขั้นตอนที่ 1: สร้างที่เก็บ CodeCommit ในชื่อสาขา เลือกหลัก แล้วเลือกขั้นตอนถัดไป
    • หลังจากที่คุณเลือกชื่อที่เก็บและสาขา ข้อความจะแสดงกฎ Amazon CloudWatch Events ที่จะสร้างสำหรับไปป์ไลน์นี้
    • ในส่วนตัวเลือก "เปลี่ยนการตรวจหา" ให้ปล่อยค่าเริ่มต้นไว้ ซึ่งช่วยให้ CodePipeline ใช้ Amazon CloudWatch Events เพื่อตรวจหาการเปลี่ยนแปลงในที่เก็บต้นทางของคุณ
    • เลือก ถัด ไป
    • ในขั้นตอนที่ 3 : เพิ่มขั้นตอนการสร้าง ให้เลือก ข้ามขั้นตอนการสร้าง แล้วยอมรับข้อความเตือนโดยเลือก ข้ามอีก ครั้ง เลือก ถัด ไป

    หมายเหตุ : ในบทช่วยสอนนี้ คุณกำลังปรับใช้โค้ดที่ต้องมีบริการแบบไม่มีบิลด์ ดังนั้นคุณสามารถข้ามขั้นตอนนี้ได้ อย่างไรก็ตาม หากจำเป็นต้องสร้างซอร์สโค้ดของคุณก่อนที่จะปรับใช้กับอินสแตนซ์ คุณสามารถกำหนดค่า CodeBuild ในขั้นตอนนี้

    • ในขั้นตอนที่ 4 : เพิ่มขั้นตอนการปรับใช้ ในผู้ให้บริการ Deploy ให้ เลือก CodeDeploy
      ในชื่อแอปพลิเค ชัน ให้เลือก MyDemoApplication ในกลุ่ม Deployment เลือก MyDemoDeploymentGroup แล้วเลือก Next step
    • ในขั้นตอนที่ 5 : ตรวจทานข้อมูลแล้วเลือก สร้างไปป์ ไลน์
    • ไปป์ไลน์เริ่มทำงานหลังจากสร้างแล้ว ดาวน์โหลดโค้ดจากที่เก็บ CodeCommit ของคุณ และสร้างการปรับใช้ CodeDeploy ไปยังอินสแตนซ์ EC2 ของคุณ คุณสามารถดูความคืบหน้า ข้อความ 'ความสำเร็จ' และ 'ความล้มเหลว' ได้ในขณะที่ตัวอย่าง CodePipeline ปรับใช้หน้าเว็บกับอินสแตนซ์ Amazon EC2 ในการปรับใช้ CodeDeploy

Create a Pipeline

คุณพร้อมแล้ว! ไปที่การทำให้ใช้งาน ได้ การ ปรับใช้ คุณจะเห็นบันทึกของการปรับใช้ทั้งหมดที่ประสบความสำเร็จและรายการที่ล้มเหลว

ในการตรวจสอบการเปลี่ยนแปลงบนไซต์ ให้เปิดอินสแตนซ์ EC2 ของคุณ ค้นหา DNS สาธารณะของคุณ ซึ่งจะปรากฏเป็น : http://ec2-3-108-40-48.ap-south-1.compute.amazonaws.com

เมื่อคุณเรียกดู คุณจะเห็นหน้าสดของคุณ

Create an Option Group

คุณทำ Code Deployment Automation สำเร็จแล้ว ตอนนี้คุณสามารถพุชการเปลี่ยนแปลงโค้ดใหม่ไปยังที่เก็บของคุณและเผยแพร่บนไซต์ของคุณโดยอัตโนมัติ หากคุณยังประสบปัญหาใด ๆ โปรดแสดงความคิดเห็นที่นี่

กำลังมองหา AWS EXPERTS อยู่ใช่ไหม ชำระเงินที่นี่