PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Exécution de PostgreSQL à l'aide d'Amazon RDS

Le cloud computing est désormais monnaie courante dans la plupart des entreprises. Il permet la disponibilité à la demande de la puissance de calcul, de la base de données, du stockage, des applications et d'autres ressources via Internet.

Les principaux avantages du cloud sont que vous n'avez pas besoin de dépenser beaucoup d'argent pour acheter des serveurs puissants ou créer vos propres centres de données. Mais ce n'est pas le seul avantage, lorsque vous avez besoin d'évoluer, vous n'avez pas besoin d'acheter un nouveau serveur, vous pouvez simplement ajouter des ressources en quelques clics. De la même manière, nous pouvons également réduire le nombre de ressources lorsqu'elles ne sont pas nécessaires pour réduire les coûts.

Une base de données cloud est une base de données exécutée sur un fournisseur cloud. Il nous permet de stocker, gérer, récupérer et manipuler nos données via une plateforme cloud ; accessible sur internet.

Dans ce blog, nous examinerons les différents types d'offres cloud, puis nous nous concentrerons sur l'exécution d'une base de données PostgreSQL à l'aide d'Amazon RDS

Offres et options de services cloud

Comme nous pouvons le voir dans l'image ci-dessus, il existe plusieurs types de services cloud en fonction du niveau d'accès requis.

  • Sur site : Il est installé et fonctionne sur des ordinateurs dans les locaux de la personne ou de l'organisation qui utilise le système. En fait, ce n'est pas un service cloud, mais il est utile de voir la différence.
  • IaaS : Il s'agit d'un service en ligne qui fournit des API de haut niveau utilisées pour accéder à divers détails de bas niveau de l'infrastructure réseau sous-jacente, tels que les ressources informatiques physiques, l'emplacement, le partitionnement des données, la mise à l'échelle, la sécurité, la sauvegarde, etc.
  • PaaS : Il fournit une plate-forme permettant aux clients de développer, d'exécuter et de gérer des applications sans la complexité de la création et de la maintenance de l'infrastructure associée au développement et au lancement d'une application.
  • SaaS : Les utilisateurs y accèdent via Internet à l'aide d'un client (navigateur). Il ne nécessite aucune installation côté client.

Si nous parlons de PostgreSQL, il existe des fournisseurs de cloud qui proposent PostgreSQL dans le cloud ; dans différentes saveurs et en utilisant différentes méthodes. Comme nous l'avons mentionné ci-dessus, nous allons nous concentrer sur Amazon RDS.

Qu'est-ce qu'Amazon RDS (service de base de données relationnelle) ?

Selon le site Web d'Amazon, ils offrent plus de 165 services complets, dont plus de 40 services qui ne sont disponibles nulle part ailleurs. Ainsi, AWS est probablement le fournisseur de cloud le plus avancé au monde en termes de fonctionnalités et de services avec des millions de clients.

Amazon RDS nous permet de créer, gérer et mettre à l'échelle une base de données relationnelle dans le cloud de manière simple et rapide, et il est disponible sur différents types de bases de données comme Amazon Aurora, PostgreSQL, MySQL et plus encore. AWS fournit un outil appelé AWS Database Migration Service pour migrer une base de données existante vers Amazon RDS.

Avantages d'Amazon RDS

  • Facile à utiliser : Nous pouvons utiliser la console de gestion Amazon RDS, l'interface de ligne de commande AWS RDS ou les appels d'API pour accéder à la base de données relationnelle. Nous n'avons pas besoin de provisionner l'infrastructure ni d'installer et de gérer un logiciel de base de données.
  • Évolutif : Nous pouvons faire évoluer les ressources de calcul et de stockage de notre base de données en quelques clics seulement. De nombreux types de moteurs Amazon RDS nous permettent de lancer un ou plusieurs réplicas en lecture pour décharger le trafic de lecture de notre instance de base de données principale.
  • Disponibilité : Lorsque nous provisionnons une instance DB multi-AZ, Amazon RDS réplique de manière synchrone les données vers une instance de secours dans une zone de disponibilité (AZ) différente. Amazon RDS dispose de nombreuses autres fonctionnalités qui améliorent la fiabilité des bases de données de production critiques, notamment les sauvegardes automatisées, les instantanés de base de données et le remplacement automatique de l'hôte.
  • Performances : Nous pouvons choisir entre deux options de stockage sur SSD :l'une optimisée pour les applications OLTP hautes performances et l'autre pour une utilisation polyvalente économique.
  • Sécurisé : Amazon RDS nous permet d'exécuter les instances de base de données dans Amazon VPC (Virtual Private Cloud), ce qui nous permet d'isoler nos instances de base de données et de nous connecter à notre infrastructure informatique existante via un VPN. En outre, de nombreux types de moteurs Amazon RDS offrent un chiffrement au repos et un chiffrement en transit.

Bien que cela ne soit pas officiellement mentionné sur le site Web d'AWS, mais si nous considérons DBaaS (Database as a Service) comme un service de base de données qui est géré et déployé dans l'infrastructure du fournisseur externe (selon notre liste dans la section ci-dessus), nous pouvons dire qu'Amazon RDS est une "sorte de" DBaaS, quelque part entre un service PaaS et un service SaaS.

Guide de PostgreSQL sur Amazon RDS

