Mongodb cài đặt ec2

Bạn có thể xem cập nhật mới nhất của tôi trong blog của tôi ở đây https. //Trung bình. com/@calvin. hsieh/các bước cài đặt-mongodb-on-aws-ec2-instance-62db66981218

Tín dụng

  • https. //eladnava. com/triển khai-a-highly-available-mongodb-replica-set-on-aws/
  • http. //www. máy chủ. ca/tutorials/linux/database-servers/how-to-create-mongodb-replication-cluster/

Xin chân thành cảm ơn Elad Nava và Shane Rainville đã viết những bài báo trên cho phép tôi thực hiện hướng dẫn này. Nếu bằng mọi cách mà tôi vi phạm bản quyền của bài đăng gốc, vui lòng liên hệ với tôi

từ chối trách nhiệm

  • Ít nhất bạn nên đọc bài viết của Elad trước phần Bắt đầu
  • Bạn nên có một số kiến ​​thức cơ bản về bản chất của AWS và MongoDB trước khi tiếp tục hướng dẫn này

Tại sao phải tạo một hướng dẫn khác nếu đã có những hướng dẫn tốt như hai hướng dẫn trên?

Tôi thấy mình đã lặp đi lặp lại nhiều lần trong nhiều ngày về cách định cấu hình MongoDB đúng cách với bộ bản sao và bật xác thực. Rất nhiều tìm kiếm trên Google ở ​​đây và ở đó trong nhiều ngày và cuối cùng đã tìm ra giải pháp. Không có xác thực và tường lửa, MongoDB cực kỳ dễ bị tấn công

Bài viết đầu tiên hướng dẫn bạn từng bước rõ ràng về cách thiết lập MongoDB trên AWS EC2. Tuy nhiên, MongoDB đã trải qua một số cập nhật và thay đổi. Vì vậy, tôi đã bao gồm những thay đổi trong bài viết của mình

Bài viết thứ hai hướng dẫn bạn cách tích hợp xác thực nội bộ giữa các thành viên bộ bản sao đúng cách và kích hoạt xác thực

Tôi thấy cần phải kết hợp chúng thành một hướng dẫn, vì vậy tôi hy vọng tôi có thể tiết kiệm thời gian của bạn nếu bạn chuẩn bị thiết lập máy chủ MongoDB, đặc biệt là khi bạn muốn bật xác thực

Cài đặt AWS EC2

Trước tiên, hãy chuẩn bị các phiên bản AWS EC2 để chạy MongoDB và để đảm bảo rằng bạn có tên miền của riêng mình

1. Khởi chạy các phiên bản

  • Ra mắt 3 Ubuntu Server 16 hoàn toàn mới. 04 phiên bản LTS trong bảng điều khiển EC2
  • Chọn phiên bản i3 nếu cần phiên bản được tối ưu hóa NoSQL;
  • Đảm bảo mỗi phiên bản nằm trong vùng khả dụng khác nhau
  • Tạo nhóm bảo mật mới,
    * soft nproc 32000
    * hard nproc 32000
    
    7
    • Định cấu hình cả ba phiên bản để sử dụng nó
    • Chỉ cho phép SSH trên cổng 22 từ IP của bạn
    • Cho phép cổng 27017 từ nhóm bảo mật
      * soft nproc 32000
      * hard nproc 32000
      
      7 và IP của bạn
    • Vì vậy, cả IP của bạn và các thành viên trong bộ bản sao đều có quyền truy cập vào quy trình mongod của nhau đang lắng nghe trên cổng 27017
  • Gắn nhãn cho từng phiên bản bạn đã tạo như sau (thay ví dụ. com với tên miền của riêng bạn)
  • Dữ liệu - db1. ví dụ. com
  • Dữ liệu - db2. ví dụ. com
  • trọng tài - trọng tài1. ví dụ. com

2. Yêu cầu 3 IP đàn hồi

Đính kèm các IP được yêu cầu vào từng phiên bản để các thành viên bản sao của bạn sẽ duy trì cùng một IP công khai trong suốt thời gian tồn tại

3. Thiết lập Bản ghi DNS

