Cargando...

Bicep: Implementar Azure Database for PostgreSQL

Las bases de datos relacionales son uno de los tipos más conocidos y utilizadas en diferentes aplicaciones. Microsoft Azure proporciona servicios para administrar bases de datos relacionales con los motores más populares, como SQL Server, PostgreSQL, MySQL y MariaDB. Esto permite desplegar nuevas aplicaciones en la nube y migrar de forma rápida, aplicaciones existentes On-Premises a Azure, sin hacer cambios significativos en las aplicaciones.

Los servicios de Azure para bases de datos son PaaS (plataforma como servicio) en su mayoría, servicios gestionados por Microsoft, por lo tanto, simplifica las tareas operativas al equipo de IT, permitiendo ser más productivos en otras actividades. Con estos servicios la alta disponibilidad está garantizada, escalabilidad y seguridad mejorada. ¡Todo perfecto! la pregunta es, ¿cómo desplegar servicios de bases de datos en Azure? En Crashell nuestro mandamiento es automatización, así que, en esta ocasión te mostramos cómo crear un servidor de Azure Database for PostgreSQL de forma automatizada, para ello, te compartimos una plantilla ARM escrita en Bicep.

Qué es Azure Database for PostgreSQL

Es momento para describir un poco el servicio de bases de datos PostgreSQL en Azure, pero antes merece la pena mencionar ¿qué es PostgreSQL? PostgreSQL es un sistema de gestión de bases de datos objeto-relacional (ORDBMS) basado en POSTGRES, Versión 4.2. Una base de datos de PostgreSQL permite almacenar datos en tablas relacionales, pero también tipos de datos personalizados con sus propias propiedades no relacionales. Es compatible con una gran parte del estándar SQL y ofrece muchas características modernas, dispone de su propio lenguaje de consulta llamado pgsql. Este lenguaje es una variante del lenguaje de consulta relacional estándar, SQL, y cuenta con características propias.

PostgreSQL es de código abierto y por supuesto, está dentro de los servicios de Azure para bases de datos de código abierto. De modo que, si utilizas PostgreSQL, puedes elegir Azure Database for PostgreSQL para ejecutar una implementación de PostgreSQL en la nube de Azure. Este servicio proporciona las mismas ventajas de disponibilidad, rendimiento, escalado, seguridad y administración que MySQL y MariaDB. Te recomiendo revisar Implementar Azure Database for MySQL.

Azure Database for PostgreSQL cuenta con tres opciones de implementación: Servidor único (Azure Database for PostgreSQL Single Server), servidor flexible (Azure Database for PostgreSQL Flexible Server) e Hiperescala (Azure Database for PostgreSQL Hyperscale). La plantilla que compartimos a continuación, realiza el despliegue de servidor único.

La opción de implementación de servidor único para PostgreSQL proporciona ventajas similares a Azure Database for MySQL. Puedes elegir entre tres planes de precio: Básico, de propósito general y optimizado para memoria. Cada nivel admite una cantidad de procesadores, una capacidad de memoria y tamaños de almacenamiento diferentes.

Plantilla ARM para implementar Azure Database for PostgreSQL

Después de este breve resumen, pasamos al aprovisionamiento de un recurso de Azure Database for PostgreSQL. A continuación, la plantilla completa para implementar Azure Database for PostgreSQL con Bicep.

@description('Región para crear los recursos')
param location string = resourceGroup().location

@description('Nombre del servidor')
param serverName string = 'crashelldb'

@description('Usuario administrador')
@minLength(1)
param adminUser string

@description('Contraseña del administrador')
@minLength(8)
@secure()
param adminPassword string

@description('Versión de PostgreSQL')
@allowed([
  '10'
  '11'
])
param pgVersion string = '11'

@description('Nivel de precio de Azure database for PostgreSQL')
@allowed([
  'Basic'
  'GeneralPurpose'
  'MemoryOptimized'
])
param skuTier string = 'Basic'

@description('Generación de cómputo')
param skuName string = 'B_Gen5_2'

@description('sku family')
param skuFamily string = 'Gen5'

@description('Capacidad de cómmputo en vCore (2,4,8,16,32,64)')
param skuCapacity int = 2

@description('Almacenamiento (en MB)')
param skuSizeMB int = 5120

@description('Período de retención de copia de seguridad')
param backupRetentionDays int = 7

@description('Configuración de redundancia de copias de seguridad')
param geoRedundantBackup string = 'Disabled'

@description('Habilitar cifrado doble de infraestructura')
// El cifrado doble de infraestructura es una capa de cifrado de infraestructura adicional que usa una clave secundaria administrada por el servicio. Si se activa, puede afectar al rendimiento de la base de datos.
param infrastructureEncryption string = 'Disabled'

@description('Crecimiento automático del almacenamiento')
param storageAutoGrow string = 'Enabled'

resource db_postgresql 'Microsoft.DBforPostgreSQL/servers@2017-12-01' = {
  name: serverName
  location: location
  sku: {
    name: skuName
    tier: skuTier
    capacity: skuCapacity
    size: 'skuSizeMB'
    family: skuFamily
    
  }
  properties: {
    createMode: 'Default'
    administratorLogin: adminUser
    administratorLoginPassword: adminPassword
    version: pgVersion
    infrastructureEncryption: infrastructureEncryption
    storageProfile: {
      storageMB: skuSizeMB
      backupRetentionDays: backupRetentionDays
      geoRedundantBackup: geoRedundantBackup
      storageAutogrow: storageAutoGrow
    }
  }
}

Implementar plantilla ARM desde la CLI de Azure

Es ideal comprobar para encontrar errores y obtener una vista previa de los cambios antes de hacer la implementación. Para ello, ejecuta:

az deployment group create --resource-group CrashellRG --template-file db-postgresql.bicep -c

El comando anterior hace la comprobación y pregunta si quieres hacer el deployment. Para hacer la implementación sin hacer una comprobación, ejecuta la siguiente instrucción:

az deployment group create --resource-group CrashellRG --template-file db-postgresql.bicep

Cambia CrashellRG por tu grupo de recursos.

Para eliminar todos los recursos creados, la forma más rápida es eliminar el grupo de recursos.

Puedes visitar el repositorio Infraestructura como código en Azure con Bicep para encontrar esta plantilla completa y otras que te serán de utilidad para aprovisionar recursos en Azure.

  • John Doe
    43 Sales$156,24 Totals
    62%
  • Rosy O'Dowell
    12 Leads$56,24 Totals
    32%

With supporting text below as a natural lead-in to additional content.

Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.