Tout d'abord, nous devons nous connecter à la console AWS. (Si vous n'avez pas de compte AWS, vous pouvez en créer un gratuitement ici.)

Ensuite, allez dans Services -> Base de données -> RDS et section Créer une base de données.

Maintenant, nous devons choisir si nous voulons suivre la création normale ou facile , le moteur et la version que nous allons déployer.

Si nous sélectionnons la création facile, nous n'avons qu'à ajouter l'instance de base de données nom, utilisateur et mot de passe.

Dans ce cas, nous choisirons PostgreSQL 10 et la création normale pour pouvoir voir les détails de la création, cela demandera donc un peu plus de travail que le plus facile.

Dans ce cas, nous choisirons PostgreSQL 10 et la création normale pour pouvoir voir les détails de la création, donc cela demandera un peu plus de travail que facile.

Dans la création normale, nous allons d'abord choisir un modèle, il peut s'agir de l'option de production, de développement/test ou de niveau gratuit.

À l'étape suivante, nous ajouterons le nom de l'instance de la base de données, user , et mot de passe.

L'étape suivante est la taille de l'instance de base de données où nous avons plusieurs options dans trois catégories différentes :les classes standard, les classes à mémoire optimisée et les classes extensibles.

Dans la section de stockage, nous pouvons sélectionner le type de disque, la taille et comportement de stockage.

L'une des fonctionnalités AWS les plus importantes est le déploiement multi-AZ, où nous pouvons créer une instance de secours dans une zone de disponibilité différente pour assurer la redondance.

Concernant la connectivité, nous pouvons choisir un Virtual Private Cloud (VPC) pour connecter la nouvelle base de données. Ici, nous pouvons sélectionner des options supplémentaires telles que l'accès public, la zone de disponibilité et le port de la base de données.

Ensuite, nous avons une configuration supplémentaire où nous pouvons spécifier le nom de la base de données, base de données authentification, détails des sauvegardes, cryptage, surveillance, journalisation et service de maintenance (mises à niveau mineures automatiques).

Enfin, nous aurons la possibilité de vérifier les coûts mensuels estimés.

 

Nous pouvons voir plus de détails sur les coûts ici, ou même utiliser l'AWS Calculatrice mensuelle.

Après avoir ajouté toutes ces informations, nous devons attendre la fin du processus de création.

Lorsque le statut passe à "Disponible", notre instance de base de données est prête à utiliser.

Si nous appuyons sur l'identifiant de la base de données ("pg1" dans notre exemple), nous accéderons à notre section de base de données, où nous pourrons voir un résumé avec des informations telles que l'utilisation du processeur, les connexions, l'état et le type . Ici, nous pouvons également modifier la configuration de notre instance ou effectuer différentes actions telles que redémarrer, supprimer, créer un réplica en lecture, prendre des instantanés, etc.

Au même endroit, nous pouvons également voir des informations plus détaillées dans différentes sections .

​Connectivité et sécurité

Nous pouvons configurer les règles de sécurité et vérifier les informations du réseau.

Surveillance

Nous avons quelques métriques pour vérifier l'état de notre base de données.

Journaux et événements 

Nous avons des alarmes, des événements et des journaux de notre base de données.

Configuration 

Nous pouvons voir la configuration de notre instance, mais aussi une liste de recommandations pour l'améliorer, comme activer la surveillance améliorée.

Maintenance et sauvegardes 

Nous pouvons voir des informations sur les tâches de maintenance, les sauvegardes et le processus d'instantané.

Maintenant, nous devrions pouvoir accéder à notre base de données en utilisant le nom Endpoint attribué par AWS ("pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com » dans notre exemple). Pour cela, assurez-vous d'avoir autorisé l'accès depuis la section groupe de sécurité et d'avoir activé l'accès public depuis la configuration de l'instance (Accessibilité publique :Oui). Dans notre exemple, nous autorisons tout le trafic de toutes les sources, mais pour des raisons de sécurité, vous souhaiterez probablement limiter l'accès d'une ou de quelques sources.

Maintenant, essayons de nous connecter à notre instance Amazon RDS à partir de la ligne de commande :

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

De la même manière, nous pouvons nous y connecter depuis notre interface graphique préférée (si nous en avons une).

Une note sur Amazon Aurora

Amazon Aurora est une base de données relationnelle compatible MySQL et PostgreSQL conçue pour le cloud. Selon le site Web d'AWS, Amazon Aurora est trois fois plus rapide que les bases de données PostgreSQL standard et offre la sécurité, la disponibilité et la fiabilité des bases de données commerciales à 1/10ème du coût. Quelle que soit la revendication, il ne s'agit pas d'une véritable instance PostgreSQL, mais simplement d'un moteur compatible. Mais, si vous envisagez d'exécuter PostgreSQL sur Amazon, vous devez absolument considérer cela comme une alternative possible. Vous pouvez en savoir plus sur Aurora et son lien avec PostgreSQL ici.

Conclusion

Le cloud est partout. Nous pouvons l'utiliser aussi bien pour les petits que pour les grands projets. Dans ce blog, nous avons examiné les différents types de clouds et expliqué comment exécuter PostgreSQL sur Amazon RDS. Faites-nous savoir dans les commentaires ci-dessous vos pensées.