Phiên bản ec2 nào là tốt nhất cho mongodb?

Hướng dẫn này cung cấp hướng dẫn sử dụng MongoDB AMI để thiết lập các phiên bản sản xuất của MongoDB trên cơ sở hạ tầng EC2 của Dịch vụ web của Amazon (AWS)

Đầu tiên, chúng ta sẽ lập kế hoạch triển khai từng bước (thông số kỹ thuật của phiên bản, quy mô triển khai, v.v. ) và sau đó chúng tôi sẽ thiết lập một nút sản xuất duy nhất. Chúng tôi sẽ sử dụng các bước thiết lập đó để triển khai bộ bản sao MongoDB ba nút để sử dụng sản xuất. Cuối cùng, chúng tôi sẽ đề cập ngắn gọn một số chủ đề nâng cao như tính khả dụng ở nhiều khu vực và sao lưu dữ liệu

Sao lưu, khôi phục, xác minh¶

Tùy thuộc vào cấu hình phiên bản EC2 của bạn, có một số cách để tiến hành sao lưu dữ liệu thường xuyên. Để biết hướng dẫn cụ thể về sao lưu, khôi phục và xác minh, hãy tham khảo Sao lưu và khôi phục EC2

Ghi chú triển khai¶

MongoDB qua AWS Marketplace¶

Nếu bạn đã cài đặt MongoDB qua AWS Marketplace, hãy tham khảo hướng dẫn Triển khai MongoDB từ AWS Marketplace để thiết lập và chạy phiên bản phát triển. Nếu bạn quan tâm đến việc tạo triển khai sản xuất, hãy tham khảo Cài đặt MongoDB trên Amazon EC2. Bắt đầu với phần Cài đặt MongoDB trên Amazon EC2 để thiết lập nơi lưu trữ dữ liệu của bạn. Sau đó, hãy tham khảo phần Bắt đầu MongoDB để chạy phiên bản MongoDB của bạn. Nếu bạn quan tâm đến việc mở rộng quy mô triển khai của mình, hãy xem các phần về Triển khai Bộ bản sao nhiều nút và Triển khai cụm phân mảnh

Triển khai tự động với CloudFormation¶

CloudFormation từ Amazon Web Services cung cấp một cơ chế dễ dàng để tạo và quản lý tập hợp các tài nguyên AWS. Để sử dụng CloudFormation, bạn tạo và triển khai một mẫu mô tả các tài nguyên trong ngăn xếp của mình thông qua Bảng điều khiển quản lý AWS. Chúng tôi đã tạo một loạt các mẫu tham chiếu mà bạn có thể sử dụng làm điểm bắt đầu để xây dựng triển khai MongoDB của riêng mình bằng CloudFormation. Xem Triển khai tự động với CloudFormation để biết hướng dẫn và các tệp mẫu

Các loại phiên bản¶

MongoDB hoạt động trên hầu hết các loại EC2 bao gồm cả Linux và Windows. Chúng tôi khuyên bạn nên sử dụng phiên bản 64 bit vì điều này là bắt buộc đối với tất cả các cơ sở dữ liệu MongoDB có kích thước đáng kể. Ngoài ra, chúng tôi nhận thấy rằng các phiên bản lớn hơn có xu hướng sử dụng phần cứng ec2 mới nhất

Cài đặt MongoDB¶

Người ta có thể tải xuống tệp nhị phân hoặc bản dựng từ nguồn. Nói chung, việc tải xuống tệp nhị phân sẽ dễ dàng hơn. Chúng tôi có thể tải xuống và chạy tệp nhị phân mà không cần root. Ví dụ trên Linux 64 bit

[~]$ curl -O http://downloads.mongodb.org/linux/mongodb-linux-x86_64-1.0.1.tgz
[~]$ tar -xzf mongodb-linux-x86_64-1.0.1.tgz
[~]$ cd mongodb-linux-x86_64-1.0.1/bin
[bin]$ ./mongod --version

Trước khi chạy cơ sở dữ liệu, người ta nên quyết định nơi đặt các tệp dữ liệu. Chạy df -h để xem tập. Trên một số hình ảnh /mnt sẽ có nhiều dung lượng lưu trữ được đính kèm cục bộ. Ngoài ra, bạn có thể muốn sử dụng Cửa hàng khối đàn hồi sẽ có điểm gắn kết khác.

Nếu bạn gắn kết hệ thống tệp, hãy đảm bảo rằng bạn gắn kết với các thuộc tính noatime và nodiratime chẳng hạn

/dev/mapper/my_vol /var/lib/mongodb xfs noatime,noexec,nodiratime 0 0

Tạo thư mục tệp dữ liệu mongodb ở vị trí mong muốn và sau đó chạy cơ sở dữ liệu

mkdir /mnt/db
./mongod --fork --logpath ~/mongod.log --dbpath /mnt/db/

Hệ điều hành¶

Đôi khi, do tính chất ảo hóa và chia sẻ của EC2, một phiên bản có thể gặp sự cố I/O không liên tục và khả năng phản hồi thấp so với các phiên bản tương tự khác. Trong một số trường hợp, việc chấm dứt phiên bản và khởi chạy phiên bản mới có thể mang lại hiệu suất tốt hơn

Một số người đã báo cáo sự cố với Ubuntu 10. 04 trên ec2

Vui lòng đọc vấn đề Ubuntu 614853 và vấn đề Linux Kernel 16991 để biết thêm thông tin

Mạng¶

Quản lý cảng¶

Theo mặc định, cơ sở dữ liệu sẽ lắng nghe trên cổng 27017. Giao diện người dùng quản trị web sẽ có trên cổng 28017

Cố sống đi¶

