sql >> Databáze >  >> NoSQL >> MongoDB

Jak nasadit MongoDB na Heroku

MongoDB Atlas je snadné a zdarma nastavit a nasadit MongoDB na Heroku. MongoDB Atlas je běžně označován jako multicloudová datová aplikační platforma. Jedná se o integrovanou datovou a cloudovou DB službu, která zjednodušuje a urychluje, jak uživatelé vytvářejí s daty.

Když začnete budovat složitější cloudové nativní aplikace, výběr správných nástrojů a služeb bývá docela ohromující. To však neplatí při výběru nejlepší cloudové DB služby, protože MongoDB Atlas je vaše nejlepší řešení.

Na druhou stranu, Heroku je platforma jako služba (PaaS), která poskytuje vývojářům možnost spouštět, vytvářet, manipulovat a provozovat aplikace v cloudu. Heroku podporuje velké množství programovacích jazyků.

Tento průvodce článkem ilustruje, jak nasadit MongoDB na Heroku. Budeme používat verzi MongoDB Atlas, protože se snadno integruje s většinou aplikací Heroku. Tento proces se může na první pohled zdát složitý, ale když se do něj ponoříte hluboko, zjistíte, že na tom není nic složitého. Vše, co je potřeba, je nastavit připojovací řetězec clusteru MongoDB Atlas na známou konfigurační proměnnou Heroku a můžete začít.

Edice Atlas je plně spravovaná cloudová služba MongoDB, která automatizuje správu clusteru MongoDB v cloudu. Uživatelům nabízí automatické škálování, automatické zálohování, kompletní správu sady, analytické nástroje a chybu tolerance multi-AZ. MongoDB Atlas patří mezi nejpropracovanější DBaaS.

Postupujte podle zde uvedených kroků, abyste se naučili, jak spustit MongoDB a jak rychle spustit. Budete také moci vidět, jak připojit cluster MongoDB Atlas k aplikacím Heroku podle podrobného průvodce v tomto článku.

Jak nasadit MongoDB na Heroku

Tento průvodce článkem předpokládá, že máte splněny následující předpoklady:

  1. Jste dobře obeznámeni s MongoDB a napsali jste aplikace MongoDB
  2. Znáte Heroku a již jste dříve nasadili aplikace Heroku
  3. Nainstalovali jste Heroku CLI
  4. Znáte Git a nainstalovali jste si jej.

Se zmíněnými prerekvizitami se dočteme více o výše probírané látce.

Nastavení MongoDB Atlas Cluster

Nejprve se podíváme na to, jak nastavit MongoDB Atlas Cluster v méně než pěti krocích.

Krok 1:Vytvoření účtu MongoDB Atlas

Poznámka: Pokud jste si již vytvořili účet MongoDB se svou e-mailovou adresou, přeskočte proces registrace a přihlaste se ke svému účtu.

Registrace nového účtu MongoDB Atlas je velmi snadná. K registraci můžete použít svou e-mailovou adresu nebo svůj účet Google.

Proces je zcela zdarma; proto se nemusíte obávat, že vám budou účtovány další poplatky.

Klikněte na tento odkaz a zaregistrujte si zdarma účet MongoDB Atlas. Stačí vyplnit své údaje a kliknout na tlačítko „Začít zdarma“, abyste získali svůj bezplatný účet Atlas.

Jakmile budete mít účet Atlas, přejděte k dalšímu kroku

Krok 2:Vytvoření projektu a organizace

MongoDB Atlas vás po dokončení procesu registrace standardně vyzve k vytvoření organizace a projektu. K dokončení tohoto procesu rychle vyplňte požadované údaje a přejděte k dalšímu kroku. Organizace a projekt budou použity k nasazení vašeho clusteru v budoucnu.

Krok 3:Nasazení clusteru

V této fázi si vyberete cluster z různých možností clusteru. V zájmu tohoto průvodce článkem použijeme možnost „Shared Cluster“, což je bezplatná možnost clusteru poskytovaná MongoDB Atlas. Pod možností „Shared Cluster“ klikněte na „Create.“