Chuyển đến bảng điều khiển DNS của miền của bạn và thêm bản ghi

* soft nproc 32000
* hard nproc 32000
9 cho db1, db2, arbiter1. Đối với mỗi bản ghi, hãy nhập tên máy chủ DNS công khai của từng phiên bản, hiển thị trong bảng điều khiển phiên bản EC2

Cấu hình máy chủ

Chúng tôi sẽ cần sửa đổi máy chủ thành HĐH cơ bản để nó hoạt động tốt với MongoDB

1. Đặt tên máy chủ

SSH vào từng máy chủ và đặt tên máy chủ của nó để khi chúng tôi khởi tạo bộ bản sao, các thành viên sẽ có thể hiểu cách liên hệ với nhau

sudo bash -c 'echo db1.example.com > /etc/hostname && hostname -F /etc/hostname'

Đảm bảo sửa đổi db1. ví dụ. com và đặt nó thành tên máy chủ DNS của mỗi máy chủ

2. Tăng giới hạn hệ điều hành

MongoDB cần có khả năng tạo bộ mô tả tệp khi máy khách kết nối và sinh ra một số lượng lớn quy trình để hoạt động hiệu quả. Các giới hạn quy trình và tệp mặc định được cung cấp cùng với Ubuntu không áp dụng cho MongoDB

Sửa đổi chúng bằng cách chỉnh sửa tệp

sudo nano /etc/init.d/disable-transparent-hugepages
0

sudo nano /etc/security/limits.conf

Thêm các dòng sau vào cuối tệp

________số 8

Tiếp theo, tạo một tệp có tên

sudo nano /etc/init.d/disable-transparent-hugepages
1 trong
sudo nano /etc/init.d/disable-transparent-hugepages
2

* soft nproc 32000
* hard nproc 32000
1

Dán các dòng sau vào tệp

* soft nproc 32000
* hard nproc 32000

3. Vô hiệu hóa các trang lớn trong suốt

Các trang lớn trong suốt (THP) là một hệ thống quản lý bộ nhớ Linux giúp giảm chi phí tra cứu Bộ đệm tra cứu dịch thuật (TLB) trên các máy có dung lượng bộ nhớ lớn bằng cách sử dụng các trang bộ nhớ lớn hơn

Tuy nhiên, khối lượng công việc cơ sở dữ liệu thường hoạt động kém với THP, vì chúng có xu hướng có các mẫu truy cập bộ nhớ thưa thớt hơn là liền kề. Bạn nên tắt THP để đảm bảo hiệu suất tốt nhất với MongoDB

Chạy các lệnh sau để tạo tập lệnh init sẽ tự động tắt THP khi khởi động hệ thống

sudo nano /etc/init.d/disable-transparent-hugepages

Dán phần sau vào bên trong nó

* soft nproc 32000
* hard nproc 32000
4

Làm cho nó có thể thực thi được

* soft nproc 32000
* hard nproc 32000
5

Đặt nó để bắt đầu tự động khi khởi động

* soft nproc 32000
* hard nproc 32000
6

4. Định cấu hình hệ thống tệp

Linux theo mặc định sẽ cập nhật thời gian truy cập cuối cùng khi tệp được sửa đổi. Khi MongoDB thực hiện ghi thường xuyên vào hệ thống tệp, điều này sẽ tạo ra sự suy giảm hiệu suất và chi phí hoạt động không cần thiết. Chúng tôi có thể tắt tính năng này bằng cách chỉnh sửa tệp

sudo nano /etc/init.d/disable-transparent-hugepages
3

* soft nproc 32000
* hard nproc 32000
8

Thêm cờ

sudo nano /etc/init.d/disable-transparent-hugepages
4 ngay sau
sudo nano /etc/init.d/disable-transparent-hugepages
5

sudo nano /etc/security/limits.conf
0

Ngoài ra, cài đặt đọc trước đĩa mặc định trên EC2 không được tối ưu hóa cho MongoDB. Số khối để đọc trước phải được điều chỉnh thành khoảng 32 khối (hoặc 16 KB) dữ liệu. Chúng ta có thể đạt được điều này bằng cách thêm một mục crontab sẽ thực thi khi hệ thống khởi động

