In Computación en la nube (Cloud Computing) y DevOps Última actualizaciónated:
Comparte en:
Software de Jira es la herramienta de gestión de proyectos número uno utilizada por equipos ágiles para planificar, rastrear, lanzar y respaldar software excelente.

AWS CloudFormation y Terraform: ¿no está seguro de cuál elegir? Este artículo te ayudará a tomar una decisión inteligente.

Computación en la nube (Cloud Computing) tiene revolucionó el mundo de DevOps. Ya no es sólo una palabra de moda; está aquí y está aquí para cambiar la forma en que desarrollamos y mantenemos nuestras aplicaciones. Si bien existen innumerables razones por las que debería utilizar la computación en la nube para todas las escalas de negocios, existe una ligera limitación: debe aprovisionar su infraestructura manualmente.ally.

Tienes que ir a las consolas de tus proveedores de nube y decirles exactamente lo que quieres. Esto funciona bien para casos de uso pequeños, pero ¿qué pasa si hay diferentes personas realizando cambios de configuración en la consola? Podrías terminar con un súper cómplice.ated infraestructura que será cada vez más difícil de mantener. No existe una manera eficiente de colaborarate o realizar un seguimiento de los cambios en la Infraestructura en la Nube. Bueno, en realidadally Ahi esta. La infraestructura como código.

Infraestructura como código es un término muy popular en la computación en la nube. Es el process de gestionar su infraestructura de TI mediante código. Si, eso es correcto. En lugar de ir a la consola y hacer todo manualmenteally; La infraestructura como código, también conocida como IAAC o IAC, le permite escribir archivos de configuración, que luego aprovisionan su infraestructura en la nube. IAC nos brinda beneficios como consistencia, mantenimiento fácil y rápido y sin lugar a errores humanos.

Uso de IAC con servicios web de Amazon

AWS es el servicio de computación en la nube líder en el mundo y tiene el doble de participación de mercado que el siguiente proveedor de nube después. Hay más de 200 servicios en AWS que pueden cater a cientos y miles de casos de uso.

Al comenzar a utilizar IAC con AWS, a menudo reducirá sus opciones a la Formación en la nube de AWS y la herramienta de código abierto, Terraform. Al intentar elegir entre los dos, comprendaandiConocer la multitud de funciones que ofrecen ambas herramientas puede resultar bastante abrumador. En este artículo, veremos las diferencias entre AWS CloudFormation y Terraform para ayudarle a decidir qué herramienta se adapta mejor a sus necesidades.

Terraform frente a AWS CloudFormation: diferencias

Modularidad

Cuando se utiliza IAC en grandes organizaciones, la modularidad puede ser un factor importante para elegir la herramienta adecuada.

Formación de nubes

CloudFormation no tiene soporte nativo para módulos. Te permite usar algo llamado pilas anidadas como módulos.

Por ejemplo, puede tener una configuración estándar de cómo desea aprovisionar un depósito de S3 en su organización. Entonces, create un sistema estándar de CloudFormationplate que creates Cucharones S3. Ahora, cuando un usuario final quiere crearate el depósito S3 pueden usar este tem de CloudFormationplate como una pila anidada y create un cucharón S3 estándar.

También hay un servicio menos conocido de AWS, el Catálogo de servicios de AWS que puede ayudarle con la modularidad de su AWS CloudFormation. Service Catalog es un servicio de AWS diseñado específicamenteally para organizaciones que desean limitar el alcance de los servicios de AWS para cumplir con los requisitos de cumplimiento, seguridad, costo o rendimiento. ¿Y adivina qué? AWS Service Catalog utiliza el sistema CloudFormationplatestá en el backend.

Entendamos esto rápidamente con un ejemplo. Los depósitos S3, si no se utilizan correctamente, pronto pueden ser catastróficos para sus datos confidenciales. Tomemos el mismo ejemplo: desea tener una forma estándar de cómo desea utilizar S3 en su organización. La primera opción es crearate el tem de pila anidadoplate, que se puede utilizar dentro de otras pilas de CloudFormation y es equivalenteally hacer el bien