Na další stránce budete vyzváni k výběru několika možností pro váš cluster, jak je zvýrazněno níže:

Poskytovatel cloudu a region

Zde musíte vybrat, kam bude váš cluster nasazen. Je nezbytné vybrat oblast nejblíže vaší aplikaci. V ideálním případě byste měli vybrat konstantní oblast, abyste minimalizovali problémy související s latencí. Budeme používat tento region, „N. Virginia (us-east-1),“ s AWS jako naším zdrojovým poskytovatelem cloudu pro tuto příručku. Vybrali jsme AWS jako našeho cloudového poskytovatele, protože budeme nasazovat na Heroku a hostovat jejich infrastrukturu na AWS.

Úroveň clusteru

V této podsekci uvidíte dostupné úrovně clusteru pro námi zvolenou možnost clusteru, v tomto případě možnosti sdíleného clusteru. Zde uvidíte srovnání RAM, úložiště, základní ceny úrovní a vCPU. Tato srovnání vám pomohou vybrat správnou úroveň vhodnou pro váš projekt. Pro tuto příručku to necháme na výchozí úrovni „M0 Sandbox“.

Další nastavení

Tato sekce závisí na zvolené úrovni. V závislosti na zvolené úrovni můžete získat některá další nastavení. Tato nastavení budou zahrnovat možnosti zálohování a verze MongoDB, které se mají nasadit. Vyberte MongoDB verze 4.4 a ponechte možnost zálohování vypnutou.

Název clusteru

Toto je poslední možnost. Zde by pomohlo, kdybyste svůj cluster pojmenovali. Nazvu náš cluster „Leafix“. Pamatujte, že po vytvoření clusteru již nebudete moci jej změnit.

Poznámka:Před vytvořením clusteru pomocí tlačítka „Create Cluster“ je vhodné zkontrolovat vybrané možnosti a provést nezbytné změny.

Krok 4:Vytvořte uživatele DB pro nově vytvořený cluster

MongoDB Atlas vyžaduje, aby se klienti ověřovali jako uživatelé databáze MongoDB pro přístup ke clusterům. Pro vytvoření uživatele databáze pro váš cluster postupujte podle uvedených kroků.

  • Přejděte do části „Přístup k databázi“. Nachází se pod záložkou „Zabezpečení“ na levé straně.
  • Klikněte na možnost „Přidat nového uživatele databáze“.
  • Objeví se výzva. Zadejte svou metodu ověřování a uživatelská práva databáze
  • Jako metodu ověření použijte „Heslo“ a zadejte heslo a uživatelské jméno.

Poznámka: Důrazně se doporučuje automaticky vygenerovat silné heslo z Atlasu, abyste předešli komplikacím souvisejícím s nejistotou. Jakmile heslo automaticky vygenerujete, zkopírujte jej a uložte na vhodné místo, abyste jej v budoucnu snadno získali. Tento krok je životně důležitý, protože při připojování ke clusteru budeme vyžadovat heslo.

  • Udělte uživateli co nejvíce oprávnění výběrem možnosti „Správce Atlasu“.
  • Až budete hotovi, klikněte na „Přidat uživatele“ a vytvořte uživatele DB.

Krok 5:Udělte přístup ke clusteru autorizovaných IP adres

Toto je poslední krok při nastavování clusteru MongoDB Atlas. Tato sekce vybere IP adresy, které nám umožní přístup ke clusteru Atlas. Chcete-li udělit oprávnění, postupujte podle zde uvedených kroků:

  1. V části Zabezpečení vyberte možnost Přístup k síti.
  2. Poté zvolte možnost Přidat IP adresu.
  3. Vyberte „Povolit přístup odkudkoli“ a kliknutím na tlačítko „Potvrdit“ dokončete proces.

To je vše. Úspěšně jste nastavili svůj cluster MongoDB Atlas.

