Cluster AWS FSx ONTAP e provisioning di istanze EC2
Team di ingegneria delle soluzioni NetApp
Questa soluzione fornisce un toolkit di automazione basato su Terraform per il provisioning del cluster FSx ONTAP e dell'istanza di elaborazione EC2.
Scopo
Questo toolkit automatizza le attività di provisioning di un cluster di storage AWS FSx ONTAP e di un'istanza di elaborazione EC2, che possono essere successivamente utilizzate per la distribuzione del database.
Questa soluzione affronta i seguenti casi d'uso:
-
Fornire un'istanza di elaborazione EC2 nel cloud AWS in una subnet VPC predefinita e impostare la chiave SSH per l'accesso all'istanza EC2 come ec2-user.
-
Fornire un cluster di storage AWS FSx ONTAP nelle zone di disponibilità desiderate, configurare una SVM di storage e impostare la password fsxadmin dell'utente amministratore del cluster.
Pubblico
Questa soluzione è destinata alle seguenti persone:
-
Un DBA che gestisce database nell'ambiente AWS EC2.
-
Un architetto di soluzioni di database interessato alla distribuzione di database nell'ecosistema AWS EC2.
-
Un amministratore di storage che gestisce lo storage AWS FSx ONTAP che supporta i database.
-
Un proprietario di applicazioni a cui piace creare database nell'ecosistema AWS EC2.
Licenza
Accedendo, scaricando, installando o utilizzando il contenuto di questo repository GitHub, accetti i termini della licenza stabiliti in"File di licenza" .
|
Esistono alcune restrizioni relative alla produzione e/o alla condivisione di lavori derivati dai contenuti di questo repository GitHub. Prima di utilizzare il contenuto, assicurati di leggere i termini della licenza. Se non accetti tutti i termini, non accedere, scaricare o utilizzare i contenuti di questo repository. |
Distribuzione della soluzione
Prerequisiti per la distribuzione
Details
Per la distribuzione sono richiesti i seguenti prerequisiti.
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
Scarica il toolkit
Details
git clone https://github.com/NetApp/na_aws_fsx_ec2_deploy.git
Connettività e autenticazione
Details
Il toolkit dovrebbe essere eseguito da una shell cloud AWS. AWS Cloud Shell è una shell basata su browser che semplifica la gestione, l'esplorazione e l'interazione in modo sicuro con le risorse AWS. CloudShell è pre-autenticato con le credenziali della console. Sono preinstallati strumenti comuni di sviluppo e operativi, quindi non è richiesta alcuna installazione o configurazione locale.
Configurazione dei file Terraform provider.tf e main.tf
Details
Il file provider.tf definisce il provider da cui Terraform esegue il provisioning delle risorse tramite chiamate API. Il file main.tf definisce le risorse e gli attributi delle risorse da fornire. Di seguito alcuni dettagli:
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 } } ....
Configurazione di Terraform variables.tf e terraform.tfvars
Details
Il file variables.tf dichiara le variabili da utilizzare in main.tf. Il file terraform.tfvars contiene i valori effettivi delle variabili. Di seguito alcuni esempi:
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
Procedure passo passo - eseguite in sequenza
Details
-
Installa Terraform in 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
-
Scarica il toolkit dal sito pubblico NetApp GitHub
git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
-
Eseguire init per inizializzare Terraform
terraform init
-
Emettere il piano di esecuzione
terraform plan -out=main.plan
-
Applicare il piano di esecuzione
terraform apply "main.plan"
-
Esegui destroy per rimuovere le risorse al termine
terraform destroy
Dove trovare ulteriori informazioni
Per saperne di più sull'automazione della soluzione NetApp , consultare il seguente sito Web"Automazione delle soluzioni NetApp "