Trong trường hợp bất kỳ ai đang tìm kiếm câu trả lời, đây là lời khuyên tôi nhận được từ bộ phận hỗ trợ kinh doanh của aws.
Tất cả mã được triển khai cho Elastic Beanstalk cần phải là I.E "không trạng thái" Không bao giờ thực hiện thay đổi trực tiếp đối với phiên bản cây đậu đang chạy bằng SSH hoặc FTP .... Vì điều này sẽ gây ra sự không nhất quán và hoặc mất dữ liệu! - Elastic Beanstalk không được thiết kế cho ứng dụng không trạng thái. trên mạng / tải CPU của bạn và xây dựng các phiên bản mới từ AMI cơ sở. Nếu một phiên bản có vấn đề hoặc phần cứng bên dưới, Elastic Beanstalk sẽ chấm dứt các phiên bản đang chạy này và thay thế bằng các phiên bản mới. Do đó, tại sao không có sửa đổi mã nào phải được áp dụng hoặc thực hiện "trực tiếp" đối với một phiên bản hiện có vì các phiên bản mới sẽ không nhận biết được những thay đổi trực tiếp này. TẤT CẢ các thay đổi / mã cần được tải lên bảng điều khiển Elastic Beanstalk hoặc các công cụ CLI và được đẩy lên tất cả các phiên bản đang chạy. Bạn có thể đọc thêm thông tin về các khái niệm thiết kế Elastic Beanstalk tại liên kết sau http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concept.concept .design.html
Giải pháp được đề xuất:Với lưu ý ở trên, nếu sử dụng MongoDB để lưu trữ dữ liệu ứng dụng, khuyến nghị của chúng tôi sẽ là DE-ghép nối môi trường MongoDB từ ứng dụng Node.js của bạn. Phiên bản EC2 và có ứng dụng Elastic Beanstalk Node.js của bạn kết nối với Máy chủ MongoDB bằng cách sử dụng cài đặt kết nối trong ứng dụng của bạn.
-Tạo MongoDBBelow là một số liên kết mẫu có thể được sử dụng cho kịch bản của bạn để tạo Máy chủ MongoDB.Deploy MongoDB trên EC2, https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/ Ứng dụng khách nút MongoDB https://docs.mongodb.org/getting-started/node / client / MongoDB trên Hướng dẫn bắt đầu nhanh AWS Cloud http://docs.aws .amazon.com / quickstart / new / mongodb / architecture.html
-Thêm các biến môi trường vào Elastic Beanstalk để tham chiếu đến máy chủ MongoDB của bạn Khi bạn đã tạo Máy chủ MongoDB, bạn có thể chuyển các cài đặt kết nối cần thiết vào môi trường Elastic Beanstalk của mình bằng cách sử dụng các biến môi trường. Ví dụ sử dụng .ebextensions .config mà bạn có thể thêm Mongo URL / port / users vv ..
option_settings:- option_name:MONGO_DB_URLvalue:"Địa chỉ IP nội bộ MongoDB EC2 của bạn"
Bạn có thể xem thông tin về cách sử dụng thuộc tính môi trường và đọc chúng từ bên trong ứng dụng của bạn. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_container-envprop Và thông tin sử dụng .ebextensions .config có thể được tìm thấy tại liên kết sau http ://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
Ngoài ra, bạn cũng có thể thiết lập biến môi trường bằng cli hoặc thông qua AWS Consoleeb cli set các biến môi trường có thể được đọc theo liên kết bên dưới. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html Sử dụng Bảng điều khiển AWS Để đặt thuộc tính hệ thống (Bảng điều khiển quản lý AWS) Mở bảng điều khiển Elastic Beanstalk, điều hướng đến bảng điều khiển quản lý cho môi trường của bạn. Chọn Cấu hình. Trong phần Cấu hình phần mềm, chọn Chỉnh sửa. Thuộc tính Môi trường, tạo tên / giá trị của bạn ...
Truy cập cài đặt cấu hình môi trường Bên trong môi trường Node.js đang chạy trong AWS Elastic Beanstalk, bạn có thể truy cập các biến môi trường bằng process.env.ENV_VARIABLE tương tự như example.process.env.MONGO_DB_URLprocess.env.PARAM2
Tóm tắt:Tóm lại, tôi muốn giới thiệu các bước sau để tích hợp MongoDB với môi trường Elastic Beanstalk.Bước 1) Tạo máy chủ MongoDB bên ngoài Elastic BeanstalkBước 2) Tạo ứng dụng Node.js của bạn trong Elastic Beanstalk kết nối với máy chủ MongoDB của bạn