Poznámka :Tento typ přístupu k IP adrese nechcete povolit v produkčním prostředí kvůli bezpečnostním problémům. Musíte určit přesnou IP adresu vaší aplikace a explicitně nastavit rozsah IP adres. Tento proces je přizpůsoben tak, aby zvýšil zabezpečení vašeho clusteru.

Připojování k vašemu clusteru

Chcete-li se připojit k nově vytvořenému clusteru, postupujte podle tohoto průvodce:

  1. V části „Datové úložiště“ na levém navigačním panelu klikněte na „Shluky“.
  2. Klikněte na kartu „Připojit“.
  3. Vyberte verzi ovladače a poté zkopírujte pouze připojovací řetězec

Jakmile budete hotovi, aktualizujte připojovací řetězec. Opět nezapomeňte přidat své uživatelské jméno a heslo.

Vytvoření účtu Heroku

Vytvoření účtu Heroku je velmi snadné. Nejprve navštivte oficiální web Heroku a zaregistrujte se stejně jako my pro MongoDB Atlas. Po dokončení vašeho Heroku účtu pokračujte a nainstalujte Heroku CLI.

Nainstalujte Heroku CLI

Je důležité zajistit, abyste měli na svém operačním systému Linux nainstalovaný Git, protože Heroku CLI vyžaduje Git. Git je populární systém správy verzí běžně používaný většinou vývojářů. Instalace Gitu je velmi snadná. Otevřete terminál a proveďte níže uvedený příkaz:

sudo apt-get install git-all

Výstup:

Tento příkaz nainstaluje Git do vašeho operačního systému Linux. Poté spusťte tento další příkaz pro instalaci Heroku na váš operační systém Linux:

sudo snap install --classic heroku

Výstup:

Dejte terminálu čas na provedení příkazu a kompletní instalaci Heroku.

Přihlaste se a vytvořte novou aplikaci na webu Heroku

Věříme, že jste tento článek pozorně sledovali a vytvořili jste si účet Heroku. Pokud ano, otevřete svůj Heroku Dashboard. Zadejte podrobnosti, které jste použili při vytváření účtu Heroku, abyste se přihlásili na svůj řídicí panel. Po přihlášení pokračujte dalším krokem k vytvoření nové aplikace:

  1. Přejděte na stránku heroku.com/apps
  2. Vyberte Nová>Vytvořit novou aplikaci>Vyberte oblast>Vytvořit aplikaci.
  3. Buďte trpěliví při vytváření aplikace.
  4. Jakmile proces skončí, budete přesměrováni na svůj řídicí panel. Vyberte sekci „Nasadit“

Připojení aplikace Heroku k místním úložištím

Postupujte podle pokynů k nasazení uvedených v dříve vybrané části nasazení tohoto článku.

Přesto se přihlaste do Heroku v sekci „Deploy“, kterou jsme vybrali dříve.

Spusťte následující příkazy (také specifikované v sekci Deploy) pro připojení k Heroku a vytvoření nového Dyno z kořenového adresáře serveru/projektu:

Poznámka: Lomené závorky „<> ” použité v příkladech níže označují uživatelem zadané hodnoty identifikátoru/parametru/argumentu. Při spouštění příkazů byste je měli vynechat.

# Přidat dálkové ovládání Heroku

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

# Podívejte se na dostupná dálková ovládání.

# Připojení k novému vzdálenému úložišti „heroku“ by mělo být viditelné.

git remote -v

# Ve vývojové větvi odevzdejte nejnovější práci.

git add .

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

git push origin <development-branch-name>

# Pobočky by měly být odhlášeny do hlavní pobočky.

git checkout master

# Aktualizace z vývojové větve jsou sloučeny.

git merge <development-branch-name>

git push heroku master

Nastavení Heroku pro připojení k MongoDB Atlas Cluster pomocí konfiguračních proměnných

