Provisionnement du cluster AWS FSX ONTAP et de l'instance EC2
Équipe d'ingénierie des solutions NetApp
Cette solution fournit un kit d'outils d'automatisation basé sur Terraform pour le provisionnement du cluster FSX ONTAP et de l'instance de calcul EC2.
Objectif
Ce kit automatise les tâches de provisionnement d'un cluster de stockage AWS FSX ONTAP et d'une instance de calcul EC2, qui peut ensuite être utilisée pour le déploiement de bases de données.
Cette solution répond aux cas d'utilisation suivants :
-
Provisionnez une instance de calcul EC2 dans le cloud AWS dans un sous-réseau VPC prédéfini et définissez la clé ssh pour l'accès à l'instance EC2 en tant qu'utilisateur EC2.
-
Provisionnez un cluster de stockage AWS FSX ONTAP dans les zones de disponibilité souhaitées, configurez un SVM de stockage et configurez un mot de passe utilisateur fsxadmin du cluster.
Public
Cette solution est destinée aux personnes suivantes :
-
Administrateur de bases de données gérant les bases de données dans l'environnement AWS EC2.
-
Architecte de solutions de bases de données qui s'intéresse au déploiement de bases de données dans l'écosystème AWS EC2.
-
Administrateur du stockage qui gère le stockage AWS FSX ONTAP qui prend en charge les bases de données.
-
Propriétaire d'applications qui aime standup base de données dans l'écosystème AWS EC2.
Licence
En accédant au contenu de ce référentiel GitHub, en le téléchargeant, en l'installant ou en l'utilisant, vous acceptez les conditions de la licence énoncées dans "Fichier de licence".
Il existe certaines restrictions concernant la production et/ou le partage de travaux dérivés avec le contenu de ce référentiel GitHub. Assurez-vous de lire les termes de la Licence avant d'utiliser le contenu. Si vous n'acceptez pas toutes les conditions, n'accédez pas au contenu de ce référentiel, ne le téléchargez pas et ne l'utilisez pas. |
Déploiement de la solution
Conditions préalables au déploiement
Details
Le déploiement nécessite les conditions préalables suivantes.
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
Téléchargez la boîte à outils
Details
git clone https://github.com/NetApp/na_aws_fsx_ec2_deploy.git
Connectivité et authentification
Details
Le kit d'outils est censé être exécuté à partir d'un shell cloud AWS. Le shell cloud AWS est un shell basé sur un navigateur qui facilite la gestion, la découverte et l'interaction avec vos ressources AWS de manière sécurisée. CloudShell est pré-authentifié avec les informations d'identification de votre console. Les outils de développement et d'exploitation courants sont préinstallés. Aucune installation ou configuration locale n'est donc nécessaire.
Configuration des fichiers Terraform Provider.tf et main.tf
Details
Le Provider.tf définit le fournisseur à partir duquel Terraform provisionne des ressources via des appels API. Le fichier main.tf définit les ressources et les attributs des ressources à provisionner. Voici quelques détails :
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 } } ....
Configuration des variables Terraform.tf et terraform.tfvars
Details
Variables.tf déclare les variables à utiliser dans main.tf. Le terraform.tfvars contient les valeurs réelles des variables. Voici quelques exemples :
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
Procédures étape par étape - exécutées dans l'ordre
Details
-
Installez Terraform dans le shell cloud AWS.
git clone https://github.com/tfutils/tfenv.git ~/.tfenv
mkdir ~/bin
ln -s ~/.tfenv/bin/* ~/bin/
tfenv install
tfenv use 1.3.9
-
Téléchargez le kit d'outils depuis le site public de NetApp GitHub
git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
-
Exécutez init pour initialiser terraform
terraform init
-
Sortir le plan d'exécution
terraform plan -out=main.plan
-
Appliquer le plan d'exécution
terraform apply "main.plan"
-
Exécutez détruire pour supprimer les ressources une fois l'opération terminée
terraform destroy
Où trouver des informations complémentaires
Pour en savoir plus sur l'automatisation de la solution NetApp, consultez ce site Web "Automatisation des solutions NetApp"