Clúster de AWS FSx ONTAP y aprovisionamiento de instancias de EC2
Equipo de ingeniería de soluciones de NetApp
Esta solución proporciona un kit de herramientas de automatización basado en Terraform para el aprovisionamiento del clúster de FSx ONTAP y una instancia de computación de EC2.
Específico
Este kit de herramientas automatiza las tareas de aprovisionamiento de un clúster de almacenamiento de AWS FSx ONTAP y una instancia de computación de EC2, que posteriormente se puede utilizar para la puesta en marcha de bases de datos.
Esta solución aborda los siguientes casos prácticos:
-
Aprovisione una instancia de computación de EC2 en la nube de AWS en una subred de VPC predefinida y establezca la clave ssh para el acceso de instancia de EC2 como usuario EC2.
-
Aprovisiona un clúster de almacenamiento de AWS FSx ONTAP en las zonas de disponibilidad deseadas y configura una SVM de almacenamiento y establece la contraseña fsxadmin del usuario administrador del clúster.
Destinatarios
Esta solución está dirigida a las siguientes personas:
-
Un administrador de bases de datos que gestiona bases de datos en un entorno AWS EC2.
-
Un arquitecto de la solución de bases de datos interesado en la puesta en marcha de bases de datos en el ecosistema AWS EC2.
-
Un administrador de almacenamiento que gestiona el almacenamiento de AWS FSx ONTAP compatible con bases de datos.
-
Propietario de aplicaciones al que le gusta mantener su base de datos en el ecosistema EC2 de AWS.
Licencia
Al acceder, descargar, instalar o utilizar el contenido de este repositorio de GitHub, usted acepta los términos de la Licencia establecidos en "Archivo de licencia".
Hay ciertas restricciones en cuanto a la producción y/o el intercambio de cualquier obra derivada con el contenido de este repositorio de GitHub. Asegúrese de leer los términos de la licencia antes de utilizar el contenido. Si NO ACEPTA TODOS LOS TÉRMINOS, NO ACCEDA, DESCARGA NI UTILICE EL CONTENIDO DE ESTE REPOSITORIO. |
Puesta en marcha de la solución
Requisitos previos para la implementación
Details
La implementación requiere los siguientes requisitos previos.
An Organization and AWS account has been setup in AWS public cloud An user to run the deployment has been created IAM roles has been configured IAM roles granted to user to permit provisioning the resources
VPC and security configuration A VPC has been created to host the resources to be provisioned A security group has been configured for the VPC A ssh key pair has been created for EC2 instance access
Network configuration Subnets has been created for VPC with network segments assigned Route tables and network ACL configured NAT gateways or internet gateways configured for internet access
Descargue el kit de herramientas
Details
git clone https://github.com/NetApp/na_aws_fsx_ec2_deploy.git
Conectividad y autenticación
Details
Se supone que el kit de herramientas se ejecuta desde una shell de cloud de AWS. AWS Cloud Shell es un shell basado en navegador que facilita la administración, exploración e interacción segura con sus recursos de AWS. CloudShell se autentica previamente con sus credenciales de consola. Las herramientas comunes de desarrollo y operaciones están preinstaladas, por lo que no se requiere instalación o configuración local.
Configuración de archivos Terraform provider.tf y main.tf
Details
El proveedor.tf define el proveedor que Terraform está aprovisionando recursos a través de llamadas API. El main.tf define los recursos y atributos de los recursos que se van a aprovisionar. A continuación se presentan algunos detalles:
provider.tf: terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 4.54.0" } } }
main.tf: resource "aws_instance" "ora_01" { ami = var.ami instance_type = var.instance_type subnet_id = var.subnet_id key_name = var.ssh_key_name root_block_device { volume_type = "gp3" volume_size = var.root_volume_size } tags = { Name = var.ec2_tag } } ....
Configuración de Terraform Variables.tf y terraform.tfvars
Details
El archivo Variables.tf declara las variables que se van a utilizar en main.tf. El terraform.tfvars contiene los valores reales para las variables. A continuación se muestran algunos ejemplos:
variables.tf: ### EC2 instance variables ###
variable "ami" { type = string description = "EC2 AMI image to be deployed" }
variable "instance_type" { type = string description = "EC2 instance type" }
terraform.tfvars:
# EC2 instance variables
ami = "ami-06640050dc3f556bb" //RedHat 8.6 AMI
instance_type = "t2.micro"
ec2_tag = "ora_01"
subnet_id = "subnet-04f5fe7073ff514fb"
ssh_key_name = "sufi_new"
root_volume_size = 30
Procedimientos paso a paso: Ejecutados en secuencia
Details
-
Instale Terraform en el shell de cloud de AWS.
git clone https://github.com/tfutils/tfenv.git ~/.tfenv
mkdir ~/bin
ln -s ~/.tfenv/bin/* ~/bin/
tfenv install
tfenv use 1.3.9
-
Descargue el kit de herramientas del sitio público de GitHub de NetApp
git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
-
Ejecute init para inicializar Terraform
terraform init
-
Genere la salida del plan de ejecución
terraform plan -out=main.plan
-
Aplique el plan de ejecución
terraform apply "main.plan"
-
Ejecute destroy para eliminar los recursos cuando haya terminado
terraform destroy
Dónde encontrar información adicional
Para obtener más información sobre la automatización de soluciones de NetApp, revise el siguiente sitio web "Automatización de soluciones de NetApp"