MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara menggunakan MongoDB di Heroku

MongoDB Atlas mudah dan gratis untuk mengatur dan menyebarkan MongoDB di Heroku. MongoDB Atlas biasanya disebut sebagai platform aplikasi data multi-cloud. Ini adalah layanan data dan cloud DB terintegrasi yang menyederhanakan dan mempercepat cara pengguna membangun dengan data.

Saat Anda mulai membuat aplikasi cloud-native yang lebih kompleks, memilih alat dan layanan yang tepat cenderung cukup melelahkan. Namun, tidak demikian halnya ketika memilih layanan cloud DB terbaik, karena MongoDB Atlas adalah solusi terbaik Anda.

Di sisi lain, Heroku adalah Platform as a Service (PaaS) yang memberi pengembang kemampuan untuk menjalankan, membangun, memanipulasi, dan mengoperasikan aplikasi di cloud. Heroku mendukung banyak bahasa pemrograman.

Panduan artikel ini akan mengilustrasikan cara menggunakan MongoDB di Heroku. Kami akan menggunakan versi MongoDB Atlas karena mudah diintegrasikan dengan sebagian besar aplikasi Heroku. Proses ini mungkin tampak rumit pada awalnya, tetapi Anda akan menyadari tidak ada yang rumit ketika Anda menyelam jauh ke dalamnya. Yang diperlukan hanyalah mengatur string koneksi klaster MongoDB Atlas Anda ke variabel konfigurasi Heroku yang dikenal, dan Anda siap melakukannya.

Edisi Atlas adalah layanan MongoDB cloud yang dikelola sepenuhnya yang mengotomatiskan manajemen cluster MongoDB di cloud. Ini menawarkan penskalaan otomatis kepada pengguna, pencadangan otomatis, manajemen suite lengkap, alat analitik, dan kesalahan toleransi multi-AZ. MongoDB Atlas adalah salah satu DBaaS yang paling canggih.

Ikuti langkah-langkah yang disediakan di sini untuk mempelajari cara mengaktifkan dan menjalankan MongoDB dengan cepat. Anda juga akan dapat melihat cara menghubungkan cluster MongoDB Atlas ke aplikasi Heroku dengan mengikuti panduan mendalam yang disediakan dalam artikel ini.

Cara menerapkan MongoDB di Heroku

Panduan artikel ini mengasumsikan bahwa Anda memiliki prasyarat berikut:

  1. Anda fasih dengan MongoDB dan telah menulis aplikasi MongoDB
  2. Anda fasih dengan Heroku dan telah menggunakan aplikasi Heroku sebelumnya
  3. Anda telah menginstal Heroku CLI
  4. Anda menguasai Git dan telah menginstalnya.

Dengan prasyarat yang disebutkan, mari kita pelajari lebih lanjut tentang materi pelajaran yang dibahas di atas.

Menyiapkan Kluster Atlas MongoDB

Pertama, kita akan melihat cara menyiapkan MongoDB Atlas Cluster dalam waktu kurang dari lima langkah.

Langkah 1:Membuat akun MongoDB Atlas

Catatan: Jika Anda telah membuat akun MongoDB dengan alamat email Anda, lewati proses pendaftaran dan masuk ke akun Anda.

Mendaftar untuk akun MongoDB Atlas baru sangat mudah. Anda dapat memilih untuk menggunakan alamat email atau akun Google Anda untuk mendaftar.

Proses ini sepenuhnya gratis; oleh karena itu, Anda tidak perlu khawatir dikenakan biaya tambahan.

Ikuti tautan ini untuk mendaftar akun MongoDB Atlas secara gratis. Cukup isi detail Anda dan klik tombol “Mulai gratis” untuk mendapatkan akun Atlas gratis Anda.

Setelah Anda memiliki akun Atlas, lanjutkan ke langkah berikutnya

Langkah 2:Membuat Proyek dan organisasi Anda

MongoDB Atlas akan, secara default, meminta Anda untuk membuat organisasi dan proyek setelah menyelesaikan proses pendaftaran. Isi detail yang diperlukan dengan cepat untuk menyelesaikan proses ini dan lanjutkan ke langkah berikutnya. Organisasi dan project akan digunakan untuk men-deploy cluster Anda di masa mendatang.

Langkah 3:Terapkan cluster

