Nếu bạn đang tự động hóa việc triển khai khối lượng công việc của mình trên Đám mây Amazon Web Services (AWS) bằng AWS CloudFormation, bạn có thể thực hiện các bước để tiết kiệm thời gian trong và sau quá trình phát triển ban đầu. Ngoài việc tiết kiệm thời gian, bạn có thể ngăn các mẫu của mình trở nên lỗi thời. Trong bài viết này, tôi đề cập đến một số phương pháp hay nhất để bạn sử dụng khi phát triển cơ sở hạ tầng dưới dạng code với AWS CloudFormation. Bài viết cũng bao gồm các phương pháp hay nhất để kiểm tra và duy trì các mẫu AWS CloudFormation.
Về AWS CloudFormation
AWS CloudFormation hợp lý hóa việc triển khai khối lượng công việc chính trên Đám mây AWS. Với AWS CloudFormation, bạn có thể lập mô hình và cung cấp tất cả các tài nguyên cần thiết cho các ứng dụng của mình trên nhiều Khu vực và tài khoản một cách tự động và an toàn. Bạn cũng có thể sử dụng ngôn ngữ lập trình hoặc các tệp văn bản đơn giản. Mẫu AWS CloudFormation là các tệp văn bản, được viết ở định dạng YAML hoặc JSON, xác định tài nguyên AWS sẽ được triển khai.
Bạn có thể tích hợp các công cụ tự động hóa, chẳng hạn như AWS Lambda và AWS Systems Manager, vào các mẫu AWS CloudFormation của mình. Với các công cụ tự động hóa, bạn có thể tự động hóa việc cung cấp khối lượng công việc tùy chỉnh trên cơ sở hạ tầng AWS đã xác định sẵn.
Chương trình AWS Quick Start cung cấp hơn 170 ví dụ về triển khai AWS Partner và AWS gốc, tất cả đều sử dụng mẫu AWS CloudFormation.
Phương pháp thực hành tốt nhất
1. Bắt đầu với các bản mẫu AWS CloudFormation hiện có
2. Tạo bản mẫu mô đun
3. Sử dụng kho hiện có làm mô đun con
4. Sử dụng các môi trường phát triển tích hợp được với linting
5. Sử dụng các tham số để xác định đường dẫn đến nội dung bên ngoài
6. Sử dụng tên giống nhau cho các tham số chung
7. Tự động kiểm tra AWS CloudFormation với TaskCat
8. Duy trì các bản mẫu
Bài viết trước, chúng tôi đã đem đến 04 phương pháp thực hành tốt nhất khi tự động hóa triển khai với AWS CloudFormation. Sau đây, chúng tôi sẽ đem đến 04 biện pháp nữa giúp bạn kiểm tra và duy trì các mẫu AWS CloudFormation của mình. Đọc thêm phần 1 tại đây
5. Sử dụng các tham số để xác định đường dẫn đến nội dung bên ngoài
Tùy chỉnh các mẫu AWS CloudFormation của bạn trong tương lai bằng cách tránh các đường dẫn được mã hóa cứng đến nội dung bên ngoài. Ví dụ, hãy tưởng tượng rằng bạn đã phát triển một mẫu triển khai một EC2 instance để tải xuống phương tiện cài đặt từ S3 bucket. Bạn có thể mã hóa cứng đường dẫn đến phương tiện cài đặt như https://customerbucket.s3.us-east-1.amazonaws.com/install.tar.gz. Tuy nhiên, nếu bạn làm như vậy, các thay đổi trong tương lai đối với nhóm S3 (trong trường hợp này là customerbucket) – chẳng hạn như xóa quyền truy cập công khai hoặc xóa hoàn toàn nhóm, sẽ khiến việc triển khai không thành công.
Thay vì mã hóa cứng các đường dẫn đến phương tiện cài đặt, haỹ xác định nó như một tham số và đặt URL làm mặc định.
Một cách khác để có thể tùy chỉnh quyền truy cập vào nội dung bên ngoài trong tương lai chính là lưu trữ chúng trong một kho lưu trữ như các mẫu AWS CloudFormation. Bạn có thể lưu trữ các nội dung bên ngoài được gọi bởi mẫu AWS CloudFormation trong cùng một kho lưu trữ với mẫu, giảm bớt sự phụ thuộc vào bên ngoài. Các kho lưu trữ phổ biến bao gồm AWS CodeCommit, GitHub và GitLab. Các nội dung thường được lưu trữ cùng với các mẫu AWS CloudFormation gọi chúng bao gồm các hàm Lambda, tập lệnh Bash hoặc PowerShell và phương tiện cài đặt.
6. Sử dụng các tên giống nhau cho các thông số chung
Khi bạn sử dụng phương pháp mô-đun với các triển khai phức tạp, bạn có thể thấy mình đang làm việc với một số lượng lớn các mẫu AWS CloudFormation. Ví dụ, Amazon EKS Quick Start sẽ bao gồm 15 mẫu AWS CloudFormation. Trong Amazon EKS Quick Start, kết quả đầu ra từ một mẫu được chuyển dưới dạng giá trị tham số cho các mẫu khác. Giữ tên thông số nhất quán trên tất cả các mẫu AWS CloudFormation giúp khắc phục sự cố và sao chép hơn.
Ví dụ, lấy tham số VPCID (ID của VPC mà Quick Start được triển khai lên). Nếu bạn triển khai Amazon VPC Quick Start dưới dạng mô-đun con, thì bạn sẽ triển khai nội dung vào VPC bằng cách chuyển đầu ra VPCID từ mô-đun con dưới dạng giá trị tham số cho các mẫu khác của bạn. Việc sử dụng tên tham số VPCID trong tất cả các mẫu của bạn sẽ đơn hóa việc theo dõi kết quả đầu ra và giá trị tham số của bạn.
Dưới đây là một số tên thông số giữ nguyên tên phổ biến khác:
VPCCIDR
PrivateSubnet1ID
PrivateSubnet2ID
PublicSubnet1ID
PublicSubnet2ID
7. Tự động kiểm tra AWS CloudFormation với TaskCat
Khi bạn xây dựng các mẫu AWS CloudFormation, bạn cần phải kiểm tra chúng. Các bước kiểm tra như sau:
Tải các mẫu của bạn lên một S3 bucket.
Đăng nhập vào AWS Management Console.
Mở AWS CloudFormation console.
Nhập đường dẫn S3 tới mẫu mẹ của bạn.
Nhập thủ công các giá trị thông số.
Khởi chạy stack.
Chờ xem việc triển khai thành công hay thất bại.
Việc triển khai thủ công các mẫu AWS CloudFormation trên nhiều AWS Regions rồi dọn dẹp nội dung bạn đã triển khai trong quá trình thử nghiệm sẽ tốn nhiều thời gian. Ngoài ra, bạn có thể mất dấu các nội dung mà bạn đã triển khai. Vì vậy, khi bạn dọn dẹp môi trường thử nghiệm theo các thủ công, bạn có thể bỏ qua các nội dung vẫn hoạt động trong tài khoản của mình. Những nội dung bị bỏ sót này có thể dẫn đến các khoản phí không mong muốn trên hóa đơn thanh toán AWS của bạn.
Để giải quyết những vấn đề này, nhóm AWS Quick Start đã phát triển một quy trình tự động hóa thử nghiệm AWS CloudFormation bằng cách sử dụng một công cụ mã nguồn mở có tên là TaskCat. Bạn nhập Khu vực và giá trị tham số vào tệp được định dạng YAML được gọi là taskcat.yml trong thư mục gốc của kho lưu trữ của bạn. Taskcat sử dụng các giá trị này để tự động triển khai các mẫu AWS CloudFormation. Sau đó, nó ghi lại kết quả của việc triển khai – cho dù nó thành công hay thất bại (và nếu thất bại, lý do) – và xóa bất kỳ nội dung nào đã được triển khai.
Khi bạn sử dụng Taskcat để kiểm tra các mẫu AWS CloudFormation của mình, bạn có thể tập trung vào những việc khác trong khi đợi triển khai hoàn tất. Bạn cũng có thể ngăn không cho các tài nguyên được triển khai trong quá trình thử nghiệm tồn tại trong tài khoản AWS của mình.
8. Duy trì các mẫu của bạn
Vì các mẫu AWS CloudFormation được sử dụng để tự động hóa việc triển khai, chúng thường được sử dụng lại trong nhiều tháng hoặc nhiều năm. Kết quả là, chúng có thể bị lỗi thời. Ví dụ: các loại phiên bản EC2 có thể không được dùng nữa, Amazon Machine Images (AMIs) có thể bị xóa khỏi tính khả dụng chung và chức năng mới có thể được thêm vào dịch vụ cơ sở dữ liệu.
Hãy kiểm tra các mẫu AWS CloudFormation của bạn định kỳ để đảm bảo rằng chúng tiếp tục hoạt động như mong đợi. Đồng thời, kết hợp chức năng dịch vụ mới khi nó được ra mắt.
Để bắt đầu tự động triển khai với AWS CloudFormation, hãy liên hệ ngay với chúng tôi.