Có một số khái niệm mà bạn có thể tận dụng.
Chìa khóa thành công là tự động hóa
Tùy chọn đầu tiên là tiếp tục làm những gì bạn đang làm hiện tại, tức là xây dựng lại EC2 với mỗi thay đổi cấu hình . Chỉ trong một cách hoàn toàn tự động.
Vì hiện tại bạn đang thực hiện cập nhật cấu hình thông qua AMI, bạn tiến thêm một bước này và tạo một đường ống dẫn , khi thay đổi tệp cấu hình trong một số kho lưu trữ, sẽ:
- Tự động xây dựng một AMI mới - một trong những công cụ phổ biến nhất để làm điều đó là Packer
- Tự động xây dựng lại đội tàu Nginx của bạn - bạn đã có tất cả các máy chủ Nginx trong Nhóm tự động mở rộng với Bộ cân bằng tải ứng dụng ở phía trước. Nếu bạn không nên, nó sẽ giúp việc cập nhật đơn giản như cập nhật Cấu hình khởi chạy ASG và chờ các phiên bản được xây dựng lại từ AMI mới.
Tùy chọn thứ hai là giữ các cá thể tại chỗ và chỉ triển khai các tệp cấu hình , mà không xây dựng lại chúng. Nói chung, bạn có thể coi các tệp cấu hình là mã và triển khai thay đổi cấu hình của mình giống như cách bạn sẽ triển khai các bản phát hành mã. AWS có nhiều công cụ để giúp với điều đó.
- AWS Elastic Beanstalk sử dụng Chef trong nội bộ và bạn có thể tạo kịch bản Nginx của mình cập nhật theo cách này.
- Triển khai mã AWS , một công cụ triển khai hoàn toàn có thể tạo tập lệnh, tích hợp tốt với các phần khác của Bộ mã AWS :
- Code Commit nơi bạn có thể giữ các tệp cấu hình Nginx của mình trong Git.
- Đường ống mã có thể tự động kích hoạt triển khai bất cứ khi nào tệp cấu hình được cập nhật trong Code Commit.
- Ansible hoặc Puppet là các công cụ không phải AWS phổ biến có thể giúp bạn giữ tất cả các máy chủ được cấu hình theo cùng một cách.
Khi bạn cảm thấy thoải mái với việc tự động hóa các cập nhật cấu hình Nginx này, bạn có thể muốn mở rộng tự động hóa sang phần còn lại của cơ sở hạ tầng.
Có một Tổng quan về whitepaper tuyệt vời về Tùy chọn triển khai trên AWS sẽ cung cấp cho bạn một cái nhìn tổng quan đẹp.
Tôi hy vọng điều đó sẽ giúp :)