Pada fase ini, Anda akan memilih sebuah cluster dari berbagai pilihan cluster. Demi panduan artikel ini, kami akan menggunakan opsi “Shared Cluster”, yang merupakan opsi cluster gratis yang disediakan oleh MongoDB Atlas. Di bawah opsi “Cluster Bersama”, klik “Buat”.

Anda akan diminta untuk memilih beberapa opsi untuk cluster Anda di halaman berikutnya, seperti yang disorot di bawah ini:

Penyedia &Wilayah Cloud

Di sini Anda diharuskan memilih ke mana cluster Anda akan di-deploy. Sangat penting untuk memilih wilayah yang paling dekat dengan aplikasi Anda. Idealnya, Anda harus memilih region konstan untuk meminimalkan masalah terkait latensi. Kami akan menggunakan Wilayah ini, “N. Virginia (us-timur-1), dengan AWS sebagai penyedia cloud sumber kami untuk panduan ini. Kami memilih AWS sebagai penyedia cloud kami karena kami akan menerapkan di Heroku dan menghosting infrastruktur mereka di AWS.

Tingkat kluster

Di subbagian ini, Anda akan melihat tingkatan klaster yang tersedia untuk opsi klaster yang kami pilih, dalam hal ini, opsi klaster bersama. Di sini, Anda akan melihat perbandingan RAM, Storage, tiers Base Price, dan vCPU. Perbandingan ini akan membantu Anda memilih tingkat yang tepat untuk proyek Anda. Kami akan membiarkannya ke tingkat default “M0 Sandbox” untuk panduan ini.

Setelan Tambahan

Bagian ini tergantung pada tingkat yang Anda pilih. Anda mungkin mendapatkan beberapa pengaturan tambahan tergantung pada tingkat yang Anda pilih. Pengaturan ini akan mencakup opsi pencadangan dan versi MongoDB yang akan digunakan. Pilih MongoDB versi 4.4 dan biarkan opsi pencadangan tidak aktif.

Nama kluster

Ini adalah pilihan terakhir. Di sini akan membantu jika Anda menamai cluster Anda. Saya akan memanggil cluster kami "Leafix." Ingatlah bahwa Anda tidak akan diizinkan untuk mengubahnya setelah membuat cluster.

Catatan:Sebaiknya tinjau opsi yang dipilih dan buat perubahan yang diperlukan sebelum membuat cluster menggunakan tombol “Buat Cluster”.

Langkah 4:Buat Pengguna DB untuk cluster yang baru Anda buat

MongoDB Atlas mengharuskan klien mengautentikasi sebagai pengguna database MongoDB untuk mengakses cluster. Ikuti langkah-langkah yang disediakan untuk membuat pengguna DB untuk cluster Anda.

  • Arahkan ke bagian “Akses Database”. Itu terletak di bawah tab "Keamanan" di sisi kiri.
  • Klik opsi “Tambahkan Pengguna Database baru”.
  • Permintaan akan muncul. Masukkan metode autentikasi Anda, dan hak istimewa pengguna basis data
  • Gunakan "Kata Sandi" sebagai metode otentikasi Anda dan berikan kata sandi dan nama pengguna.

Catatan: Sangat disarankan untuk membuat kata sandi yang kuat secara otomatis dari Atlas untuk mencegah komplikasi terkait ketidakamanan. Setelah Anda membuat kata sandi secara otomatis, salin dan simpan di tempat yang nyaman untuk mengambilnya dengan mudah di masa mendatang. Langkah ini sangat penting karena kami akan memerlukan kata sandi saat menghubungkan ke cluster.

  • Berikan hak istimewa paling banyak kepada pengguna dengan memilih opsi “Admin Atlas”.
  • Setelah Anda selesai, klik “Tambah pengguna” untuk membuat pengguna DB.

Langkah 5:Berikan akses cluster alamat IP resmi

Ini adalah langkah terakhir saat menyiapkan cluster MongoDB Atlas. Bagian ini akan memilih alamat IP yang memungkinkan kita untuk mengakses cluster Atlas. Untuk memberikan otorisasi, ikuti langkah-langkah yang disebutkan di sini:

  1. Di bagian “Keamanan”, pilih “Akses Jaringan”.
  2. Selanjutnya, pilih “Tambahkan Alamat IP”.
  3. Pilih “Izinkan Akses dari Mana Saja” dan klik tombol “Konfirmasi” untuk menyelesaikan proses.