Užili jsme si spoustu legrace při rychlém nastavování našeho clusteru Atlas, ale myslíme si, že si tuto sekci užijete ještě víc!

Aplikace Heroku, které jsou podporovány Atlasem, se snadno vytvářejí. Vytvořte proměnnou konfigurace na úrovni aplikace, která obsahuje připojovací řetězec vašeho clusteru. K této konfigurační proměnně můžete bezpečně přistupovat v rámci vaší aplikace, jakmile bude nastavena!

Uděláte to takto:

Krok 1:Otevřete Heroku CLI a přihlaste se.

heroku login

Tento příkaz vás přenese na přihlašovací stránku Heroku ve vašem webovém prohlížeči. Pokud jste již přihlášeni, klikněte na tlačítko „Přihlásit se“. K přihlášení z příkazového řádku můžete také použít parametr -i.

Krok 2:Vytvořte kopii mé ukázkové aplikace

Zkonstruoval jsem prototyp aplikace Node, která používá Atlas MongoDB a kterou bych rád publikoval v Heroku, abych v této lekci pokračoval. Naklonujte jej a přejděte do následujícího adresáře:

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

cd mongodb-atlas-heroku-leaflix-demo

Výstup:

Krok 3:Vytvořte aplikaci Heroku

heroku create leaflix

Výstup:

Jak můžete vidět, pojmenoval jsem svůj leaflix.

Získejte připojovací řetězec Atlas Cluster

Vraťte se prosím na řídicí panel clusteru Atlas a načtěte náš připojovací řetězec.

  • Z rozbalovací nabídky vyberte možnost Připojit.
  • Z rozbalovací nabídky vyberte možnost „Připojit aplikaci“.

Připojovací řetězec, který budeme potřebovat pro připojení k našemu clusteru, naleznete zde. Poznamenejte si připojovací řetězec.

Vložte připojovací řetězec do editoru; než jej přiřadíme ke konfigurační proměnné Heroku, provedeme nějaké změny.

Atlas snadno zahrnul uživatelské jméno uživatele databáze, kterého jsme dříve vytvořili, jak můžete vidět. Nahraďte „heslo“ heslem uživatele vaší osobní databáze a „dbname“ za „sample_mflix“, což je ukázkový datový soubor, který naše ukázková aplikace použije k dokončení připojovacího řetězce a jeho platnosti.

Poznámka:Pokud nemáte heslo pro uživatele databáze, vygenerujte si ho automaticky a použijte ho v připojovacím řetězci. Pokud jej znovu automaticky vygenerujete, nezapomeňte jej aktualizovat! Přejděte na Přístup k databázi> Klikněte na „Upravit“ u uživatele databáze, pro kterého chcete najít heslo> Obnovit heslo> Automaticky vygenerovat další bezpečné heslo.

Vytvořte konfigurační proměnnou MONGODB_URI

Nyní, když jsme jej správně vytvořili, je čas uložit náš připojovací řetězec do konfigurační proměnné Heroku. Nastavte konfigurační proměnnou MONGODB_URI na náš připojovací řetězec:

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

Zde je několik klíčových bodů, které je třeba mít na paměti:

  • Tento příkaz se skládá pouze z jednoho řádku.
  • Protože formát našeho připojovacího řetězce obsahuje speciální znaky, musí být uzavřen v uvozovkách.

Je to tak jednoduché! Úspěšně jste přidali připojovací řetězec clusteru Atlas do konfigurační proměnné Heroku, což vám umožňuje bezpečný přístup po nasazení aplikace do Heroku.

Poznámka: Tuto varnou konfiguraci můžete také zadat na kartě „Nastavení“ Heroku Dashboard pro vaši aplikaci. Ve svých aplikacích přejděte na Leaflix> Nastavení. Klikněte na tlačítko „Reveal Config Vars“ v sekci Config Vars a zadejte tam svou konfigurační proměnnou.

Posledním krokem je změnit kód vaší aplikace tak, aby umožňoval přístup k těmto proměnným.