sudo nano /etc/security/limits.conf
1

Chọn

sudo nano /etc/init.d/disable-transparent-hugepages
6 bằng cách nhấn
sudo nano /etc/init.d/disable-transparent-hugepages
7 nếu đây là lần đầu tiên bạn chỉnh sửa crontab, sau đó thêm phần sau vào cuối tệp

sudo nano /etc/security/limits.conf
2

5. khởi động lại

Khởi động lại phiên bản

sudo nano /etc/security/limits.conf
3

6. Lặp lại các bước 1 - 5

Lặp lại các bước từ 1 đến 5 cho tất cả các thành viên của bộ bản sao

Xác minh cấu hình máy chủ

Sau khi khởi động lại, bạn có thể kiểm tra xem tên máy chủ mới có hiệu lực hay không bằng cách chạy

sudo nano /etc/security/limits.conf
4

Kiểm tra xem các giới hạn của hệ điều hành đã được tăng lên bằng cách chạy

sudo nano /etc/security/limits.conf
5

Lệnh đầu tiên sẽ xuất ra

sudo nano /etc/init.d/disable-transparent-hugepages
8, lệnh thứ hai là
sudo nano /etc/init.d/disable-transparent-hugepages
9

Kiểm tra xem tính năng Trang lớn trong suốt có bị vô hiệu hóa thành công hay không bằng cách ban hành các lệnh sau

sudo nano /etc/security/limits.conf
6

Đối với cả hai lệnh, đầu ra chính xác giống như

sudo nano /etc/security/limits.conf
7

Kiểm tra xem

sudo nano /etc/init.d/disable-transparent-hugepages
4 đã được cấu hình thành công chưa

sudo nano /etc/security/limits.conf
8

Nó sẽ in một dòng tương tự như

sudo nano /etc/security/limits.conf
9

Ngoài ra, hãy xác minh rằng giá trị đọc trước của đĩa là chính xác bằng cách chạy

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000
0

Nó sẽ in

* soft nproc 32000
* hard nproc 32000
41

Xác minh cấu hình cho tất cả các thành viên của bộ bản sao

Cài đặt MongoDB

Chạy các lệnh sau để cài đặt 3 ổn định mới nhất. 4. phiên bản x của MongoDB

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000
1

Các lệnh này cũng sẽ tự động khởi động

* soft nproc 32000
* hard nproc 32000
42, daemon MongoDB. Lặp lại bước này trên tất cả các thành viên của bộ bản sao

Lặp lại cho tất cả các thành viên của bộ bản sao

Thiết lập MongoDB

Tạo * soft nproc 32000 * hard nproc 32000 43

* soft nproc 32000
* hard nproc 32000
43 lưu trữ mật khẩu được sử dụng bởi mỗi nút. Mật khẩu cho phép mỗi nút xác thực với nhau, cho phép chúng sao chép các thay đổi lẫn nhau. Mật khẩu này phải dài và rất phức tạp. Chúng tôi sẽ sử dụng lệnh openssl để đảm bảo mật khẩu của chúng tôi phức tạp

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000
2

Tạo thư mục nơi khóa sẽ được lưu trữ

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000
3

Sao chép tập tin vào thư mục mới

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000
4

Đặt quyền sở hữu của tệp khóa thành mongodb

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000
5

Đặt quyền truy cập tệp thích hợp

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000
6

Sao chép

* soft nproc 32000
* hard nproc 32000
45 cho tất cả các thành viên của bộ bản sao

Thiết lập * soft nproc 32000 * hard nproc 32000 46

Bây giờ là lúc cấu hình MongoDB để hoạt động ở chế độ replica set, cũng như cho phép truy cập từ xa vào máy chủ

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000
7

Tìm và xóa

* soft nproc 32000
* hard nproc 32000
47 hoặc đặt trước nó bằng một
* soft nproc 32000
* hard nproc 32000
48 để nhận xét nó

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000
8

Tìm phần

