sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL uitvoeren met Amazon RDS

Cloud computing is nu gemeengoed in de meeste bedrijven. Het zorgt voor on-demand beschikbaarheid van rekenkracht, database, opslag, applicaties en andere bronnen via internet.

De belangrijkste voordelen van de cloud zijn dat u niet veel geld hoeft uit te geven om krachtige servers te kopen of uw eigen datacenters te bouwen. Maar dit is niet het enige voordeel, wanneer u moet schalen, hoeft u geen nieuwe server te kopen, u kunt gewoon met een paar klikken resources toevoegen. Op een vergelijkbare manier kunnen we ook het aantal resources verminderen wanneer ze niet nodig zijn om de kosten te verlagen.

Een clouddatabase is een database die draait op een cloudprovider. Het stelt ons in staat om onze gegevens op te slaan, te beheren, op te halen en te manipuleren via een cloudplatform; toegankelijk via internet.

In deze blog kijken we naar de verschillende soorten cloudaanbiedingen en richten we ons vervolgens op het runnen van een PostgreSQL-database met Amazon RDS

Aanbod en opties voor cloudservices

Zoals we kunnen zien in de afbeelding hierboven, zijn er verschillende soorten cloudservices afhankelijk van het benodigde toegangsniveau.

  • Op locatie: Het wordt geïnstalleerd en draait op computers in de gebouwen van de persoon of organisatie die het systeem gebruikt. In feite is dit geen cloudservice, maar het is handig om het verschil te zien.
  • IaaS: Het is een online service die API's op hoog niveau biedt die worden gebruikt om toegang te krijgen tot verschillende details op laag niveau van de onderliggende netwerkinfrastructuur, zoals fysieke computerbronnen, locatie, gegevenspartitionering, schaling, beveiliging, back-up, enz.
  • PaaS: Het biedt een platform waarmee klanten applicaties kunnen ontwikkelen, uitvoeren en beheren zonder de complexiteit van het bouwen en onderhouden van de infrastructuur die gepaard gaat met het ontwikkelen en lanceren van een app.
  • SaaS: Het is toegankelijk voor gebruikers via internet met behulp van een client (browser). Het vereist geen installatie aan de clientzijde.

Als we het over PostgreSQL hebben, er zijn cloudproviders die PostgreSQL in de cloud aanbieden; in verschillende smaken en met verschillende methoden. Zoals we hierboven vermeldden, gaan we ons concentreren op Amazon RDS.

Wat is Amazon RDS (Relational Database Service)?

Volgens de Amazon-website bieden ze meer dan 165 volledig uitgeruste services, waaronder meer dan 40 services die nergens anders beschikbaar zijn. AWS is dus waarschijnlijk 's werelds meest geavanceerde cloudprovider op het gebied van functies en services met miljoenen klanten.

Amazon RDS stelt ons in staat om op een gemakkelijke en snelle manier een relationele database in de cloud te creëren, beheren en schalen, en het is beschikbaar op verschillende databasetypes zoals Amazon Aurora, PostgreSQL, MySQL en meer. AWS biedt een tool genaamd AWS Database Migration Service om een ​​bestaande database te migreren naar Amazon RDS.

Voordelen van Amazon RDS

  • Eenvoudig te gebruiken: We kunnen de Amazon RDS Management Console, de AWS RDS Command-Line Interface of API-aanroepen gebruiken om toegang te krijgen tot de relationele database. We hebben geen infrastructuurvoorziening of het installeren en onderhouden van databasesoftware nodig.
  • Schaalbaar: We kunnen de reken- en opslagbronnen van onze database met slechts een paar klikken opschalen. Met veel Amazon RDS-enginetypen kunnen we een of meer Read Replica's starten om leesverkeer van onze primaire database-instantie te ontlasten.
  • Beschikbaarheid: Wanneer we een Multi-AZ DB-instantie inrichten, repliceert Amazon RDS de gegevens synchroon naar een stand-by-instantie in een andere Beschikbaarheidszone (AZ). Amazon RDS heeft vele andere functies die de betrouwbaarheid van kritieke productiedatabases verbeteren, waaronder automatische back-ups, database-snapshots en automatische hostvervanging.
  • Prestaties: We kunnen kiezen tussen twee opslagopties met SSD-ondersteuning:één geoptimaliseerd voor krachtige OLTP-toepassingen en de andere voor kosteneffectief algemeen gebruik.
  • Beveiligd: Met Amazon RDS kunnen we de database-instanties uitvoeren in Amazon VPC (Virtual Private Cloud), waarmee we onze database-instanties kunnen isoleren en via een VPN verbinding kunnen maken met onze bestaande IT-infrastructuur. Ook bieden veel Amazon RDS-engine-types encryptie in rust en encryptie in transit.

Hoewel dit niet officieel wordt vermeld op de AWS-website, maar als we DBaaS (Database as a Service) beschouwen als een databaseservice die wordt beheerd en geïmplementeerd in de infrastructuur van de externe provider (volgens onze lijst in het gedeelte hierboven) kunnen we zeggen dat Amazon RDS een "soort" DBaaS is, ergens tussen een PaaS- en een SaaS-service in.

Een gids voor PostgreSQL op Amazon RDS

Eerst moeten we inloggen op de AWS-console. (Als je geen AWS-account hebt, kun je hier een gratis account maken.)

Ga vervolgens naar Services -> Database -> RDS en Database maken sectie.