Si no desea que los usuarios tengan que usar este elemento estándarplate como una pila anidada, puede utilizar el catálogo de servicios de AWS. El catálogo de servicios permitirá a los usuarios utilizar esta plantilla estándar.plate desde la interfaz de usuario de la consola y especifique algunos parámetros, para ligeras personalizaciones. Esto le permitirá controlar cómo se aprovisiona la infraestructura en sus cuentas de AWS y cómo se aprovisiona la infraestructura.revent cualquier escenario no deseado. 

Terraform

Terraform tiene soporte nativo para módulos. Te permite crearate configuraciones estándar muy parecidas a AWS CloudFormation y utilizarlas en otras configuraciones de terraform.

Dado que Terraform es una herramienta de código abierto, también puede encontrar y utilizar algunos módulos de código abierto prediseñados en Terraform Registry. También puedes crearate sus propios módulos con sus propias configuraciones y alojarlos en un privadoate registro del módulo.

Persona ally, Preferiría usar Terraform en lugar de CloudFormation si la modularidad fuera un requisito importante.

Usar una pila anidada en CloudFormation no es tan fácil como usar módulos en Terraform. El factor principal es que pasar datos desde un tem CFNplate a la pila anidada puede ser bastante complicadoated.

No existe un lugar estándar donde el sistema CloudFormationplatSe pueden compartir. Tiene el catálogo de servicios de AWS, pero es solo una forma de aplicar algunas reglas para crear infraestructura a través de la consola. Todo se trata de código. Al utilizar Service Catalog, aunque algunos complicacionesatelas tareas d están encapsuladasatecreado por archivos de CloudFormation, aún debe realizar la tarea manual de ir a la consola y especificar los parámetros para crear su infraestructura.

Terraform, por otro lado, tiene un método establecido para crear, mantener y compartir los módulos. Puede ver los requisitos exactos de los módulos en el Registro de módulos de Terraform y usarlos en sus archivos de terraform muy fácilmente.

Control y gobierno sobre la Infraestructura

Si desea limitar los recursos que su gente puede crearate en sus cuentas de AWS: tanto AWS CloudFormation como Terraform le proporcionan los medios para hacerlo.

Hablemos primero de CloudFormation. CloudFormation en élself no ofrece ningún control sobre cómo el templatse usan es pero puedes usar el AWS IAM políticas para permitir que solo los usuarios de su cuenta de AWS utilicen únicamente el sistema estándar de CloudFormationplates para recursos creationorte. En nuestro ejemplo de depósito S3, es posible que desee limitar todos los “S3 Create”permisos para los usuarios y solo permitirles crearate Buckets S3 de AWS Service Catalog o Nested Stacks.

Terraform le permite controlar qué recursos pueden crear sus usuariosate utilización de un política como un código del IRS Centinela. Sentinel le permite aplicar políticas detalladas basadas en lógica para permitir o denegar acciones del usuario a través de Terraform. Por ejemplo, puede negar todos los recursos que creanate depósitos S3 y solo permiten a los usuarios crearate Buckets S3 de un módulo estándar.

State Administración

Tanto AWS CloudFormation como Terraform necesitan realizar un seguimiento de los recursos que mantienen.

Terraform almacena el state de su infraestructura en un state archivo. Este archivo se almacena loc.ally Sin embargo, de forma predeterminada, puede almacenarlo en servidores remotos como S3 y hacer que varios usuarios realicen cambios en el mismo conjunto de infraestructura.

Formación de nubes no mantiene un state archivo, al menos no uno que podamos ver. CloudFormation es un servicio administrado, por lo que hace todo lo necesario.ate mantenimiento y comprobaciones en segundo plano.

