Datormoln är nu vanligt i de flesta företag. Det möjliggör på begäran tillgänglighet av datorkraft, databas, lagring, applikationer och andra resurser via internet.
De främsta fördelarna med molnet är att du inte behöver spendera mycket pengar för att köpa kraftfulla servrar eller bygga dina egna datacenter. Men detta är inte den enda fördelen, när du behöver skala behöver du inte köpa en ny server, du kan bara lägga till resurser med några få klick. På liknande sätt kan vi också minska antalet resurser när de inte behövs för att minska kostnaderna.
En molndatabas är en databas som körs på en molnleverantör. Det tillåter oss att lagra, hantera, hämta och manipulera vår data via en molnplattform; tillgänglig via internet.
I den här bloggen kommer vi att titta på de olika typerna av molnerbjudanden och sedan fokusera på att köra en PostgreSQL -databas med Amazon RDS
Erbjudanden och alternativ för molntjänster
Som vi kan se i bilden ovan finns det flera olika typer av molntjänster beroende på vilken åtkomstnivå som behövs.
- På plats: Det är installerat och körs på datorer i lokalerna för den person eller organisation som använder systemet. Faktum är att detta inte är en molntjänst, men det är användbart att se skillnaden.
- IaaS: Det är en onlinetjänst som tillhandahåller API:er på hög nivå som används för att komma åt olika lågnivådetaljer om underliggande nätverksinfrastruktur som fysiska datorresurser, plats, datapartitionering, skalning, säkerhet, säkerhetskopiering, etc.
- PaaS: Det tillhandahåller en plattform som tillåter kunder att utveckla, köra och hantera applikationer utan komplexiteten att bygga och underhålla infrastrukturen som är förknippad med att utveckla och lansera en app.
- SaaS: Den nås av användare över Internet med en klient (webbläsare). Det kräver ingen installation på klientsidan.
Om vi pratar om PostgreSQL, finns det molnleverantörer som erbjuder PostgreSQL i molnet; i olika smaker och med olika metoder. Som vi nämnde ovan kommer vi att fokusera på Amazon RDS.
Vad är Amazon RDS (Relational Database Service)?
Enligt Amazons webbplats erbjuder de över 165 fullt utrustade tjänster, inklusive över 40 tjänster som inte är tillgängliga någon annanstans. Så AWS är förmodligen världens mest avancerade molnleverantör när det gäller funktioner och tjänster med miljontals kunder.
Amazon RDS låter oss skapa, hantera och skala en relationsdatabas i molnet på ett enkelt och snabbt sätt, och den är tillgänglig på olika databastyper som Amazon Aurora, PostgreSQL, MySQL och mer. AWS tillhandahåller ett verktyg som heter AWS Database Migration Service för att migrera en befintlig databas till Amazon RDS.
Fördelar med Amazon RDS
- Lätt att använda: Vi kan använda Amazon RDS Management Console, AWS RDS Command-line Interface eller API-anrop för att komma åt relationsdatabasen. Vi behöver inte tillhandahålla infrastruktur eller installera och underhålla databasprogramvara.
- Skalbar: Vi kan skala vår databas beräknings- och lagringsresurser med bara några få klick. Många Amazon RDS-motortyper tillåter oss att starta en eller flera Read Replicas för att ladda lästrafik från vår primära databasinstans.
- Tillgänglighet: När vi tillhandahåller en Multi-AZ DB-instans replikerar Amazon RDS synkront data till en standby-instans i en annan tillgänglighetszon (AZ). Amazon RDS har många andra funktioner som förbättrar tillförlitligheten för kritiska produktionsdatabaser, inklusive automatiska säkerhetskopieringar, ögonblicksbilder av databaser och automatiskt värdbyte.
- Prestanda: Vi kan välja mellan två SSD-stödda lagringsalternativ:ett optimerat för högpresterande OLTP-applikationer och det andra för kostnadseffektiv allmän användning.
- Säkert: Amazon RDS låter oss köra databasinstanserna i Amazon VPC (Virtual Private Cloud), vilket gör att vi kan isolera våra databasinstanser och ansluta till vår befintliga IT-infrastruktur via ett VPN. Dessutom erbjuder många Amazon RDS-motortyper kryptering i vila och kryptering under överföring.
Även om detta inte officiellt nämns på AWS-webbplatsen, men om vi betraktar DBaaS (Databas as a Service) som en databastjänst som hanteras och distribueras i den externa leverantörens infrastruktur (enligt vår lista i avsnittet ovan) kan vi säga att Amazon RDS är en "typ" DBaaS, någonstans mellan en PaaS och en SaaS-tjänst.
En guide till PostgreSQL på Amazon RDS
Först måste vi logga in på AWS-konsolen. (Om du inte har ett AWS-konto kan du skapa ett gratis här.)
Gå sedan till Tjänster -> Databas -> RDS och sektionen Skapa databas.
Nu måste vi välja om vi vill följa den normala eller enkla skapandet , motorn och versionen som vi kommer att distribuera.
Om vi väljer det enkla skapandet behöver vi bara lägga till databasinstansen namn, användare och lösenord.
I det här fallet väljer vi PostgreSQL 10 och den normala skapandet för att kunna se skapelsedetaljerna, så detta kommer att kräva lite mer arbete än det enkla.I det här fallet väljer vi PostgreSQL 10 och den normala skapandet för att kunna se skapelsedetaljerna, så detta kommer att kräva lite mer arbete än det enkla.
I den normala skapandet väljer vi först en mall, det kan vara Produktion, Dev/Test eller Gratis nivåalternativ.
I nästa steg lägger vi till databasinstansens namn, användare och lösenord.
Nästa steg är storleken på databasinstansen där vi har flera alternativ i tre olika kategorier:Standardklasser, Minnesoptimerade klasser och Burstable-klasser.
I lagringssektionen kan vi välja disktyp, storlek och lagringsbeteende.
En av de viktigaste AWS-funktionerna är Multi-AZ-distributionen, där vi kan skapa en standby-instans i en annan tillgänglighetszon för att tillhandahålla redundans.
Om anslutningen kan vi välja ett virtuellt privat moln (VPC) för att ansluta den nya databasen. Här kan vi välja ytterligare alternativ som offentlig åtkomst, tillgänglighetszon och databasport.
Sedan har vi ytterligare konfiguration där vi kan ange databasnamnet, databasen autentisering, säkerhetskopieringsdetaljer, kryptering, övervakning, loggning och underhållstjänster (automatiska mindre uppgraderingar).
Äntligen har vi möjlighet att kontrollera de uppskattade månatliga kostnaderna.
Vi kan se mer information om kostnaderna här, eller till och med använda AWS Månadskalkylator.
När vi har lagt till all denna information måste vi vänta tills skapandeprocessen är klar.
När statusen ändras till "Tillgänglig" är vår databasinstans redo att använda.
Om vi trycker på DB-identifieraren (“pg1” i vårt exempel), kommer vi åt vår databassektion, där vi kan se en sammanfattning med information som CPU-användning, anslutningar, status och typ . Här kan vi också ändra vår instanskonfiguration eller utföra olika åtgärder som att starta om, ta bort, skapa läsreplika, ta ögonblicksbilder och ännu mer.
På samma ställe kan vi även se mer detaljerad information i olika avsnitt .
Anslutning och säkerhet
Vi kan konfigurera säkerhetsreglerna och kontrollera nätverksinformationen.
Övervakning
Vi har några mätvärden för att kontrollera vår databasstatus.
Loggar och händelser
Vi har larm, händelser och loggar från vår databas.
Konfiguration
Vi kan se vår instanskonfiguration, men också en lista med rekommendationer för att förbättra den, som att aktivera förbättrad övervakning.
Underhåll och säkerhetskopior
Vi kan se information om underhållsuppgifter, säkerhetskopieringar och ögonblicksbilder.
Nu bör vi kunna komma åt vår databas genom att använda Endpoint-namnet tilldelad av AWS ("pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com ” i vårt exempel). För detta, se till att du har tillåtit åtkomst från säkerhetsgruppsektionen och att du har aktiverat den offentliga åtkomsten från instanskonfigurationen (Offentlig tillgänglighet:Ja). I vårt exempel tillåter vi all trafik från alla källor, men av säkerhetsskäl vill du förmodligen begränsa åtkomsten från en eller några källor.
Nu ska vi försöka ansluta till vår Amazon RDS-instans från kommandoraden :
[[email protected] ~]# psql -U postgres -h pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com
Password for user postgres:
psql (11.5, server 10.6)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
postgres=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
rdsadmin | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin=CTc/rdsadmin
template0 | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/rdsadmin +
| | | | | rdsadmin=CTc/rdsadmin
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
postgres=> select version();
version
--------------------------------------------------------------------------------------------------------
PostgreSQL 10.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit
(1 row)
På samma sätt kan vi ansluta till det från vårt föredragna GUI (om vi har ett).
En anteckning om Amazon Aurora
Amazon Aurora är en MySQL- och PostgreSQL-kompatibel relationsdatabas byggd för molnet. Enligt AWS-webbplatsen är Amazon Aurora tre gånger snabbare än vanliga PostgreSQL-databaser och tillhandahåller säkerheten, tillgängligheten och tillförlitligheten för kommersiella databaser till 1/10 av kostnaden. Oavsett påståendet är detta inte en riktig PostgreSQL-instans, bara en kompatibel motor. Men om du funderar på att köra PostgreSQL på Amazon bör du definitivt överväga detta som ett möjligt alternativ. Du kan lära dig mer om Aurora och hur det relaterar till PostgreSQL här.
Slutsats
Molnet finns överallt. Vi kan använda den för både små och stora projekt. I den här bloggen tittade vi på de olika typerna av moln och delade hur man kör PostgreSQL på Amazon RDS. Låt oss veta dina tankar i kommentarerna nedan.