Sau khi sử dụng AWS CodeCommit để đẩy mã nguồn từ máy cục bộ lên, chúng ta thực hiện build thông qua AWS CodeBuild và sử dụng AWS CodeDeploy để triển khai ứng dụng lên EC2. Bây giờ chúng ta sẽ sử dụng AWS CodePipeline để tạo CI/CD pipeline cho ứng dụng.
AWS CodePipeline là gì? AWS CodePipeline là một dịch vụ phân phối liên tục được quản lý hoàn toàn, giúp bạn tự động hóa các đường ống phát hành để cập nhật ứng dụng và cơ sở hạ tầng một cách nhanh chóng và đáng tin cậy. CodePipeline tự động hóa các giai đoạn build, test và deploy trong quy trình phát hành của bạn mỗi khi có sự thay đổi mã nguồn, dựa trên mô hình phát hành mà bạn xác định.



Đảm bảo rằng CodeDeployServiceRole có các quyền cần thiết để truy cập CodeCommit, CodeBuild, CodeDeploy và Amazon S3 bucket nơi lưu trữ các artifact.

Giai đoạn Source xác định nơi CodePipeline sẽ lấy mã nguồn từ đó. Mỗi khi có một commit mới được đẩy lên nhánh main của repository Pipeline-EC2, pipeline này sẽ tự động được kích hoạt .


Single build: Đây là tùy chọn tiêu chuẩn. Nó kích hoạt một quá trình build duy nhất cho dự án của bạn. Chúng ta sử dụng tùy chọn này cho hầu hết các ứng dụng khi bạn chỉ cần biên dịch và đóng gói mã nguồn một lần.
Batch build: Tùy chọn này cho phép bạn chạy nhiều bản build cùng một lúc (song song hoặc tuần tự). Điều này hữu ích cho các dự án phức tạp cần được kiểm thử trên các nền tảng hoặc phiên bản khác nhau cùng lúc.

Trong nhiều pipeline CI/CD, các giai đoạn build và test có thể được xử lý cùng nhau trong một project CodeBuild duy nhất. Tuy nhiên, việc tách chúng thành các giai đoạn khác nhau trong CodePipeline giúp bạn dễ dàng theo dõi tiến độ và xử lý sự cố khi gặp lỗi hơn.
Trong giai đoạn Deploy

Kiểm tra lại toàn bộ thông tin và chọn Create pipeline.

Sau khi được tạo, pipeline sẽ tự động kích hoạt lần chạy đầu tiên. Bạn có thể theo dõi tiến độ của từng giai đoạn (Source, Build, Test, Deploy) trực tiếp trong bảng điều khiển CodePipeline. Nếu có bất kỳ giai đoạn nào thất bại, bạn có thể kiểm tra log bằng cách nhấn vào liên kết Details của giai đoạn đó.