Thay đổi thời gian giữ TCP mặc định thành 300 giây. Xem trang khắc phục sự cố của chúng tôi để biết chi tiết

Cấu hình lưu trữ¶

Để sử dụng sản xuất, chúng tôi khuyên bạn nên đột kích 10 trên các ổ đĩa 4-8 ebs để có hiệu suất tốt nhất. Ổ đĩa ec2 cục bộ có thể nhanh hơn nhưng nhìn chung không phù hợp vì chúng là tạm thời. Nhiều ổ ebs làm tăng số lượng IO ngẫu nhiên mỗi giây (iops) tiềm năng, nhưng không nhất thiết phải có thông lượng đọc/ghi tuần tự nhiều. Trong hầu hết các ứng dụng cơ sở dữ liệu, iop ngẫu nhiên rất quan trọng

Để biết thêm thông tin, hãy tham khảo thông tin EBS tại Amazon Web Services

Ảnh chụp nhanh EBS¶

Nếu các tệp dữ liệu của bạn nằm trên một ổ đĩa EBS, bạn có thể chụp nhanh chúng để sao lưu

Nếu bạn đang sử dụng ghi nhật ký, chỉ cần lấy một. ảnh chụp nhanh (bao gồm thư mục journal/ ).

Nếu không sử dụng ghi nhật ký, bạn cần sử dụng lệnh lock+fsync (v1. 3. 1+)

Sử dụng lệnh này để khóa cơ sở dữ liệu để ngăn ghi. Sau đó, chụp nhanh âm lượng. Sau đó sử dụng lệnh mở khóa để cho phép ghi lại vào cơ sở dữ liệu. Xem hướng dẫn đầy đủ về Sao lưu và khôi phục EC2 để biết thêm thông tin. Phương pháp này cũng có thể được sử dụng với nô lệ/thứ cấp

Phiên bản bảo mật¶

Hạn chế quyền truy cập vào các phiên bản của bạn bằng cách sử dụng tính năng Nhóm bảo mật trong AWS. Nhóm bảo mật là một bộ quy tắc tường lửa cho các gói đến có thể áp dụng cho TCP, UDP hoặc ICMP

Một cách tiếp cận phổ biến là tạo một nhóm bảo mật MongoDB có chứa các nút trong cụm của bạn (các thành viên tập hợp bản sao hoặc các thành viên cụm phân đoạn), tiếp theo là tạo một nhóm bảo mật riêng cho máy chủ hoặc máy khách ứng dụng của bạn

Tạo quy tắc trong nhóm bảo mật MongoDB của bạn với trường “nguồn” được đặt thành tên Nhóm bảo mật chứa máy chủ ứng dụng của bạn và cổng được đặt thành 27017 (hoặc bất kỳ cổng nào bạn sử dụng cho MongoDB của mình). Điều này sẽ đảm bảo rằng chỉ các máy chủ ứng dụng của bạn mới có quyền kết nối với các phiên bản MongoDB của bạn

Hãy nhớ rằng Nhóm bảo mật chỉ kiểm soát lưu lượng truy cập

Liên lạc giữa các khu vực¶

Mỗi phiên bản EC2 sẽ có một địa chỉ IP riêng có thể được sử dụng để giao tiếp trong mạng EC2. Cũng có thể chỉ định một IP “co giãn” công khai để giao tiếp với các máy chủ từ một mạng khác. Nếu sử dụng các khu vực EC2 khác nhau, máy chủ chỉ có thể giao tiếp qua IP công cộng

Để thiết lập một cụm máy chủ trải rộng trên nhiều khu vực, bạn nên đặt tên máy chủ lưu trữ thành “tên dns công khai” do EC2 cung cấp. Điều này sẽ đảm bảo rằng các máy chủ từ một mạng khác sử dụng IP công cộng, trong khi các máy chủ cục bộ sử dụng IP riêng, do đó tiết kiệm chi phí. Điều này là bắt buộc vì các nhóm bảo mật EC2 là cục bộ của một khu vực

Để kiểm soát giao tiếp giữa các phiên bản ở các khu vực khác nhau (ví dụ: nếu bạn có hai thành viên của bộ bản sao ở một khu vực và thành viên thứ ba ở một khu vực khác), có thể sử dụng tường lửa tích hợp sẵn (chẳng hạn như IPtables trên Linux) để

MongoDB có chạy trên EC2 không?

Các lệnh MongoDB. Bằng cách này, chúng ta có thể cài đặt MongoDB trên phiên bản EC2 của mình bằng cách sử dụng Kết nối phiên bản EC2 . Và nếu bạn cũng sử dụng tài khoản bậc miễn phí, hãy đảm bảo bạn xóa tất cả các tài nguyên bạn đã sử dụng trước khi đăng xuất.

EC2 dành cho cơ sở dữ liệu là gì?

Amazon Elastic Compute Cloud (Amazon EC2) là một dịch vụ web cung cấp quyền truy cập an toàn vào các phiên bản máy chủ theo yêu cầu. Dễ dàng lấy và định cấu hình dung lượng – chỉ cần sử dụng giao diện dịch vụ web Amazon EC2 để bổ sung dung lượng theo yêu cầu.

Loại ổ đĩa EBS nào phù hợp nhất với MongoDB?

Có hai loại ổ đĩa EBS mà bạn nên xem xét để triển khai MongoDB. Ổ đĩa Mục đích chung (SSD) cung cấp độ trễ một phần nghìn giây, mang lại hiệu suất cơ bản nhất quán từ 3 IOPS/GB đến tối đa 10.000 IOPS và cung cấp .

Phiên bản EC2 phổ biến nhất là gì?

Loại #1 - Phiên bản Mục đích Chung .