Itu saja. Anda telah berhasil menyiapkan cluster MongoDB Atlas Anda.

Catatan :Anda tidak ingin mengizinkan jenis akses alamat IP ini di lingkungan produksi karena masalah keamanan. Anda perlu mengidentifikasi alamat IP yang tepat untuk aplikasi Anda dan secara eksplisit mengatur rentang alamat IP. Proses ini disesuaikan untuk meningkatkan keamanan cluster Anda.

Menghubungkan ke Cluster Anda

Untuk terhubung ke cluster yang baru Anda buat, ikuti panduan ini:

  1. Di bawah bagian “Penyimpanan Data” di bilah navigasi sebelah kiri, klik “Cluster”.
  2. Klik pada tab “Hubungkan”
  3. Pilih versi driver Anda, lalu salin string koneksi saja

Setelah selesai, perbarui string koneksi. Sekali lagi, jangan lupa untuk menambahkan nama pengguna dan kata sandi Anda.

Membuat akun Heroku

Membuat akun Heroku sangat mudah. Pertama, kunjungi situs web resmi Heroku dan daftar seperti yang kami lakukan untuk MongoDB Atlas. Setelah menyelesaikan akun Heroku Anda, lanjutkan dan instal Heroku CLI.

Instal Heroku CLI

Sangat penting untuk memastikan Anda telah menginstal Git di OS Linux Anda karena Heroku CLI membutuhkan Git. Git adalah sistem kontrol versi populer yang umum digunakan oleh sebagian besar pengembang. Menginstal Git sangat mudah. Buka terminal Anda dan jalankan perintah di bawah ini:

sudo apt-get install git-all

Keluaran:

Perintah itu akan menginstal Git ke OS Linux Anda. Setelah itu, jalankan perintah lain ini untuk menginstal Heroku di OS Linux Anda:

sudo snap install --classic heroku

Keluaran:

Berikan waktu kepada terminal untuk menjalankan perintah dan menginstal Heroku sepenuhnya.

Masuk dan Buat Aplikasi Baru di Situs Heroku

Kami yakin Anda telah mengikuti artikel dengan cermat, dan Anda telah membuat akun Heroku. Jika sudah, buka Dasbor Heroku Anda. Masukkan detail yang Anda gunakan untuk membuat Akun Heroku Anda untuk masuk ke dasbor Anda. Setelah Anda masuk, lanjutkan ke langkah berikutnya untuk membuat aplikasi baru:

  1. Navigasi ke heroku.com/apps
  2. Pilih Baru>Buat aplikasi baru>Pilih Wilayah>Buat aplikasi.
  3. Bersabarlah saat aplikasi dibuat.
  4. Setelah proses selesai, Anda akan diarahkan ke dasbor Anda. Pilih bagian “Terapkan”

Menghubungkan aplikasi Heroku ke repositori lokal

Ikuti panduan penerapan yang disediakan di bagian penerapan artikel ini yang Anda pilih sebelumnya.

Tetap saja, masuk ke Heroku di bagian “Menyebarkan” yang kami pilih sebelumnya.

Jalankan perintah berikut (juga ditentukan di bagian Deploy) untuk terhubung ke Heroku dan membangun Dyno baru dari direktori root server/proyek Anda:

Catatan: Tanda kurung siku “ ” yang digunakan dalam contoh di bawah menunjukkan nilai pengenal/parameter/argumen yang disediakan pengguna. Saat menjalankan perintah, Anda harus mengabaikannya.

# Tambahkan jarak jauh Heroku

heroku git:remote -a <name-of-the-newly-created-app>

# Lihat remote yang tersedia.

# Koneksi ke repositori jarak jauh 'heroku' yang baru akan terlihat.

git remote -v

# Di cabang pengembangan, komit pekerjaan terbaru.

git add .

git commit -m 'Write a clear, meaningful commit message here.'

git push origin <development-branch-name>

# Cabang harus diperiksa ke cabang master.

git checkout master

# Pembaruan dari cabang pengembangan digabungkan.

git merge <development-branch-name>

git push heroku master

Mengatur Heroku untuk terhubung ke MongoDB Atlas Cluster menggunakan variabel konfigurasi

Kami bersenang-senang dengan cepat menyiapkan cluster Atlas kami, tetapi kami pikir Anda akan lebih menikmati bagian ini!