Tanto AWS CloudFormation como Terraform tienen un medio para que usted pueda verificar qué cambios se realizarán en su infraestructura. En Terraform, puede ejecutar un comando: "plan de Terraform" y cómo funciona Terraform planning para aplicar sus cambios de configuración. En CloudFormation, los usuarios pueden ver esta información a través de Conjuntos de cambios.

Idioma

Terraform utiliza el lenguaje de configuración HashiCorp, HCL, un lenguaje createDiseñado por HashiCorp. Es muy similar a JSON con funciones y capacidades adicionales integradas.

Elemento de CloudFormationplatLos archivos están escritos en formatos YAML o JSON.

Registro y reversiones

Tanto AWS CloudFormation como Terraform tienen buenas capacidades de registro. En mi experiencia, los errores y problemas han sido sencillos (en su mayor parte).

Formación de nubes: De forma predeterminada, CloudFormation revierte todos los cambios en caso de que se produzca un cambio de pila fallido. Esta es una buena característica y se puede modificar.sabled para cualquier propósito de depuración.

Terraformar: Terraform no será automáticoally revertir los cambios en caso de que falle. Esto no es un problema, ya que siempre puede ejecutar el comando terraform destroy para eliminar la configuración a medio aprovisionar y reiniciar una ejecución de Terraform nuevamente.

Alcance

Terraform no se limita a la nube de AWS. El factor más importante al elegir entre Terraform y CloudFormation es que Terraform admite otros proveedores y servicios en la nube.

Entonces, si planea usar IAC para múltiples nubes platformas, Terraform es tu mejor opción. CloudFormation, aunque es una herramienta poderosa, solo se limita a AWS. Al utilizar Terraform, puede configurar la infraestructura e implementar su aplicación en múltiples nubes. platformularios, haciendo así que su aplicación sea más disponible y robusta.

Soporte de funciones

Usúally, a medida que AWS implemente nuevos servicios y funciones, CloudFormation se actualizaráated antes de Terraform, ya que es un Servicio de AWS. A partir de ahora, ambas herramientas cubren la mayoría de los servicios y características de estos servicios. Esto puede ser un pequeño inconveniente al usar Terraform; sin embargo, tenemos una solución.

También existe la posibilidad de que usted creeate una pila de CloudFormation dentro de su código Terraform. Entonces, si usa Terraform y no tiene una función, puede configurar temporalmente una pila de CloudFormation dentro de su código Terraform.

Soporte técnico

El plan de soporte técnico pagado de AWS también cubre el soporte de CloudFormation.

HashiCorp también ha pagado planes de soporte técnico en Terraform.

Para Concluir

Tanto AWS CloudFormation como Terraform son herramientas poderosas y completamente desarrolladas. Las diferencias anteriores le ayudarán a tomar una decisión informada para elegir la herramienta según sus necesidades. Como sugerencia personal, si planeas usar varias nubes platformularios en el futuro o actualmente utiliza varias nubes, debe utilizar Terraform como una ventanilla única para todas sus necesidades. Si está buscando una herramienta IAC solo para AWS, tanto AWS CloudFormation como Terraform son una opción válida.

Si está interesado en aprender Terraform, consulte estos cursos en línea.

Comparte en:
  • naman yash
    Autor
    Naman Yash es un profesional de ingeniería de software con más de 2 años de experiencia en ingeniería de nube en JP Morgan Chase. Actualmente, Naman trabaja como ingeniero de software y contenido independiente. writer. Tiene múltiples certificaciones de AWS y Terraform...

Gracias a nuestros patrocinadores

Más lecturas excelentes sobre computación en la nube

Impulse su negocio

Algunas de las herramientas y servicios para ayudar a su negocio grow.
  • La herramienta de conversión de texto a voz que utiliza IA para generarate Voces realistas parecidas a las humanas.

    Intente Murf AI
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.

    Prueba Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno para ayudarlo a administrar proyectos, tareas, trabajo, ventas, CRM, operaciones, workflows, y más.

    Intente Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.

    Intente Intruder