☁ Creando los Grupos de Instancias, un nuevo recurso de Azure SQL Database
Continuando con el post de mi compañero Fran Lens sobre los Grupos de Instancias, hoy os voy a enseñar Paso a Paso cómo crear un Instance Pool (Grupo de Instancias) en Azure mediante Powershell.
A continuación, os dejo los pasos a seguir para realizar este proceso:
1. Creación de una Red virtual y una Subred válidas
En este paso, comprobaremos dónde podemos implementar la Instancia Administrada de la base de datos SQL Azure.
Aquí os dejo la plantilla que nos proporciona Microsoft para cumplir con los estándares necesarios para su óptimo funcionamiento:
Una vez rellenados todos los campos anteriores con la suscripción adecuada, resource group, nombre de virtual network, rangos… Estos son los recursos que nos crea dentro de nuestro Resource Group (Virtual Network, Network Security Group y Route Table):
Network Security Group:
Route Table:
De momento, al ser una versión en Preview esta versión de Azure SQL Database, debemos crear todos los recursos mediante el Cloud Shell de Azure.
2. Creación de Cluster y de la Instance Pool
En el siguiente cuadro se encuentra el código necesario para la creación del Cluster y de la Instance Pool:
$virtualNetwork = Get-AzVirtualNetwork -Name "Vnet-Pool" -ResourceGroupName "IPOOL"
$subnet = Get-AzVirtualNetworkSubnetConfig -Name "SubnetMI" -VirtualNetwork $virtualNetwork
#Create Cluster
$instancePool = Get-AzSqlInstancePool -ResourceGroupName "IPOOL" -Name "Aleson-Pool"
-SubnetId $subnet.Id -LicenseType "LicenseIncluded" -VCore 8 -Edition "GeneralPurpose"
-ComputeGeneration "Gen5" -Location "northeurope"
#Instance Pool
$virtualNetwork = Get-AzVirtualNetwork -Name "Vnet-Pool" -ResourceGroupName "IPOOL"
$subnet = Get-AzVirtualNetworkSubnetConfig -Name "SubnetMI" -VirtualNetwork $virtualNetwork
$instancePool = Get-AzSqlInstancePool -ResourceGroupName "IPOOL" -Name "Aleson-Pool" -SubnetId $subnet.Id
-LicenseType "LicenseIncluded" -VCore 8 -Edition "GeneralPurpose" -ComputeGeneration "Gen5" -Location "northeurope"
La implementación de Instance Pool puede durar aproximadamente 4,5 horas.
Una vez lanzado el comando anterior, debemos esperar hasta que estén todos los recursos creados dentro de nuestro Resource Group:
Dentro Instance Pool, podemos observar todos los recursos de los que disponemos (vCores, Storage Size y Remaining Database):
3. Creación de Instancias Independientes dentro de Pool
En este paso, vamos a crear nuestras instancias independientes dentro del Pool. Para ello, realizaremos la creación mediante Código Powershell igual que en los pasos anteriores.
Realizamos la creación de dos instancias, una llamada AlesonProd con 4 Vcores y 64GB de Almacenamiento:
Y aquí, otra instancia llamada AlesonDev, con 4 Vcores y 32GB de almacenamiento:
Una vez creadas las instancias (no tarda mas de 5 minutos en generar una instancia nueva), nos aparecerá en el grupo de recursos:
Para ver los recursos utilizados de nuestra Instance Pool, en el overview podemos observar el número de Instancias que tenemos, así como las vCores utilizados y memoria:
4. Ejecución de una Conexión mediante SSMS
Vamos a realizar una conexión mediante SSMS (SQL Server Managament Studio) a las dos instancias creadas anteriormente:
5. Creación de una base de Datos mediante PowerShell
El siguiente paso es, realizar la creación de una base de datos mediante Powershell:
Una vez realizada la creación de la base de datos desde SSMS, podemos comprobar que ha sido satisfactoria:
Llegado el momento, y sabiendo que una de las mejores funcionalidades de Instance Pool es el disponer de una instancia de 2 vCores, vamos a realizar una reducción del tamaño de la instancia AlesonDev, para ello igual que hemos realizado los pasos anteriores mediante Powershell podemos realizar el escalado de nuestra Instancia:
En este caso lo que hemos realizado ha sido, realizar una bajada de vCores y aumentar el Storage.
Desde el servicio de Instance Pool, podemos observar como actualmente tenemos 2 vCores disponibles para poder asignarlos a una existente o nueva instancia.
6. Revisión
Y para finalizar el post, vamos a revisar como podemos acceder a nuestra Instancia desde un Public Endpoint, esta característica no es recomendable, ya que estamos abriendo a internet nuestra Managed Instance, pero ya que esta funcionalidad actualmente en Instance Pool solamente se puede habilitar por Powershell, a continuación os muestro como realizar este paso:
Una vez abierto desde el portal de Azure encontrareis el host y el puerto para la conexión externa a la instancia:
Y después de seguir todos estos pasos ya podemos dar por finalizado este post sobre Instance Pool. Como hemos comentado en anteriores posts, se trate de un servicio en Preview y no actualmente, no tiene fecha de versión final. Pero seguro que con la versatilidad de este servicio ofrecerá una solución perfecta para nuestras arquitecturas.
Os dejo por aquí mi repositorio de GitHub donde esta todo el código utilizado para este post: https://github.com/NachoCotanda/InstancePool
Serie Instance Pool:
- Conociendo los Grupos de Instancias, un nuevo Recurso de Azure SQL Database
- Creando los Grupos de Instancias, un nuevo Recurso de Azure SQL Database
Azure Solutions Architect, Infraestructura e Implementación. Centrado principalmente en la plataforma Azure, la arquitectura de red y la innovación.