Hướng dẫn Cài đặt n8n trên Amazon Web Services | Tài liệu n8n

Lưu trữ n8n trên Amazon Web Services#

Hướng dẫn lưu trữ này trình bày cách tự lưu trữ n8n bằng Amazon Web Services (AWS). Nó sử dụng n8n với Postgres làm cơ sở dữ liệu backend, sử dụng Kubernetes để quản lý các tài nguyên cần thiết và reverse proxy.

Các tùy chọn lưu trữ#

AWS cung cấp một số cách phù hợp để lưu trữ n8n, bao gồm EC2 (máy ảo) và EKS (các container chạy với Kubernetes).

Hướng dẫn này sử dụng EKS làm tùy chọn lưu trữ. Sử dụng Kubernetes đòi hỏi một số cấu hình và độ phức tạp bổ sung, nhưng đây là phương pháp tốt nhất để mở rộng n8n khi nhu cầu thay đổi.

Điều kiện tiên quyết#

Các bước trong hướng dẫn này sử dụng kết hợp giao diện người dùng AWS và công cụ eksctl CLI cho EKS.

Mặc dù không được đề cập trong tài liệu dành cho eksctl, bạn cũng cần cài đặt công cụ AWS CLIcấu hình xác thực cho công cụ.

Điều kiện tiên quyết về kiến thức tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và mở rộng quy mô
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng chuyên gia. Sai sót có thể dẫn đến mất dữ liệu, sự cố bảo mật và thời gian ngừng hoạt động. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyến nghị n8n Cloud.

Phiên bản Mới nhất và Tiếp theo

n8n phát hành một phiên bản nhỏ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng trong sản xuất. next là bản phát hành gần đây nhất. Bạn nên xem next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Tạo một cluster#

Sử dụng công cụ eksctl để tạo một cluster bằng cách chỉ định tên và khu vực bằng lệnh sau:

XEM THÊM:  Ứng Dụng của Công Cụ Gọi Dụng Cụ (Tool Calling) Trong Phát Triển Ứng Dụng
eksctl create cluster --name n8n --region <your-aws-region>

Quá trình này có thể mất một chút thời gian để tạo cluster.

Sau khi cluster được tạo, eksctl sẽ tự động đặt ngữ cảnh kubectl vào cluster.

Sao chép kho cấu hình#

Kubernetes và n8n yêu cầu một loạt các tệp cấu hình. Bạn có thể sao chép chúng từ kho lưu trữ này. Các bước sau sẽ cho bạn biết từng tệp làm gì và những cài đặt bạn cần thay đổi.

Sao chép kho lưu trữ bằng lệnh sau:

git clone https://github.com/n8n-io/n8n-kubernetes-hosting.git -b aws

Và thay đổi thư mục đến thư mục gốc của kho lưu trữ bạn đã sao chép:

cd n8n-kubernetes-hosting

Cấu hình Postgres#

Đối với các triển khai n8n quy mô lớn hơn, Postgres cung cấp cơ sở dữ liệu backend mạnh mẽ hơn so với SQLite.

Cấu hình volume cho bộ nhớ liên tục#

Để duy trì dữ liệu giữa các lần khởi động lại pod, quá trình triển khai Postgres cần một volume liên tục. Class lưu trữ mặc định của AWS, gp2, phù hợp cho mục đích này. Điều này được định nghĩa trong manifest postgres-claaim0-persistentvolumeclaim.yaml.

…
spec:
  storageClassName: gp2
  accessModes:
    - ReadWriteOnce
…

Các biến môi trường Postgres#

Postgres cần một số biến môi trường được thiết lập để chuyển cho ứng dụng đang chạy trong container.

Tệp postgres-secret.yaml mẫu chứa các trình giữ chỗ bạn cần thay thế bằng các giá trị của riêng bạn cho chi tiết người dùng và cơ sở dữ liệu để sử dụng.

Manifest postgres-deployment.yaml sau đó sử dụng các giá trị từ tệp manifest này để gửi đến các pod ứng dụng.

Cấu hình n8n#

Tạo một volume cho lưu trữ tệp#

Mặc dù không cần thiết để chạy n8n, nhưng việc sử dụng các volume liên tục giúp duy trì các tệp được tải lên trong khi sử dụng n8n và nếu bạn muốn duy trì các khóa mã hóa n8n thủ công giữa các lần khởi động lại, điều này sẽ lưu một tệp chứa khóa vào bộ nhớ tệp trong quá trình khởi động.

Manifest n8n-claim0-persistentvolumeclaim.yaml tạo ra điều này và Deployment n8n gắn claim đó vào phần volumes của manifest n8n-deployment.yaml.

…
volumes:
  - name: n8n-claim0
    persistentVolumeClaim:
      claimName: n8n-claim0
…

Tài nguyên Pod#

Kubernetes cho phép bạn chỉ định các tài nguyên tối thiểu mà các container ứng dụng cần và giới hạn chúng có thể chạy đến. Các tệp YAML ví dụ được sao chép ở trên chứa nội dung sau trong phần resources của tệp n8n-deployment.yaml:

…
resources:
  requests:
    memory: "250Mi"
  limits:
    memory: "500Mi"
…    

Điều này xác định tối thiểu 250mb cho mỗi container, tối đa 500mb và cho phép Kubernetes xử lý CPU. Bạn có thể thay đổi các giá trị này để phù hợp với nhu cầu của riêng bạn. Để tham khảo, đây là các giá trị tài nguyên cho các gói dịch vụ n8n cloud:

  • Start: 320mb RAM, 10 millicore CPU có thể bùng nổ
  • Pro (10k executions): 640mb RAM, 20 millicore CPU có thể bùng nổ
  • Pro (50k executions): 1280mb RAM, 80 millicore CPU có thể bùng nổ