* soft nproc 32000
* hard nproc 32000
49 đã nhận xét và bỏ ghi chú. Sử dụng đường dẫn của keyFile đã tạo trước đó

* soft nofile 64000
* hard nofile 64000
* soft nproc 32000
* hard nproc 32000
9

Tìm phần

* soft nproc 32000
* hard nproc 32000
50 đã nhận xét và bỏ ghi chú. Thêm phần sau bên dưới, thay thế
* soft nproc 32000
* hard nproc 32000
51 bằng tên cho bộ bản sao của bạn

* soft nproc 32000
* hard nproc 32000
10

QUAN TRỌNG sử dụng cùng một

* soft nproc 32000
* hard nproc 32000
52 cho TẤT CẢ các thành viên bản sao

Tạo

* soft nproc 32000
* hard nproc 32000
53

* soft nproc 32000
* hard nproc 32000
11

Viết phần sau vào tệp

* soft nproc 32000
* hard nproc 32000
12

Kích hoạt

* soft nproc 32000
* hard nproc 32000
53

* soft nproc 32000
* hard nproc 32000
13

Khởi động lại MongoDB để áp dụng các thay đổi của chúng tôi

* soft nproc 32000
* hard nproc 32000
14

Lặp lại cho tất cả các thành viên của bộ bản sao

Khởi tạo bộ bản sao

Hãy chắc chắn rằng bạn đã thiết lập mọi thứ đúng cách trong tất cả các thành viên của bộ bản sao vào thời điểm này

Kết nối với một trong các phiên bản MongoDB (tốt nhất là

* soft nproc 32000
* hard nproc 32000
55) bằng SSH để khởi tạo bộ bản sao và khai báo các thành viên của nó. Lưu ý rằng bạn chỉ phải chạy các lệnh này trên một trong các thành viên. MongoDB sẽ tự động đồng bộ hóa cấu hình bộ bản sao cho tất cả các thành viên khác

Kết nối với MongoDB thông qua lệnh sau

* soft nproc 32000
* hard nproc 32000
15

Khởi tạo bộ bản sao

* soft nproc 32000
* hard nproc 32000
16

Lệnh sẽ tự động thêm thành viên hiện tại làm thành viên đầu tiên của bộ bản sao

Tạo tài khoản quản trị

Cấu hình MongoDB mặc định được mở rộng, nghĩa là bất kỳ ai cũng có thể truy cập cơ sở dữ liệu được lưu trữ trừ khi mạng của bạn có các quy tắc tường lửa

Tạo người dùng quản trị để truy cập cơ sở dữ liệu

* soft nproc 32000
* hard nproc 32000
15

Chọn cơ sở dữ liệu

* soft nproc 32000
* hard nproc 32000
56

* soft nproc 32000
* hard nproc 32000
18

Tạo tài khoản

* soft nproc 32000
* hard nproc 32000
56

* soft nproc 32000
* hard nproc 32000
19

Không nên sử dụng các ký tự đặc biệt trong mật khẩu để tránh sự cố khi đăng nhập

Thêm thành viên bản sao

Thêm thành viên dữ liệu thứ hai vào bộ bản sao

* soft nproc 32000
* hard nproc 32000
0

Và cuối cùng, thêm người phân xử, đảm bảo chuyển thành true làm đối số thứ hai (biểu thị rằng thành viên là người phân xử chứ không phải thành viên dữ liệu)

* soft nproc 32000
* hard nproc 32000
1

Đảm bảo thay thế

* soft nproc 32000
* hard nproc 32000
58 bằng tên miền của riêng bạn

Xác minh trạng thái bộ bản sao

Hãy xem trạng thái thiết lập bản sao bằng cách chạy

* soft nproc 32000
* hard nproc 32000
2

Kiểm tra mảng

