Présentation du module Terraform programmable AWS Landing Zone

Bonjour à tous! En décembre, OTUS lance un nouveau cours - Cloud Solution Architecture . En prévision du début de ce cours, nous partageons avec vous la traduction de matériel intéressant sur le sujet.




AWS Landing Zone est une solution qui aide les clients à configurer rapidement un environnement AWS sécurisé avec plusieurs comptes en fonction des meilleures pratiques.

Depuis plus de cinq ans, notre équipe du Groupe Mitoc travaille sans relâche pour aider les grandes organisations à transformer et à construire numériquement ou à migrer leur empreinte numérique vers le cloud AWS. En d'autres termes, citant nos amis AWS: «Nos clients se redécouvrent avec AWS.» Il s'agit d'un effort sans fin pour réinventer et simplifier la mécanique au nom des clients eux-mêmes, et AWS fait un excellent travail pour résoudre des problèmes complexes avec des solutions faciles à apprendre.


Zone d'atterrissage AWS ( source )

Qu'est-ce qu'AWS Landing Zone?


Selon des informations provenant d'une source officielle:

AWS Landing Zone est une solution qui aide les clients à configurer rapidement un environnement AWS sécurisé avec plusieurs comptes basés sur les meilleures pratiques AWS. Avec un grand nombre d'options, la configuration d'un environnement avec plusieurs comptes peut prendre beaucoup de temps, ainsi que la configuration de plusieurs comptes et services, et nécessite une compréhension approfondie des services AWS.

La solution AWS Landing Zone a considérablement réduit la complexité et la cohérence des modèles de conception similaires fournis à différents clients. D'autre part, notre équipe a dû reconfigurer certains composants CloudFormation en composants Terraform afin de les utiliser davantage pour l'automatisation.

Nous nous sommes donc demandé pourquoi ne pas créer l'intégralité de la solution AWS Landing Zone dans Terraform? Pouvons-nous le faire et cela résoudra-t-il les problèmes de nos clients? Spoiler: décide et décide déjà! :)

Quand ne devez-vous pas utiliser AWS Landing Zone?


Si vous traitez des services cloud réguliers et des ressources cloud avec un ou deux comptes AWS, ces étapes peuvent être inutiles. Quiconque n'appartient pas à cet article peut continuer à lire :)

Que faut-il considérer avant de commencer à travailler?


Bon nombre des grandes organisations avec lesquelles nous avons travaillé ont déjà une sorte de stratégie d'utilisation des technologies cloud. Les entreprises se battent pour la mise en œuvre réussie des services cloud sans vision claire et sans attentes définies. Veuillez prendre le temps de décider de votre stratégie et de comprendre comment AWS s'y intègre.

Lorsqu'ils décident d'une stratégie, les clients prospères d'AWS Landing Zone se concentrent activement sur les éléments suivants:

  • L'automatisation n'est tout simplement pas une option. L'automatisation native du cloud est prĂ©fĂ©rĂ©e.
  • Les Ă©quipes utilisent systĂ©matiquement la mĂŞme mĂ©canique avec le mĂŞme ensemble d'outils pour prĂ©parer les ressources cloud. Mieux vaut utiliser Terraform.
  • Les utilisateurs les plus productifs des services cloud ont la possibilitĂ© de crĂ©er des processus rĂ©utilisables et de les fournir en tant que services rĂ©utilisĂ©s au lieu de code rĂ©utilisĂ©. L'architecture sans serveur est prĂ©fĂ©rĂ©e.

Présentation du module Terraform pour AWS Landing Zone


Après des mois de dur labeur, je suis heureux de présenter le module Terraform pour AWS Landing Zone . Le code source est stocké sur GitHub et les versions stables sont publiées sur le registre du module Terraform.

Pour commencer, incluez simplement main.tf dans votre code:

 module "landing_zone" { source = "TerraHubCorp/landing-zone/aws" version = "0.0.6" root_path = "${path.module}" account_id = "${var.account_id}" region = "${var.region}" landing_zone_components = "${var.landing_zone_components}" } 

Remarque: assurez-vous d'inclure variables.tf et tout ce qui peut ĂŞtre utile Ă  partir de outputs.tf .

Pour faciliter la compréhension, nous avons ajouté des valeurs par défaut à terraform.tfvars :

 account_id = "123456789012" region = "us-east-1" landing_zone_components = { landing_zone_pipeline_s3_bucket = "s3://terraform-aws-landing-zone/mycompany/landing_zone_pipeline_s3_bucket/default.tfvars" [...] } 

Cela signifie que lorsque vous utilisez ce module terraform vous aurez besoin de:

  1. Remplacez account_id et region par les vôtres qui correspondent aux données dans AWS Organization;
  2. Modifiez landing_zone_components pour correspondre Ă  votre utilisation d'AWS Landing Zone;
  3. Remplacez s3://terraform-aws-landing-zone/mycompany par votre bloc S3 et le préfixe de clé S3 , où vous .tfvars fichiers .tfvars (ou le chemin absolu vers les fichiers .tfvars dans votre stockage local).

Ce module peut avoir des dizaines, des centaines ou des milliers de composants déployables, mais tous ne doivent pas être et seront déployés. Au moment de l'exécution, les composants qui ne font pas partie de la landing_zone_components variables landing_zone_components seront ignorés.

Conclusion


Nous sommes très heureux et fiers de partager les fruits de nos efforts pour aider les clients à créer une automatisation native du cloud. Le module Terraform pour AWS Landing Zone est une autre solution qui aide les organisations à configurer rapidement un environnement AWS sécurisé avec plusieurs comptes basés sur les meilleures pratiques AWS. Nous sommes bien conscients qu'AWS connaît une croissance incroyablement rapide, et nous nous efforçons également de développer rapidement une solution terraform qui couvre toutes les bases et s'intègre à d'autres solutions de travail AWS.

C’est tout. Nous attendons vos commentaires avec impatience et vous invitons à un webinaire gratuit dans le cadre duquel nous étudierons la conception de l'architecture du domaine Cloud Landing Zone et examinerons les modèles architecturaux des principaux domaines .

Source: https://habr.com/ru/post/fr479344/


All Articles