Il cloud computing è ormai comune nella maggior parte delle aziende. Consente la disponibilità su richiesta di potenza di calcolo, database, storage, applicazioni e altre risorse tramite Internet.
I principali vantaggi del cloud sono che non è necessario spendere molti soldi per acquistare server potenti o costruire i propri data center. Ma questo non è l'unico vantaggio, quando devi scalare non devi acquistare un nuovo server puoi semplicemente aggiungere risorse con pochi clic. Allo stesso modo, possiamo anche ridurre il numero di risorse quando non sono necessarie per ridurre i costi.
Un database cloud è un database in esecuzione su un provider cloud. Ci consente di archiviare, gestire, recuperare e manipolare i nostri dati tramite una piattaforma cloud; accessibile via internet.
In questo blog, esamineremo i diversi tipi di offerte cloud e poi ci concentreremo sull'esecuzione di un database PostgreSQL utilizzando Amazon RDS
Offerte e opzioni di servizi cloud
Come possiamo vedere nell'immagine sopra, ci sono diversi tipi di servizi cloud a seconda del livello di accesso necessario.
- In loco: Viene installato e viene eseguito sui computer nei locali della persona o dell'organizzazione che utilizza il sistema. In realtà, questo non è un servizio cloud, ma è utile per vedere la differenza.
- IaaS: È un servizio online che fornisce API di alto livello utilizzate per accedere a vari dettagli di basso livello dell'infrastruttura di rete sottostante come risorse informatiche fisiche, posizione, partizionamento dei dati, ridimensionamento, sicurezza, backup, ecc.
- PaaS: Fornisce una piattaforma che consente ai clienti di sviluppare, eseguire e gestire applicazioni senza la complessità di creare e mantenere l'infrastruttura associata allo sviluppo e al lancio di un'app.
- SaaS: Vi accedono gli utenti su Internet utilizzando un client (browser). Non richiede alcuna installazione lato client.
Se stiamo parlando di PostgreSQL, ci sono provider cloud che offrono PostgreSQL nel cloud; in diversi gusti e con metodi differenti. Come accennato in precedenza, ci concentreremo su Amazon RDS.
Che cos'è Amazon RDS (servizio di database relazionale)?
Secondo il sito Web di Amazon, offrono oltre 165 servizi completi, inclusi oltre 40 servizi che non sono disponibili altrove. Quindi, AWS è probabilmente il provider cloud più avanzato al mondo in termini di funzionalità e servizi con milioni di clienti.
Amazon RDS ci consente di creare, gestire e ridimensionare un database relazionale nel cloud in modo facile e veloce ed è disponibile su diversi tipi di database come Amazon Aurora, PostgreSQL, MySQL e altri. AWS fornisce uno strumento chiamato AWS Database Migration Service per migrare un database esistente su Amazon RDS.
Vantaggi di Amazon RDS
- Facile da usare: Possiamo utilizzare la console di gestione Amazon RDS, l'interfaccia a riga di comando di AWS RDS o le chiamate API per accedere al database relazionale. Non abbiamo bisogno del provisioning dell'infrastruttura o dell'installazione e della manutenzione di software di database.
- Scalabile: Siamo in grado di ridimensionare le risorse di calcolo e archiviazione del nostro database con pochi clic. Molti tipi di motori Amazon RDS ci consentono di avviare una o più repliche di lettura per scaricare il traffico di lettura dalla nostra istanza database primaria.
- Disponibilità: Quando eseguiamo il provisioning di un'istanza database Multi-AZ, Amazon RDS replica in modo sincrono i dati su un'istanza standby in una zona di disponibilità (AZ) diversa. Amazon RDS ha molte altre funzionalità che migliorano l'affidabilità per i database di produzione critici, inclusi backup automatici, snapshot di database e sostituzione automatica dell'host.
- Prestazioni: Possiamo scegliere tra due opzioni di archiviazione supportate da SSD:una ottimizzata per applicazioni OLTP ad alte prestazioni e l'altra per un uso generico conveniente.
- Sicure: Amazon RDS ci consente di eseguire le istanze di database in Amazon VPC (Virtual Private Cloud), che ci consente di isolare le nostre istanze di database e di connetterci alla nostra infrastruttura IT esistente tramite una VPN. Inoltre, molti tipi di motori Amazon RDS offrono la crittografia a riposo e la crittografia in transito.
Anche se questo non è ufficialmente menzionato sul sito Web di AWS, ma se consideriamo DBaaS (Database as a Service) come un servizio di database che viene gestito e distribuito nell'infrastruttura del provider esterno (secondo il nostro elenco nella sezione precedente) possiamo dire che Amazon RDS è una sorta di DBaaS, una via di mezzo tra un servizio PaaS e un servizio SaaS.
Una guida a PostgreSQL su Amazon RDS
Per prima cosa, dobbiamo accedere alla console AWS. (Se non disponi di un account AWS, puoi crearne uno gratuito qui.)
Quindi, vai su Servizi -> Database -> RDS e sezione Crea database.
Ora dobbiamo scegliere se vogliamo seguire la creazione normale o facile , il motore e la versione che distribuiremo.
Se selezioniamo la creazione facile, dobbiamo solo aggiungere l'istanza del database nome, utente e password.
In questo caso, sceglieremo PostgreSQL 10 e la creazione normale per poter vedere i dettagli della creazione, quindi questo richiederà un po' più di lavoro rispetto a quello facile.In questo caso, sceglieremo PostgreSQL 10 e la creazione normale per poter vedere i dettagli della creazione, quindi questo richiederà un po' più lavoro di quello facile.
Nella creazione normale, per prima cosa sceglieremo un modello, che potrebbe essere un'opzione di livello Produzione, Sviluppo/Test o Gratuito.
Nel passaggio successivo, aggiungeremo il nome dell'istanza del database, user e password.
Il passaggio successivo è la dimensione dell'istanza del database in cui abbiamo diverse opzioni in tre diverse categorie:classi standard, classi ottimizzate per la memoria e classi espandibili.
Nella sezione di archiviazione, possiamo selezionare il tipo di disco, la dimensione e comportamento di archiviazione.
Una delle funzionalità AWS più importanti è la distribuzione Multi-AZ, dove possiamo creare un'istanza standby in una zona di disponibilità diversa per fornire ridondanza.
Riguardo alla connettività, possiamo scegliere un Virtual Private Cloud (VPC) per collegare il nuovo database. Qui possiamo selezionare opzioni aggiuntive come accesso pubblico, zona di disponibilità e porta del database.
Quindi, abbiamo una configurazione aggiuntiva in cui possiamo specificare il nome del database, il database autenticazione, dettagli sui backup, crittografia, monitoraggio, registrazione e servizio di manutenzione (aggiornamenti secondari automatici).
Infine, avremo la possibilità di controllare i costi mensili stimati.
Possiamo vedere maggiori dettagli sui costi qui o anche utilizzare l'AWS Calcolatrice mensile.
Dopo aver aggiunto tutte queste informazioni, dobbiamo attendere fino al termine del processo di creazione.
Quando lo stato cambia in "Disponibile", la nostra istanza del database è pronta per usa.
Se premiamo sull'identificatore DB ("pg1" nel nostro esempio), accederemo alla nostra sezione database, dove possiamo vedere un riepilogo con informazioni come utilizzo della CPU, connessioni, stato e tipo . Qui possiamo anche modificare la configurazione della nostra istanza o eseguire diverse azioni come riavviare, eliminare, creare repliche di lettura, scattare istantanee e altro ancora.
Nello stesso posto, possiamo anche vedere informazioni più dettagliate in diverse sezioni .
Connettività e sicurezza
Possiamo configurare le regole di sicurezza e controllare le informazioni di rete.
Monitoraggio
Abbiamo alcune metriche per controllare lo stato del nostro database.
Registri ed eventi
Abbiamo allarmi, eventi e registri dal nostro database.
Configurazione
Possiamo vedere la nostra configurazione dell'istanza, ma anche un elenco di consigli per migliorarla, come abilitare il monitoraggio avanzato.
Manutenzione e backup
Possiamo vedere le informazioni sulle attività di manutenzione, i backup e il processo di snapshot.
Ora dovremmo essere in grado di accedere al nostro database utilizzando il nome dell'endpoint assegnato da AWS ("pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com ” nel nostro esempio). Per questo, assicurati di aver consentito l'accesso dalla sezione del gruppo di sicurezza e di aver abilitato l'accesso pubblico dalla configurazione dell'istanza (Accessibilità pubblica:Sì). Nel nostro esempio, stiamo consentendo tutto il traffico da tutte le sorgenti, ma per motivi di sicurezza, probabilmente vorrai limitare l'accesso da una o poche sorgenti.
Ora, proviamo a connetterci alla nostra istanza Amazon RDS dalla riga di comando :
[[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)
Allo stesso modo, possiamo connetterci ad esso dalla nostra GUI preferita (se ne abbiamo una).
Una nota su Amazon Aurora
Amazon Aurora è un database relazionale compatibile con MySQL e PostgreSQL creato per il cloud. Secondo il sito Web di AWS, Amazon Aurora è tre volte più veloce dei database PostgreSQL standard e fornisce la sicurezza, la disponibilità e l'affidabilità dei database commerciali a 1/10 del costo. Indipendentemente dall'affermazione, questa non è una vera istanza PostgreSQL, solo un motore compatibile. Ma se stai pensando di eseguire PostgreSQL su Amazon, dovresti assolutamente considerarlo come una possibile alternativa. Puoi saperne di più su Aurora e come si collega a PostgreSQL qui.
Conclusione
Il cloud è ovunque. Possiamo usarlo sia per piccoli che per grandi progetti. In questo blog, abbiamo esaminato i diversi tipi di cloud e condiviso come eseguire PostgreSQL su Amazon RDS. Facci sapere nei commenti qui sotto i tuoi pensieri.