Pomocí hodnot konfiguračních proměnných Heroku k připojení vaší aplikace k MongoDB Atlas Cluster

Všimnete si, že jsme v naší ukázkové aplikaci napevno zakódovali náš připojovací řetězec clusteru Atlas. Potřebujeme přepracovat náš kód, aby používal dříve vygenerovanou konfigurační proměnnou Heroku.

Proměnné prostředí se používají k odhalení proměnných konfigurace kódu vaší aplikace. Jazyk, který zvolíte pro přístup k těmto proměnným, určí, jak k nim budete přistupovat; například v Javě byste použili System.getenv(‘klíč’) volání a v Ruby byste použili ENV[‘klíč’] hovory.

S vědomím, že naše aplikace je napsána v Node, můžeme použít proměnnou process.env v Node.js k připojení k našemu clusteru Atlas. Změňte konstantu uri v souboru server.js na:

const uri = process.env.MONGODB_URI;

Tím naše diskuse končí. Naše aplikace bude po nasazení bezpečně přistupovat k našemu připojovacímu řetězci clusteru Atlas, protože jsme jej přidali jako konfigurační var Heroku.

Uložte soubor, potvrďte úpravu a poté nasaďte do Heroku.

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

git push heroku master

Vaše aplikace je nyní nasazena! Pomocí tohoto příkazu můžete znovu zkontrolovat, zda je spuštěna alespoň jedna instance Leaflix:

heroku ps:scale web=1

O tom, že je alespoň jedna instance spuštěna, budete vědět, že se zobrazí upozornění, že „Škálování dynos… hotovo, aktuálně běží web na 1:Free.“

Nakonec přejděte na web své aplikace. Můžete tak učinit podle následujících kroků:

heroku open

Když stisknete "Potřebujete se smát?" tlačítko, náš software vybere film na základě kategorie „Komedie“ v oblasti žánrů. Pokud je vše v pořádku, měli byste vidět něco takového:v tomto příkladu je použita datová sada sample_mflix, která pochází přímo z našeho clusteru Atlas.

Konfigurace IP adres pro Heroku v MongoDB Atlas

Náš cluster je již funkční a naše aplikace je nyní aktivní na Heroku!

Náš cluster jsme nastavili tak, aby přijímal připojení z jakékoli IP adresy, abychom si prošli průvodce článkem. Dáváte přednost omezení přístupu pouze ke své aplikaci a na Heroku existuje několik možností, jak to udělat.

První možností je využít doplněk, který vaší aplikaci přidělí statickou odchozí IP adresu, kterou můžete použít k omezení přístupu v Atlasu. Některé příklady lze nalézt zde.

Další možností je použít soukromé prostory Heroku a použít statické odchozí IP adresy prostoru. Toto je dražší volba, ale eliminuje další doplněk.

Existují různé dokumenty a články, které tvrdí, že můžete použít rozsahy AWS nebo Heroku IP k poskytování přístupu k IP pocházejícím z vaší oblasti AWS nebo Heroku Dynos v těchto regionech. I když je to myslitelné, nedoporučuje se to, protože takové rozsahy se mohou časem měnit. Místo toho tedy doporučujeme použít jeden ze dvou výše uvedených přístupů.

Jakmile je budete mít, můžete IP adresu (adresy) vaší aplikace použít ke konfiguraci vašeho firewallu v Atlasu.

Odstraňte všechny existující rozsahy IP z vašeho clusteru Atlas a poté je přidejte do seznamu povolených. Můžete tak učinit podle postupu, který jsme použili pro „Přidání IP adres a odstranění stávajících rozsahů IP.“

To je vše! Úspěšně jste nasadili MongoDB na Heroku


  1. Jak pokračovat ve vkládání po chybě duplicitního klíče pomocí PyMongo

  2. Jak můžete odstranit všechny dokumenty ze sbírky pomocí Mongoose?

  3. Mongoose seřadí agregovaný výsledek

  4. Export modulu databáze mongoose