Aplikasi Heroku yang didukung Atlas mudah dibuat. Buat var konfigurasi tingkat aplikasi yang berisi string koneksi cluster Anda. Anda dapat mengakses var konfigurasi itu dengan aman di dalam aplikasi Anda setelah disiapkan!

Begini caranya:

Langkah 1:Buka Heroku CLI dan login.

heroku login

Perintah ini membawa Anda ke halaman login Heroku di browser web Anda. Klik tombol “Masuk” jika Anda sudah masuk. Anda juga dapat menggunakan tanda -i untuk masuk dari baris perintah.

Langkah 2:Buat salinan aplikasi demo saya

Saya telah membuat prototipe aplikasi Node yang menggunakan MongoDB Atlas dan ingin saya publikasikan ke Heroku untuk melanjutkan pelajaran ini. Kloning, lalu buka direktori berikut:

git clone https://github.com/adriennetacke/mongodb-atlas-heroku-leaflix-demo.git

cd mongodb-atlas-heroku-leaflix-demo

Keluaran:

Langkah 3:Buat aplikasi Heroku

heroku create leaflix

Keluaran:

Seperti yang Anda lihat, saya telah memberi nama pada leaflix saya.

Dapatkan string koneksi Atlas Cluster Anda

Harap kembali ke dasbor cluster Atlas Anda untuk mengambil string koneksi kami.

  • Pilih “Hubungkan” dari menu tarik-turun.
  • Pilih “Hubungkan aplikasi Anda” dari menu tarik-turun.

String koneksi yang kita perlukan untuk terhubung ke cluster kita akan ditemukan di sini. Catat string koneksi.

Rekatkan string koneksi ke editor; kami akan membuat beberapa perubahan sebelum menetapkannya ke variabel konfigurasi Heroku.

Atlas dengan mudah memasukkan nama pengguna dari pengguna basis data yang kami buat sebelumnya, seperti yang Anda lihat. Ganti "kata sandi" dengan kata sandi pengguna database pribadi Anda dan "dbname" dengan "sample_mflix", yang merupakan kumpulan data sampel yang akan digunakan aplikasi demo kami untuk melengkapi string koneksi dan membuatnya valid.

Catatan:Jika Anda tidak memiliki kata sandi untuk pengguna database Anda, buat kata sandi secara otomatis dan gunakan dalam string koneksi. Jika Anda membuat ulang secara otomatis, ingatlah untuk memperbaruinya! Buka Akses Basis Data> Klik “Edit” pada pengguna basis data yang kata sandinya ingin Anda temukan> Atur ulang kata sandi Anda> Buat Kata Sandi Aman lainnya secara otomatis.

Buat variabel konfigurasi MONGODB_URI

Sekarang setelah kita membuatnya dengan benar, saatnya untuk menyimpan string koneksi kita dalam variabel konfigurasi Heroku. Setel variabel konfigurasi MONGODB_URI ke string koneksi kami:

heroku config:set MONGODB_URI="mongodb+srv://yourUsername:[email protected]/sample_mflix?retryWrites=true&w=majority"

Berikut adalah beberapa poin penting yang perlu diingat:

  • Perintah ini hanya terdiri dari satu baris.
  • Karena format string koneksi kita berisi karakter khusus, maka harus diapit dalam tanda kutip.

Sesederhana itu! Anda telah berhasil menambahkan string koneksi cluster Atlas Anda ke variabel konfigurasi Heroku, memungkinkan Anda mengaksesnya dengan aman setelah aplikasi Anda di-deploy ke Heroku.

Catatan: Anda juga dapat memasukkan var konfigurasi ini di tab "Pengaturan" Dasbor Heroku untuk aplikasi Anda. Buka Leaflix> Pengaturan di aplikasi Anda. Klik tombol “Reveal Config Vars” di bagian Config Vars dan masukkan config var Anda di sana.

Langkah terakhir adalah mengubah kode aplikasi Anda untuk mengizinkan akses ke variabel-variabel ini.

Menggunakan nilai var konfigurasi Heroku untuk menghubungkan Aplikasi Anda ke MongoDB Atlas Cluster

Anda akan melihat bahwa kami telah mengkodekan string koneksi cluster Atlas kami di aplikasi demo kami. Kita perlu mengerjakan ulang kode kita untuk menggunakan variabel konfigurasi Heroku yang dihasilkan sebelumnya.