XEM THÊM:  Chủ động truy tìm các mối đe dọa an toàn thông tin tiềm ẩn trong hạ tầng CNTT

Tùy chọn: Các biến môi trường#

Bạn có thể định cấu hình cài đặt và hành vi của n8n bằng cách sử dụng các biến môi trường.

Tạo tệp n8n-secret.yaml. Tham khảo Các biến môi trường để biết chi tiết về các biến môi trường n8n.

Các triển khai#

Hai manifest triển khai (n8n-deployment.yamlpostgres-deployment.yaml) xác định các ứng dụng n8n và Postgres cho Kubernetes.

Các manifest xác định những điều sau:

  • Gửi các biến môi trường được xác định đến mỗi pod ứng dụng
  • Xác định image container để sử dụng
  • Đặt giới hạn tiêu thụ tài nguyên
  • Các volumes được xác định trước đó và volumeMounts để xác định đường dẫn trong container để gắn volume.
  • Các chính sách mở rộng quy mô và khởi động lại. Các manifest ví dụ xác định một phiên bản của mỗi pod. Bạn nên thay đổi điều này để đáp ứng nhu cầu của bạn.

Hai manifest dịch vụ (postgres-service.yamln8n-service.yaml) hiển thị các dịch vụ ra bên ngoài bằng cách sử dụng bộ cân bằng tải Kubernetes bằng các cổng 5432 và 5678 theo mặc định.

Gửi đến cluster Kubernetes#

Gửi tất cả các manifest đến cluster bằng cách chạy lệnh sau trong thư mục n8n-kubernetes-hosting:

Lỗi Namespace

Bạn có thể thấy thông báo lỗi về việc không tìm thấy namespace “n8n” vì tài nguyên đó chưa sẵn sàng. Bạn có thể chạy lại cùng một lệnh hoặc áp dụng manifest namespace trước bằng lệnh sau:

kubectl apply -f namespace.yaml

Thiết lập DNS#

n8n thường hoạt động trên một subdomain. Tạo một bản ghi DNS với nhà cung cấp của bạn cho subdomain và trỏ nó đến một địa chỉ tĩnh của phiên bản.

XEM THÊM:  Lệnh back up thủ công data sql bằng dòng lệnh linux server tự động thêm ngày tháng, giờ phút vào tên file

Để tìm địa chỉ của dịch vụ n8n đang chạy trên phiên bản:

  1. Mở phần Clusters của trang Amazon Elastic Kubernetes Service trong bảng điều khiển AWS.
  2. Chọn tên của cluster để mở trang cấu hình của nó.
  3. Chọn tab Resources, sau đó Service and networking > Services.
  4. Chọn dịch vụ n8n và sao chép giá trị Load balancer URLs. Sử dụng giá trị này với hậu tố là cổng dịch vụ n8n (5678) cho DNS.

Sử dụng HTTP

Hướng dẫn này sử dụng các kết nối HTTP cho các dịch vụ mà nó xác định, ví dụ: trong n8n-deployment.yaml. Tuy nhiên, nếu bạn nhấp vào giá trị Load balancer URLs, EKS sẽ đưa bạn đến URL “HTTPS” dẫn đến lỗi. Để giải quyết vấn đề này, khi bạn mở subdomain n8n, hãy đảm bảo sử dụng HTTP.

Xóa tài nguyên#

Nếu bạn cần xóa thiết lập, bạn có thể xóa các tài nguyên được tạo bởi các manifest bằng lệnh sau:

Các bước tiếp theo#

Bạn có thấy hữu ích không? Hãy cho chúng tôi +1 nhé

Đăng ký nhận bản tin từ Website TXL

Tìm kiếm tức thì các thông tin tại website: tranxuanloc.com

Mẹo tìm kiếm: "Từ khóa cần tìm kiếm" site:tranxuanloc.com để tìm được kết quả chính xác trên công cụ tìm kiếm của google

Trần Xuân Lộc Blog cung cấp dịch vụ

TOP ĐỐI TÁC CUNG CẤP DỊCH VỤ DU LỊCH TRỰC TUYẾN HÀNG ĐẦU

(Đặt phòng, đặt tour, đặt xe, đặt vé máy bay...Nhấn vào link logo để đặt dịch vụ với nhiều ưu đãi hấp dẫn)

Cảnh báo: Hiện nay có rất nhiều đơn vị SỬ DỤNG LẠI các THÔNG TIN NỘI DUNG ĐÀO TẠO của KHÓA HỌC SALE OTA TỪ OTAVN mà không đảm bảo chất lượng và hỗ trợ về sau. Các bạn muốn đăng ký học SALE OTA uy tín hãy liên hệ trực tiếp với OTA Việt Nam. OTAVN có xây dựng các hình thức đào tạo trực tiếp offline cho doanh nghiệp, đào tạo 1-1 từ xa và tự học online. Chúng tôi có 2 tên miền là: otavietnam.com và tranxuanloc.com (founder) có chia sẻ và đăng tải các thông tin liên quan về OTA/ Sale OTA/ Digital Marketing/ Thiết kế website... Với khách hàng/ đối tác đã sử dụng dịch vụ của OTAVN sẽ được HỖ TRỢ MIỄN PHÍ các vấn đề phát sinh, tư vấn giải đáp sau khi đã hoàn thành khóa học hoặc sau khi đã sử dụng dịch vụ trọn đời. Hotline:0934552325 (iMessage/ Zalo/ Whatsapp) - Email: [email protected]