|
Con AWS Service Catalog, puede crear, controlar y administrar un catálogo de plantillas de infraestructura como código (IaC) aprobadas para su uso en AWS. Estas plantillas de IaC pueden incluir todo, desde imágenes de máquinas virtuales, servidores, software y bases de datos hasta arquitecturas completas de aplicaciones de varios niveles. Puede controlar qué plantillas y versiones de IaC están disponibles, qué configura cada versión y quién puede acceder a cada plantilla según el individuo, el grupo, el departamento o el centro de costos. Los usuarios finales, como ingenieros, administradores de bases de datos y científicos de datos, pueden descubrir rápidamente y proporcionar por autoservicio los recursos de AWS aprobados que necesitan usar para realizar sus funciones laborales diarias.
Al usar Service Catalog, el primer paso es crear productos basados en sus plantillas de IaC. A continuación, puede recopilar productos, junto con la información de configuración, en una cartera.
A partir de hoy, puede definir los productos de Service Catalog y sus recursos mediante AWS CloudFormation o Terraformación de Hashicorp y elija la herramienta que mejor se adapte a sus procesos y experiencia. Ahora puede integrar sus configuraciones existentes de Terraform en Service Catalog para que formen parte de una cartera de productos aprobada de forma centralizada y compartirla con las cuentas de AWS que utilizan sus usuarios finales. De esta manera, puede prevenir inconsistencias y mitigar el riesgo de incumplimiento.
Cuando Service Catalog implementa los recursos, puede mantener el acceso con privilegios mínimos durante el aprovisionamiento y controlar el etiquetado en los recursos implementados. Los usuarios finales de Service Catalog eligen lo que necesitan de la lista de productos y versiones a los que tienen acceso. Luego, pueden aprovisionar productos en una sola acción, independientemente de la tecnología (CloudFormation o Terraform) utilizada para la implementación.
El modelo hub-and-spoke de Service Catalog que permite a las organizaciones gobernar a escala ahora se puede ampliar para incluir configuraciones de Terraform. Con el modelo de centro y radio de Service Catalog, puede administrar implementaciones de forma centralizada mediante una relación de administración/cuenta de usuario:
- Una cuenta de administración: se utiliza para crear productos de catálogo de servicios, organizarlos en carteras y compartir carteras con cuentas de usuario.
- Múltiples cuentas de usuario (hasta miles): una cuenta de usuario es cualquier cuenta de AWS en la que los usuarios finales de Service Catalog aprovisionan recursos.
Veamos cómo funciona esto en la práctica.
Creación de un producto de AWS Service Catalog mediante Terraform
Para empezar, instalo el Motor de referencia de Terraform (proporcionado por AWS en GitHub) que configura el código y la infraestructura requerida para el Terraform de código abierto motor para trabajar con AWS Service Catalog. Solo necesito hacer esto una vez, en la cuenta de administración de Service Catalog, y la configuración toma solo unos minutos. Yo uso el script de instalación automatizado:
./deploy-tre.sh -r us-east-1
Para simplificar las cosas para esta publicación, creo un producto que implementa una sola instancia EC2 utilizando procesadores AWS Graviton y el sistema operativo Amazon Linux 2023. Aquí está el contenido de mi main.tf
archivo:
Inicio sesión en la Consola de administración de AWS en la cuenta de administración de Service Catalog. En la consola del catálogo de servicios, elijo Lista de productos en el Administración sección del panel de navegación. ahí elijo Crear producto.
En Detalles de productoYo selecciono Terraform de código abierto como Tipo de producto. Introduzco el nombre y la descripción del producto y el nombre del propietario.
En el Detalles de la versiónelijo Subir un archivo de plantilla (utilizando un archivo tar.gz). Opcionalmente, puedo especificar la plantilla mediante una URL de S3 o un repositorio de código externo (en GitHub, Servidor GitHub Enterpriseo Bitbucket) utilizando un proveedor de AWS CodeStar.
Ingreso detalles de soporte y etiquetas personalizadas. Tenga en cuenta que las etiquetas se pueden usar para categorizar sus recursos y también para verificar los permisos para crear un recurso. Luego, completo la creación del producto.
Adición de un producto de AWS Service Catalog mediante Terraform a una cartera
Ahora que el producto Terraform está listo, lo agrego a mi cartera. Una cartera puede incluir productos Terraform y CloudFormation. yo elijo Portafolios desde el Administrador sección del panel de navegación. Allí, busco mi cartera por nombre y la abro. yo elijo Agregar producto a la cartera. Busco el producto Terraform por nombre y lo selecciono.
Los productos Terraform requieren una restricción de lanzamiento. La restricción de lanzamiento especifica el nombre de un rol de AWS Identity and Access Management (IAM) que se utiliza para implementar el producto. Debo asegurarme por separado de que este rol se crea en cada cuenta con la que se comparte el producto.
El motor de código abierto de Terraform asume la función de lanzamiento en la cuenta maestra cuando un usuario final lanza, actualiza o finaliza un producto. El rol de lanzamiento también contiene permisos para describir, crear y actualizar un grupo de recursos para el producto aprovisionado y etiquetar los recursos del producto. De esta forma, Service Catalog mantiene actualizado el grupo de recursos y etiqueta los recursos asociados con el producto.
El rol de lanzamiento permite el acceso con privilegios mínimos para los usuarios finales. Con esta característica, los usuarios finales no necesitan permiso para aprovisionar directamente los recursos subyacentes del producto porque su motor de código abierto Terraform asume la función de lanzamiento para aprovisionar esos recursos, como una configuración aprobada de una instancia de Amazon Elastic Compute Cloud (Amazon EC2). .
En el Restricción de lanzamiento sección, elijo Ingrese el nombre del rol para usar un rol que creé antes para este producto:
- La relación de confianza del rol define las entidades que pueden asumir el rol. Para este rol, la relación de confianza incluye el catálogo de servicios y la cuenta maestra que contiene el motor de referencia de Terraform.
- Para los permisos, el rol permite aprovisionar, actualizar y terminar los recursos requeridos por mi producto y administrar grupos de recursos y etiquetas en esos recursos.
Completé la incorporación del producto a mi cartera. Ahora el producto está disponible para los usuarios finales que tienen acceso a este portafolio.
Lanzamiento de un producto de AWS Service Catalog mediante Terraform
Los usuarios finales ven la lista de productos y versiones a los que tienen acceso y pueden implementarlos en una sola acción. Si ya usa Service Catalog, la experiencia es la misma que con los productos de CloudFormation.
Inicio sesión en la consola de AWS en la cuenta de usuario de Service Catalog. La cartera que usé antes ha sido compartida por la cuenta maestra con esta cuenta de usuario. En la consola del catálogo de servicios, elijo productos desde el Aprovisionamiento grupo en el panel de navegación. Busco el producto por nombre y elijo Producto de lanzamiento.
Dejo que Service Catalog genere un nombre único para el producto aprovisionado y selecciono la versión del producto para implementar. Luego, lanzo el producto.
Después de unos minutos, el producto se ha implementado y está disponible. La implementación ha sido administrada por Terraform Reference Engine.
En el Etiquetas asociadas pestaña, veo que Service Catalog agregó automáticamente información sobre la cartera y el producto.
En el Recursos pestaña, veo los recursos creados por el producto aprovisionado. Como era de esperar, es una instancia de EC2 y puedo seguir el enlace para abrir la consola de Amazon EC2 y obtener más información.
Los usuarios finales, como ingenieros, administradores de bases de datos y científicos de datos, pueden continuar usando Service Catalog y lanzar los productos que necesitan sin tener que considerar si se aprovisionan con Terraform o CloudFormation.
Disponibilidad y precios
Soporte de AWS Service Catalog para Terraformar Las configuraciones de código abierto están disponibles hoy en todas las regiones de AWS donde se ofrecen. No hay cambios en los precios cuando se usa Terraform. Con Service Catalog, paga por las llamadas API que realiza al servicio y puede comenzar de forma gratuita con el nivel gratuito. También paga por los recursos utilizados y creados por el motor de referencia de Terraform. Para obtener más información, consulte Precios del catálogo de servicios.
Habilite el aprovisionamiento de autoservicio a escala para sus configuraciones de código abierto de Terraform.
— Danilo