* soft nproc 32000
* hard nproc 32000
59. Tìm một thành viên
* soft nproc 32000
* hard nproc 32000
60, một thành viên
* soft nproc 32000
* hard nproc 32000
61 và một thành viên
* soft nproc 32000
* hard nproc 32000
62. Tất cả các thành viên phải có giá trị
* soft nproc 32000
* hard nproc 32000
63 là
* soft nproc 32000
* hard nproc 32000
64. Nếu không, đảm bảo rằng các thành viên có thể nói chuyện với nhau trên cổng
* soft nproc 32000
* hard nproc 32000
65 bằng cách sử dụng
* soft nproc 32000
* hard nproc 32000
66 chẳng hạn

Kết nối MongoDB với Xác thực

Sử dụng dòng lệnh

* soft nproc 32000
* hard nproc 32000
3

Nhập mật khẩu khi được nhắc

Để tìm nạp đúng thông tin tài khoản quản trị viên, hãy sử dụng

* soft nproc 32000
* hard nproc 32000
67 khi truy cập MongoDB

Sử dụng chuỗi kết nối

* soft nproc 32000
* hard nproc 32000
4

Tham khảo bài đăng này để biết thêm thông tin về định dạng chuỗi kết nối

Đừng quên thay đổi

  • người dùng và mật khẩu của riêng bạn
  • * soft nproc 32000
    * hard nproc 32000
    
    58 vào tên miền của riêng bạn
  • * soft nproc 32000
    * hard nproc 32000
    
    69 thành tên cơ sở dữ liệu của riêng bạn
  • * soft nproc 32000
    * hard nproc 32000
    
    51 thành tên bộ bản sao của riêng bạn

Sao lưu tự động vào AWS S3

Tín dụng

  • https. //ý chính. github. com/eladnava/96bd9771cd2e01fb4427230563991c8d
  • https. //ý chính. github. com/caraboides/7679bb73f4f13e36fc2b9dbded3c24c0

Tập lệnh đầu tiên yêu cầu sử dụng thêm dung lượng để chứa các tệp sao lưu tạm thời và tập lệnh thứ hai cho phép bạn sao lưu trực tiếp các tệp vào S3 mà không cần sử dụng thêm dung lượng. Vì vậy, tôi đã hợp nhất cả hai cùng với xác thực để sao lưu/khôi phục cơ sở dữ liệu một cách dễ dàng

Làm cách nào để cài đặt MongoDB trên phiên bản EC2 Linux?

8 Các bước đơn giản để cài đặt MongoDB với xác thực trên EC2 AMI. .
Bước 1. Kết nối với phiên bản ec2 bằng tệp pem/ppk. .
Bước 2. Cài đặt mongodb bằng lệnh bên dưới. .
Bước 3. Bắt đầu dịch vụ MongoDB bằng lệnh bên dưới. .
Bước 4. Bắt đầu MongoDB khi khởi động lại. .
Bước 5. Kết nối với vỏ mongo. .
Bước 6. Chọn Quản trị viên. .
Bước 7. Tạo người dùng

Làm cách nào để triển khai MongoDB trên AWS EC2?

Các bước triển khai .
Chuẩn bị một tài khoản AWS. Đăng ký tài khoản AWS, chọn Khu vực, tạo cặp khóa và yêu cầu tăng hạn ngạch tài khoản, nếu cần
Khởi chạy Bắt đầu nhanh. .
Kết nối với các nút MongoDB

Làm cách nào để cài đặt MongoDB trên EC2 Ubuntu?

Cài đặt MongoDB trên phiên bản AWS Ubuntu EC2 .
Nhập khóa chung được sử dụng bởi hệ thống quản lý gói. .
thêm nguồn. .
Tải lại cơ sở dữ liệu gói cục bộ. .
Cài đặt các gói MongoDB. .
Bắt đầu và xác minh dịch vụ. .
Cho phép dịch vụ bắt đầu mỗi lần khởi động lại

Làm cách nào để cài đặt MongoDB trên máy chủ AWS?

Cài đặt và định cấu hình phiên bản cộng đồng MongoDB .
Chỉnh sửa /etc/mongod. .
Sửa đổi dòng bindIp để nó trông giống như sau. .
Thay thế public-dns-name bằng tên DNS công cộng thực tế cho phiên bản của bạn, ví dụ ec2-11-22-33-44. ta-tây-2. tính toán. amazonaws. com
Lưu /etc/mongod