Taufik Mulyana
Taufik Mulyana
Linux System Administrator, Interested in Linux, Cloud, Containers
November 25, 2018 5 min read

Cara Install MongoDB di Ubuntu 18.04

mongodb

Cara Install MongoDB di Ubuntu 18.04, MongoDB merupakan sebuah database sumber terbuka yang menggunakan model data document-oriented dan merupakan sebuah non-structured query language atau nosql, menyimpan data dengan format BSON yang merupakan bentuk biner dari JSON, Mongodb adalah salah satu dari beberapa sistem nosql paling populer,

MongoDB tidak memiliki tables tapi MongoDB memiliki collections. dimana mysql memilik table pada entities (rows) dan values (column) MongoDB hanya memiliki collection yang bisa anda masukan apapun kesana, Dimana SQL terstruktur sedangkan MongoDB tidak,

Salah satu benefit yang ditawarkan oleh mongodb adalah penggunaan pada skema dinamis yang mengeliminasi kebutuhan untuk mendefinisikan struktur, seperti fields atau value types. seperti model mengizinkan hierarchical relationship representation, array storage, dan kemampuan untuk mengganti record struktur dengan menambahkan atau menghapus fields dengan mudah, MongoDB merupakan solusi NoSQL yang datang dengan embedding, auto-sharding, dan replikasi onboard untuk scalibility dan high availability yang lebih baik.

Fitur Pada MongoDB

  • Mendukung ad-hoc query
  • Setiap field di dokumen dapat di index
  • Mendukung Replikasi Master Slave
  • Database dapat berjalan pada banyak server, data di duplikasi untuk memitigasi sistem jika terjadi kesalahan perangkat keras
  • Untuk melakukan sharding mongodb telah memiliki fitur load balancing otomatis
  • Mendukung MapReduce dan Aggregation tools
  • Mudah mengadministrasi saat terjadi kesalahan
  • Menggunakan format BSON yang mirip format json
baca juga  Cara Backup dan Restore Database MongoDB

pada pembahasan pertama akan membahas cara memasang MongoDB dan berikutnya cara mengamankan mongodb dengan menambahkan autentikasi pengguna dan mengijinkan akses dari alamat ip tertentu dengan firewall

Instalasi MongoDB

pertama import public key terlebih dahulu

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

tambahkan repositori MongoDB

$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

lalu mutakhirkan paket database

$ sudo apt-get update

pasang MongoDB

$ sudo apt-get install mongodb-org

jalankan layanan MongoDB dan aktifkan ketika boot

$ sudo systemctl start mongod
$ sudo systemctl enable mongod

Menambahkan Pengguna

untuk menambahkan pengguna masuk ke mongo shell

$ mongo

dan diawal akan menampilkan pesan bahwa  Access control pada database tidak aktif , dan akses baca, tulis dan konfigurasi tidak dibatasikita akan menambahkan pengguna sebagai admin, dan untuk kredensial disimpan pada database admin, pilih database admin dengan perintah use

> use admin
switched to db admin

lalu buat pengguna pada database admin dengan role userAdminAnyDatabase

> db.createUser(
... {
... user: "taufik",
... pwd: "supersecretpassword",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
... }
... )
--- output ---
Successfully added user: {
    "user" : "taufik",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

Mengaktifkan Otentikasi

otentikasi dapat diaktifkan melalu berkas konfigurasi mongod.conf pada bagian security

$ sudo vim /etc/mongod.conf

  security:
    authorization: enabled

simpan lalu jalankan ulang layanan MongoDB

$ sudo systemctl restart mongod

Memverifikasi Pengguna

setelah dijalankan ulang anda bisa melakukan verifikasi dengan masuk ke mongo shell dengan pengguna yang tidak terotentikasi

$ mongo

> show dbs
2018-12-11T22:05:54.370+0700 E QUERY [js] Error: listDatabases failed:{
    "ok" : 0,
    "errmsg" : "command listDatabases requires authentication",
    "code" : 13,
    "codeName" : "Unauthorized"
} :
[email protected]/mongo/shell/utils.js:25:13
[email protected]/mongo/shell/mongo.js:67:1
[email protected]/mongo/shell/utils.js:876:19
[email protected]/mongo/shell/utils.js:766:15
@(shellhelp2):1:1

bisa anda lihat pengguna yang tidak terontetikasi aksesnya akan dibatasi, lalu sekarang coba masuk mongo shell dengan pengguna yang telah dibuat tadi menggunakan perintah dibawah

$ mongo -u taufik -p --authenticationDatabase admin
MongoDB shell version v4.0.4
Enter password: 
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("08c99763-c445-43dc-8470-fa6ed36dbe9c") }
MongoDB server version: 4.0.4
>

anda masuk dengan pengguna yang telah dibuat tadi dengan role userAdminAnyDatabase, coba jalankan show dbs ridak seperti kasus tadi, dengan pengguna ini semua database akan ditampilkan

baca juga  Replikasi MongoDB dengan Keyfile Access Control

Konfigurasi Akses Jarak Jauh

untuk mengaktifkan akses dari jarak jauh atau dari komputer lain, MongoDB harus di-bind ke alamat IP publik atau jaringan pribadi, karena secara bawaan MongoDB hanya di-bind ke localhost.

Konfigurasi BindIP

buka berkas konfigurasi mongodb, dan tambahkan ip setelah 127.0.0.1, pada contoh dibawah saya akan menggunakan ip 172.17.0.51

$ sudo vim /etc/mongod.conf

net:
  port: 27017
  bindIp: 127.0.0.1, 172.17.0.51

lalu jalankan ulang layanan MongoDB

$ sudo systemctl restart mongod

Mengaktifkan Firewall

ubuntu dilengkapi dengan ufw yang dapat membantu kita untuk mengelola firewall, anda bisa mengijinkan hanya alamat IP yang telah di whitelist yang bisa mengakses MongoDB dari luar, hal ini wajib dilakukan untuk membatasi akses ke MongoDB, aktifkan ufw terlebih dahulu, dengan perintah berikut

$ ufw enable

mengijinkan alamat ip 172.17.0.53 untuk mengakses ke port 27017, alamat ip silahkan anda sesuaikan

$ sudo ufw allow from 172.17.0.53 to any port 27017

lalu kita cek status dari ufw

$ sudo ufw status
Status: active

To      Action   From
--      ------   ----
27017   ALLOW    172.17.0.53

 

Leave a Reply

Your email address will not be published. Required fields are marked *