Variabel lingkungan digunakan untuk mengekspos vars konfigurasi ke kode aplikasi Anda. Bahasa yang Anda pilih untuk mengakses variabel ini akan menentukan cara Anda mengaksesnya; misalnya, di Java, Anda akan menggunakan System.getenv('key') panggilan, dan di Ruby, Anda akan menggunakan ENV['key'] panggilan.

Mengetahui bahwa aplikasi kita ditulis dalam Node, kita dapat menggunakan variabel process.env di Node.js untuk terhubung ke cluster Atlas kita. Ubah konstanta uri di file server.js menjadi:

const uri = process.env.MONGODB_URI;

Itu menyimpulkan diskusi kami. Aplikasi kami akan dengan aman mengakses string koneksi klaster Atlas kami setelah diterapkan karena kami menambahkannya sebagai var konfigurasi Heroku.

Simpan file, lakukan modifikasi, lalu terapkan ke Heroku.

git commit -am "fix: refactor hard-coded connection string to Heroku config var"

git push heroku master

Aplikasi Anda sekarang telah di-deploy! Dengan menggunakan perintah ini, Anda dapat memeriksa ulang bahwa setidaknya satu instance Leaflix sedang berjalan:

heroku ps:scale web=1

Anda akan mengetahui bahwa setidaknya satu instans aktif dan berjalan jika Anda mendapatkan pemberitahuan yang menyatakan, “Penskalaan dynos… selesai, saat ini menjalankan web pada 1:Gratis.”

Terakhir, navigasikan ke situs web aplikasi Anda. Anda dapat melakukannya dengan mengikuti langkah-langkah di bawah ini:

heroku open

Saat Anda menekan tombol “Need a Laugh?” tombol, perangkat lunak kami akan memilih film berdasarkan kategori ” Komedi ” di area genre. Jika semuanya beres, Anda akan melihat sesuatu seperti ini:sample_mflix dataset digunakan dalam contoh ini, yang berasal langsung dari cluster Atlas kami.

Mengonfigurasi alamat IP untuk Heroku di MongoDB Atlas

Cluster kami sudah beroperasi, dan aplikasi kami sekarang aktif di Heroku!

Kami menyiapkan cluster kami untuk menerima koneksi dari alamat IP mana pun untuk membawa kami melalui panduan artikel. Anda lebih suka membatasi akses ke aplikasi Anda saja, dan ada beberapa opsi di Heroku untuk melakukannya.

Opsi pertama adalah menggunakan add-on untuk memberi aplikasi Anda alamat IP keluar statis yang dapat Anda gunakan untuk membatasi akses di Atlas. Beberapa contoh dapat ditemukan di sini.

Pilihan lainnya adalah menggunakan Heroku Private Spaces dan menggunakan IP keluar statis ruang tersebut. Ini adalah pilihan yang lebih mahal, tetapi menghilangkan add-on tambahan.

Ada berbagai dokumen dan artikel di luar sana yang mengklaim bahwa Anda dapat menggunakan rentang AWS atau Heroku IP untuk menyediakan akses ke IP yang berasal dari area AWS Anda atau Heroku Dynos di wilayah tersebut. Meskipun ini mungkin, hal ini tidak disarankan karena rentang tersebut dapat berubah seiring waktu. Jadi, sebaiknya gunakan salah satu dari dua pendekatan yang tercantum di atas.

Anda dapat menggunakan alamat IP untuk aplikasi Anda untuk mengonfigurasi firewall Anda di Atlas setelah Anda memilikinya.

Hapus semua rentang IP yang ada dari klaster Atlas Anda, lalu tambahkan ke daftar yang diizinkan. Anda dapat melakukannya dengan mengikuti prosedur yang kami gunakan untuk “Menambahkan alamat IP dan menghapus rentang IP yang ada.”

Itu saja! Anda telah berhasil menerapkan MongoDB di Heroku


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Temukan dokumen dengan ObjectID di mongoDB

  2. Peta MongoDB()

  3. Cara menggunakan findOne luwak

  4. Apa itu TransientTransactionError di Mongoose (atau MongoDB)?

  5. apollostack/graphql-server - cara mendapatkan bidang yang diminta dalam kueri dari resolver