Pendekatan komputasi awan mengatasi beberapa tantangan yang terkait dengan menjalankan sistem pemrosesan data. Perusahaan berbasis data mendorong transformasi bisnis yang cepat dengan layanan cloud, dan banyak yang melihat layanan cloud sebagai peningkatan substansial dalam otomatisasi, keandalan, dan penskalaan sesuai permintaan daripada model infrastruktur tradisional yang datang sebelumnya. Sifat on-demand dari paradigma Software-as-a-Service (SaaS) berarti organisasi dapat membeli apa yang mereka butuhkan, saat mereka membutuhkannya. Tentu saja, aspek biaya dan hemat biaya sangat penting, tetapi bukan satu-satunya.
Dalam desain arsitektur sistem, kami selalu mencari sistem yang sesuai dengan jumlah pengguna yang tepat, pada tingkat kinerja yang tepat untuk masing-masing pengguna. Kami ingin menghindari masalah kinerja &kemacetan, dan jika masalah itu terjadi, kami menginginkan sistem yang beradaptasi dengan permintaan yang berubah.
Kami juga ingin semuanya lebih cepat. Proses pengembangan tangkas semakin populer; terutama karena mempercepat penyampaian nilai bisnis awal dan (melalui proses perencanaan dan umpan balik yang berkelanjutan) dapat memastikan bahwa ROI dimaksimalkan.
Terakhir, kami menginginkan pengurangan kompleksitas. Fitur utama MongoDB adalah redundansi bawaannya. Jika Anda memiliki dua atau lebih node data, node tersebut dapat dikonfigurasi sebagai kumpulan replika atau pecahan mongodb. Tanpa otomatisasi yang tepat, ini bisa menjadi tugas berulang untuk beberapa tim (jaringan, penyimpanan, OS, dll.). Otomatisasi cloud dapat membantu Anda mengurangi ketergantungan antara berbagai grup di organisasi Anda. Misalnya, Anda mungkin tidak perlu melibatkan tim jaringan saat membuat sistem database baru.
Otomasi cloud tidak hanya menghemat waktu dan uang, tetapi juga membuat organisasi Anda lebih kompetitif di pasar yang penuh tantangan.
Di blog ini, kita akan melihat Atlas, solusi dari MongoDB yang mencoba mengatasi semua masalah ini.
Memulai dengan MongoDB Atlas
Untuk memulai dengan MongoDB Atlas, buka https://cloud.mongodb.com. Dalam formulir pendaftaran, Anda perlu memberikan informasi minimal seperti email, perusahaan, negara, dan nomor ponsel.
MongoDB Atlas melakukan pekerjaan yang sangat baik dalam penyediaan infrastruktur, penyiapan. Seluruh proses menggunakan antarmuka web dinamis yang memandu Anda melalui berbagai opsi penerapan. Mudah, intuitif, dan tidak memerlukan pengetahuan khusus.
Setelah login pertama, Anda akan diminta untuk membangun cluster pertama Anda di salah satu dari tiga awan paling signifikan. Atlas bekerja dengan Amazon AWS, Google Cloud, dan Microsoft Azure. Berdasarkan pilihan Anda, Anda dapat mengambil lokasi lokasi pusat data pilihan. Untuk meningkatkan ketersediaan, Anda dapat mengatur Multi-Wilayah, Isolasi Beban Kerja, atau mengatur berbagai opsi Replikasi. Setiap proyek Atlas mendukung hingga 25 cluster, tetapi setelah kontak dengan dukungan, Anda akan dapat menghosting lebih banyak lagi.
Anda harus memilih ukuran server yang sesuai, ditambah dengan IO dan kapasitas penyimpanan. Pada artikel ini, kami akan menggunakan versi gratis. Memulai dengan MongoDB Atlas gratis untuk pembuatan prototipe, pengembangan awal, atau untuk dipelajari. Kartu kredit tidak diperlukan, jadi Anda tidak perlu repot dengan biaya tersembunyi. Edisi gratis bernama M0 Sandbox terbatas pada:
- Penyimpanan 512 MB
- vCPU dibagikan
- RAM dibagi
- 100 koneksi maksimal
- Ada batas satu cluster M0 per proyek.
Untuk kluster khusus, MongoDB Atlas ditagih per jam berdasarkan seberapa banyak yang Anda gunakan. Tarifnya tergantung pada sejumlah faktor, yang terpenting, ukuran dan jumlah server yang Anda gunakan. Harganya mulai dari 0,08/jam (M10, RAM 2GB, penyimpanan 10GB, 1vCPU) hingga M700 dengan RAM 768GB, penyimpanan 4096 GB, 96vCPU mulai dari $33,26/jam. Jelas, Anda perlu menyertakan faktor biaya lain seperti, misalnya, biaya pencadangan.
Menurut perhitungan MongoDB, AWS set replika 3-simpul M40 dan menjalankannya 24/7 selama satu bulan menggunakan penyimpanan blok standar 80GB yang disertakan akan dikenakan biaya sekitar $947.
Pengaturan dasar bekerja dengan replikasi. Jika Anda membutuhkan sharding, jenis instans M30 adalah minimum (RAM 8GB, penyimpanan 40GB, 2vCPU, harga mulai $0,54/jam).
Pengaturan Awal Akses Jaringan MongoDB Atlas
Salah satu langkah pertama yang perlu kita lakukan setelah pembuatan cluster adalah mengaktifkan daftar putih IP. Untuk mengaktifkan akses dari mana saja, Anda dapat mengatur entri daftar putih ke 0.0.0.0/0 tetapi tidak disarankan. Jika Anda tidak tahu alamat IP Anda, Atlas akan membantu Anda mengidentifikasinya.
Untuk menjaga koneksi Anda lebih aman, Anda juga dapat mengatur koneksi peering jaringan . Fitur ini tidak tersedia untuk cluster M0, M2, dan M5. Peering jaringan memungkinkan konektivitas antara MongoDB VPC dan penyedia cloud Anda. Jaringan peer VPC memungkinkan VOC yang berbeda untuk berkomunikasi di ruang pribadi, lalu lintas tidak melintasi internet publik.
Untuk mulai bekerja dengan cluster baru Anda, buat pengguna awal. Lakukan di tab Akses Database. MongoDB menggunakan Mekanisme Otentikasi Respons Tantangan Asin. Ini adalah mekanisme keamanan berdasarkan SHA-256, kredensial pengguna terhadap nama pengguna, kata sandi, dan basis data otentikasi.
Migrasi Cluster MongoDB yang Ada ke MongoDB Atlas
Ada juga kemungkinan untuk memigrasikan cluster lokal yang ada ke Mongo Atlas. Ini dilakukan melalui layanan khusus yang disebut Layanan Migrasi Langsung. Proses Migrasi Langsung Atlas mengalirkan data melalui server aplikasi yang dikontrol MongoDB.
Migrasi langsung bekerja dengan menjaga klaster di MongoDB Atlas tetap sinkron dengan database sumber Anda. Selama proses ini, aplikasi Anda dapat terus membaca dan menulis dari database sumber Anda. Karena proses melihat perubahan yang akan datang, semua akan direplikasi, dan migrasi dapat dilakukan secara online. Anda memutuskan kapan harus mengubah pengaturan koneksi aplikasi dan melakukan cutover. Untuk melakukan proses yang tidak terlalu rawan, Atlas menyediakan opsi Validasi yang memeriksa akses IP daftar putih, konfigurasi SSL, CA, dll.
Yang penting disini layanannya gratis.
Jika Anda tidak memerlukan migrasi online, Anda juga dapat menggunakan mongoimport. Gunakan mongo shell dengan minimal versi 3.2.7 selalu gunakan SSL. Anda bisa mendapatkan data pengujian dari sini.
mongoimport --host TestCluster-shard-0/testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-****.azure.mongodb.net:27017,testcluster-shard-******.azure.mongodb.net:27017 --ssl --username admin --authenticationDatabase admin --type JSON --file city_inspections.json
2019-08-15T21:53:09.921+0200 WARNING: ignoring unsupported URI parameter 'replicaset'
2019-08-15T21:53:09.922+0200 no collection specified
2019-08-15T21:53:09.922+0200 using filename 'city_inspections' as collection
Enter password:
2019-08-15T21:53:14.288+0200 connected to: mongodb://testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-*****.azure.mongodb.net:27017/?replicaSet=TestCluster-shard-0
2019-08-15T21:53:17.289+0200 [........................] test.city_inspections 589KB/23.2MB (2.5%)
2019-08-15T21:53:20.290+0200 [#.......................] test.city_inspections 1.43MB/23.2MB (6.2%)
2019-08-15T21:53:23.292+0200 [##......................] test.city_inspections 2.01MB/23.2MB (8.6%)
...
2019-08-15T21:55:09.140+0200 [########################] test.city_inspections 23.2MB/23.2MB (100.0%)
2019-08-15T21:55:09.140+0200 81047 document(s) imported successfully. 0 document(s) failed to import.
Untuk memeriksa data, login dengan mongo shell.
mongo "mongodb+srv://testcluster-*****.azure.mongodb.net/test" --username admin
MongoDB shell version v4.2.0
Enter password:
connecting to: mongodb://testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017/test?authSource=admin&compressors=disabled&gssapiServiceName=mongodb&replicaSet=TestCluster-shard-0&ssl=true
2019-08-15T22:15:58.068+0200 I NETWORK [js] Starting new replica set monitor for TestCluster-shard-0/testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017
2019-08-15T22:15:58.069+0200 I CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-01-*****.azure.mongodb.net:27017
2019-08-15T22:15:58.070+0200 I CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-00-*****.azure.mongodb.net:27017
2019-08-15T22:15:58.070+0200 I CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-02-*****.azure.mongodb.net:27017
2019-08-15T22:15:58.801+0200 I NETWORK [ReplicaSetMonitor-TaskExecutor] Confirmed replica set for TestCluster-shard-0 is TestCluster-shard-0/testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017
Implicit session: session { "id" : UUID("6a5d1ee6-064b-4ba8-881a-71aa4aef4983") }
MongoDB server version: 4.0.12
WARNING: shell and server versions do not match
MongoDB Enterprise TestCluster-shard-0:PRIMARY> show collections;
city_inspections
MongoDB Enterprise TestCluster-shard-0:PRIMARY> db.city_inspections.find();
{ "_id" : ObjectId("56d61033a378eccde8a83557"), "id" : "10284-2015-ENFO", "certificate_number" : 9287088, "business_name" : "VYACHESLAV KANDZHANOV", "date" : "Feb 25 2015", "result" : "No Violation Issued", "sector" : "Misc Non-Food Retail - 817", "address" : { "city" : "NEW YORK", "zip" : 10030, "street" : "FREDRCK D BLVD", "number" : 2655 } }
{ "_id" : ObjectId("56d61033a378eccde8a83559"), "id" : "10302-2015-ENFO", "certificate_number" : 9287089, "business_name" : "NYC CANDY STORE SHOP CORP", "date" : "Feb 25 2015", "result" : "No Violation Issued", "sector" : "Cigarette Retail Dealer - 127", "address" : { "city" : "NEW YORK", "zip" : 10030, "street" : "FREDRCK D BLVD", "number" : 2653 } }
...
{ "_id" : ObjectId("56d61033a378eccde8a8355e"), "id" : "10391-2015-ENFO", "certificate_number" : 3019415, "business_name" : "WILFREDO DELIVERY SERVICE INC", "date" : "Feb 26 2015", "result" : "Fail", "sector" : "Fuel Oil Dealer - 814", "address" : { "city" : "WADING RIVER", "zip" : 11792, "street" : "WADING RIVER MANOR RD", "number" : 1607 } }
Type "it" for more
MongoDB Enterprise TestCluster-shard-0:PRIMARY>
Kesimpulan
Itu saja untuk bagian satu. Pada artikel berikutnya, kita akan membahas pemantauan, pencadangan, administrasi harian, dan layanan baru MongoDB untuk membangun Data Lakes. Tetap disini!