Skip to main content
NetApp database solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Aprovisionamiento de clústeres y instancias EC2 de AWS FSx ONTAP

Colaboradores kevin-hoke

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 FSx ONTAP y la instancia de cómputo EC2.

Objetivo

Este kit de herramientas automatiza las tareas de aprovisionamiento de un clúster de almacenamiento de AWS FSx ONTAP y una instancia de cómputo de EC2, que posteriormente se pueden utilizar para la implementación de bases de datos.

Esta solución aborda los siguientes casos de uso:

  • Aprovisione una instancia de cómputo EC2 en la nube de AWS en una subred VPC predefinida y configure la clave SSH para el acceso a la instancia EC2 como ec2-user.

  • Aprovisione un clúster de almacenamiento de AWS FSx ONTAP en las zonas de disponibilidad deseadas y configure un SVM de almacenamiento y establezca la contraseña del usuario administrador del clúster fsxadmin.

Audiencia

Esta solución está destinada a las siguientes personas:

  • Un DBA que administra bases de datos en el entorno AWS EC2.

  • Un arquitecto de soluciones de bases de datos que está interesado en la implementación de bases de datos en el ecosistema AWS EC2.

  • Un administrador de almacenamiento que administra el almacenamiento de AWS FSx ONTAP que admite bases de datos.

  • Propietario de una aplicación a quien le gusta crear bases de datos en el ecosistema AWS EC2.

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" .

Nota Existen ciertas restricciones en torno a la producción y/o intercambio de cualquier trabajo derivado del contenido de este repositorio de GitHub. Asegúrese de leer los términos de la Licencia antes de utilizar el contenido. Si no está de acuerdo con todos los términos, no acceda, descargue ni utilice el contenido de este repositorio.

Implementación 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

Descargar 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 un shell de nube 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 está autenticado previamente con sus credenciales de consola. Las herramientas comunes de desarrollo y operaciones están preinstaladas, por lo que no se requiere instalación ni configuración local.

Configuración de los archivos provider.tf y main.tf de Terraform

Details

El provider.tf define el proveedor desde el cual Terraform está aprovisionando recursos a través de llamadas API. El main.tf define los recursos y los atributos de los recursos que se aprovisionarán. 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

variables.tf declara las variables que se utilizarán en main.tf. terraform.tfvars contiene los valores reales de 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
  1. Instalar Terraform en AWS Cloud Shell.

    git clone https://github.com/tfutils/tfenv.git ~/.tfenv
    mkdir ~/bin
    ln -s ~/.tfenv/bin/* ~/bin/
    tfenv install
    tfenv use 1.3.9
  2. Descargue el kit de herramientas desde el sitio público de GitHub de NetApp

    git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
  3. Ejecute init para inicializar terraform

    terraform init
  4. Generar el plan de ejecución

    terraform plan -out=main.plan
  5. Aplicar el plan de ejecución

    terraform apply "main.plan"
  6. Ejecute destruir 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 , consulte el siguiente sitio web"Automatización de soluciones de NetApp "