Nu moeten we kiezen of we de normale of eenvoudige creatie willen volgen , de engine en versie die we zullen implementeren.

Als we eenvoudig maken selecteren, hoeven we alleen de database-instantie toe te voegen naam, gebruiker en wachtwoord.

In dit geval kiezen we PostgreSQL 10 en de normale creatie om de details van de creatie te kunnen zien, dus dit zal wat meer werk vergen dan de gemakkelijke.

In dit geval zullen we PostgreSQL 10 en de normale creatie kiezen om de creatiedetails te kunnen zien, dus dit zal wat tijd vergen meer werk dan de gemakkelijke.

Tijdens de normale creatie kiezen we eerst een sjabloon, dit kan de optie Productie, Dev/Test of Gratis zijn.

In de volgende stap voegen we de naam van de database-instantie, gebruiker , en wachtwoord.

De volgende stap is de grootte van de database-instantie, waarbij we verschillende opties hebben in drie verschillende categorieën:standaardklassen, voor geheugen geoptimaliseerde klassen en burstable-klassen.

In de opslagsectie kunnen we het schijftype, de grootte en opslaggedrag.

Een van de belangrijkste AWS-functies is de Multi-AZ-implementatie, waarbij we kunnen een standby-instantie maken in een andere beschikbaarheidszone om redundantie te bieden.

Over de connectiviteit kunnen we een Virtual Private Cloud (VPC) kiezen om verbind de nieuwe database. Hier kunnen we extra opties selecteren, zoals openbare toegang, beschikbaarheidszone en databasepoort.

Vervolgens hebben we een aanvullende configuratie waarin we de databasenaam, database authenticatie, back-updetails, codering, bewaking, logboekregistratie en onderhoudsservice (automatische kleine upgrades).

Ten slotte hebben we de mogelijkheid om de geschatte maandelijkse kosten te controleren.

 

We kunnen hier meer details over de kosten zien, of zelfs de AWS gebruiken Maandelijkse rekenmachine.

Na het toevoegen van al deze informatie, moeten we wachten tot het creatieproces is voltooid.

Als de status verandert in "Beschikbaar", is onze database-instantie klaar om gebruik.

Als we op de DB-identifier ("pg1" in ons voorbeeld) drukken, krijgen we toegang tot onze databasesectie, waar we een samenvatting kunnen zien met informatie zoals CPU-gebruik, verbindingen, status en type . Hier kunnen we ook onze instantieconfiguratie wijzigen of verschillende acties uitvoeren, zoals opnieuw opstarten, verwijderen, leesreplica maken, snapshots maken en zelfs meer.

Op dezelfde plaats kunnen we ook meer gedetailleerde informatie zien in verschillende secties .

​Connectiviteit en beveiliging

We kunnen de beveiligingsregels configureren en de netwerkinformatie controleren.

Bewaking

We hebben een aantal statistieken om de status van onze database te controleren.

Logboeken en gebeurtenissen 

We hebben alarmen, gebeurtenissen en logs uit onze database.

Configuratie 

We kunnen onze instantieconfiguratie zien, maar ook een lijst met aanbevelingen om deze te verbeteren, zoals verbeterde monitoring inschakelen.

Onderhoud en back-ups 

We kunnen informatie zien over de onderhoudstaken, back-ups en het snapshotproces.

Nu zouden we toegang moeten hebben tot onze database met behulp van de Endpoint-naam toegewezen door AWS (“pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com ” in ons voorbeeld). Zorg er hiervoor voor dat u toegang hebt toegestaan ​​vanuit de sectie beveiligingsgroep en dat u de openbare toegang hebt ingeschakeld vanuit de instantieconfiguratie (Openbare toegankelijkheid:Ja). In ons voorbeeld laten we al het verkeer van alle bronnen toe, maar om veiligheidsredenen wil je waarschijnlijk de toegang van een of enkele bronnen beperken.

Laten we nu proberen verbinding te maken met onze Amazon RDS-instantie vanaf de opdrachtregel :

[[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)

Op dezelfde manier kunnen we er verbinding mee maken vanuit onze favoriete GUI (als we die hebben).

Een opmerking over Amazon Aurora

Amazon Aurora is een MySQL- en PostgreSQL-compatibele relationele database die is gebouwd voor de cloud. Volgens de AWS-website is Amazon Aurora drie keer sneller dan standaard PostgreSQL-databases en biedt het de veiligheid, beschikbaarheid en betrouwbaarheid van commerciële databases tegen een tiende van de kosten. Ongeacht de claim, dit is geen echte PostgreSQL-instantie, maar een compatibele engine. Maar als u overweegt PostgreSQL op Amazon uit te voeren, moet u dit zeker als een mogelijk alternatief beschouwen. Je kunt hier meer leren over Aurora en hoe het zich verhoudt tot PostgreSQL.

Conclusie

De cloud is overal. We kunnen het voor zowel kleine als grote projecten gebruiken. In deze blog hebben we gekeken naar de verschillende soorten clouds en gedeeld hoe PostgreSQL op Amazon RDS kan worden uitgevoerd. Laat ons in de reacties hieronder je gedachten weten.


  1. MySQL - lengte() versus char_length()

  2. Membership.ValidateUser retourneert altijd false na upgrade naar VS 2010 / .NET 4.0

  3. Hoe versier je je databaseschema?

  4. Hoe RADIANS() werkt in MariaDB