Nodos virtuales - AWS App Mesh

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Nodos virtuales

importante

Aviso de fin de soporte: el 30 de septiembre de 2026, AWS suspenderemos el soporte para AWS App Mesh. Después del 30 de septiembre de 2026, ya no podrás acceder a la AWS App Mesh consola ni a AWS App Mesh los recursos. Para obtener más información, visita esta entrada de blog Migración desde AWS App Mesh a Amazon ECS Service Connect.

Un nodo virtual actúa como un puntero lógico a un grupo de tareas concreto, como un ECS servicio de Amazon o una implementación de Kubernetes. Al crear un nodo virtual, debe especificar un método de detección de servicios para su grupo de tareas. Todo el tráfico de entrada que el nodo virtual espera debe especificarse como un oyente. Cualquier servicio virtual al que un nodo virtual envía tráfico saliente se especifica como backend.

Los metadatos de respuesta del nuevo nodo virtual contienen el nombre del recurso de Amazon (ARN) asociado al nodo virtual. Establece este valor como variable de APPMESH_RESOURCE_ARN entorno para el contenedor proxy de Envoy de tu grupo de tareas en la definición de ECS tareas de Amazon o en la especificación del pod de Kubernetes. Por ejemplo, el valor podría ser arn:aws:appmesh:us-west-2:111122223333:mesh/myMesh/virtualNode/myVirtualNode. Después, esto se asigna a los parámetros node.id y node.cluster de Envoy. Debe utilizar la versión 1.15.0 o posterior de la imagen de Envoy al establecer esta variable. Para obtener más información sobre las variables de App Mesh Envoy, consulte Imagen de Envoy.

nota

De forma predeterminada, App Mesh utiliza el nombre del recurso que se especificó en APPMESH_RESOURCE_ARN cuando Envoy hace referencia a sí mismo en métricas y registros de seguimiento. Puede anular este comportamiento estableciendo la variable de entorno APPMESH_RESOURCE_CLUSTER con su propio nombre.

Creación de un nodo virtual

AWS Management Console
Para crear un nodo virtual mediante el AWS Management Console
  1. Abre la consola App Mesh en https://console.aws.amazon.com/appmesh/.

  2. Elija la malla en la que desea crear el nodo virtual. Se muestran todas las mallas que son de su propiedad y que se han compartido con usted.

  3. Elija Nodos virtuales en el panel de navegación izquierdo.

  4. Seleccione Crear nodo virtual y, a continuación, especifique la configuración del nodo virtual.

  5. En Nombre del nodo virtual, escriba un nombre para el nodo virtual.

  6. En Método de detección de servicios, elija una de las siguientes opciones:

    • DNS— Especifique el DNSnombre de host del servicio real que representa el nodo virtual. El proxy de Envoy está desplegado en AmazonVPC. El proxy envía solicitudes de resolución de nombres al DNS servidor que está configurado para elVPC. Si el nombre de host se resuelve, el DNS servidor devuelve una o más direcciones IP. Para obtener más información sobre VPC DNS la configuración, consulte Utilización DNS con su VPC. Para el tipo de DNS respuesta (opcional), especifique los tipos de puntos finales devueltos por la DNS resolución. Load Balancer significa que el DNS solucionador devuelve un conjunto de puntos finales con equilibrio de carga. Los puntos finales significan que la DNS resolución devuelve todos los puntos finales. De forma predeterminada, se supone que el tipo de respuesta es Equilibrador de carga.

      nota

      Si usa Route53, deberá utilizar el Equilibrador de carga.

    • AWS Cloud Map— Especifique un nombre de servicio y HTTP un espacio de nombres existentes. Si lo desea, también puede especificar los atributos que App Mesh puede consultar AWS Cloud Map seleccionando Añadir fila y especificando una clave y un valor. Solo se devolverán las instancias que coincidan con todos los pares de clave/valor especificados. Para poder AWS Cloud Map utilizarla, tu cuenta debe tener la función AWSServiceRoleForAppMesh vinculada al servicio. Para obtener más información al respecto AWS Cloud Map, consulta la Guía para AWS Cloud Map desarrolladores.

    • Ninguno: seleccione si su nodo virtual no espera tráfico de entrada.

  7. Preferencia de versión de IP

    Controle qué versión de IP debe usarse para el tráfico dentro de la malla activando la opción Anulación del comportamiento predeterminado de la versión de IP. De forma predeterminada, App Mesh usa varias versiones de IP.

    nota

    La configuración de la preferencia IP en el nodo virtual solo anula la preferencia IP establecida para la malla en este nodo específico.

    • Predeterminado

      • La DNS resolución de Envoy prefiere IPv6 y recurre aIPv4.

      • Usamos la IPv4 dirección devuelta AWS Cloud Map si está disponible y recurrimos a la IPv6 dirección.

      • El punto de conexión creado para la aplicación local usa una dirección IPv4.

      • Los oyentes de Envoy se enlazan a todas las direcciones IPv4.

    • IPv6preferido

      • El DNS resolutor de Envoy prefiere IPv6 y recurre aIPv4.

      • La IPv6 dirección devuelta por AWS Cloud Map se utiliza si está disponible y se vuelve a utilizar la IPv4 dirección

      • El punto de conexión creado para la aplicación local usa una dirección IPv6.

      • Los oyentes de Envoy se enlazan a todas las direcciones IPv4 y IPv6.

    • IPv4preferido

      • El DNS resolutor de Envoy prefiere IPv4 y recurre aIPv6.

      • Usamos la IPv4 dirección devuelta AWS Cloud Map si está disponible y recurrimos a la IPv6 dirección.

      • El punto de conexión creado para la aplicación local usa una dirección IPv4.

      • Los oyentes de Envoy se enlazan a todas las direcciones IPv4 y IPv6.

    • IPv6únicamente

      • El DNS solucionador de Envoy solo usaIPv6.

      • Solo se utiliza la IPv6 dirección devuelta por AWS Cloud Map . Si AWS Cloud Map devuelve una direcciónIPv4, no se utiliza ninguna dirección IP y se devuelven resultados vacíos a Envoy.

      • El punto de conexión creado para la aplicación local usa una dirección IPv6.

      • Los oyentes de Envoy se enlazan a todas las direcciones IPv4 y IPv6.

    • IPv4únicamente

      • El DNS solucionador de Envoy solo usaIPv4.

      • Solo se utiliza la IPv4 dirección devuelta por AWS Cloud Map . Si AWS Cloud Map devuelve una direcciónIPv6, no se utiliza ninguna dirección IP y se devuelven resultados vacíos a Envoy.

      • El punto de conexión creado para la aplicación local usa una dirección IPv4.

      • Los oyentes de Envoy se enlazan a todas las direcciones IPv4 y IPv6.

  8. (Opcional) Valores predeterminados de la política del cliente: configure los requisitos predeterminados al comunicar con los servicios virtuales de backend.
    nota
    • Si desea habilitar Transport Layer Security (TLS) para un nodo virtual existente, le recomendamos que cree un nodo virtual nuevo, que represente el mismo servicio que el nodo virtual existente, para habilitarloTLS. A continuación, transfiera gradualmente el tráfico al nuevo nodo virtual mediante un enrutador y una ruta virtuales. Para obtener más información acerca de la creación de una ruta y el ajuste de las ponderaciones para la transición, consulte Rutas. Si actualiza un nodo virtual existente que presta servicio al tráfico con élTLS, existe la posibilidad de que los proxies de Envoy del cliente descendente reciban el contexto de TLS validación antes de que el proxy de Envoy del nodo virtual que ha actualizado reciba el certificado. Esto puede provocar errores de TLS negociación en los proxies Envoy descendentes.

    • La autorización de proxy debe estar habilitada para el proxy de Envoy implementado con la aplicación representada por los nodos virtuales del servicio de backend. Le recomendamos que, cuando habilite la autorización de proxy, restrinja el acceso únicamente a los nodos virtuales con los que se comunica este nodo virtual.

    • (Opcional) Seleccione Enforce TLS si quiere que el nodo virtual se comunique con todos los backends mediante Transport Layer Security (). TLS

    • (Opcional) Si solo quiere requerir el uso TLS de uno o más puertos específicos, introduzca un número en Puertos. Para añadir puertos adicionales, seleccione Agregar puerto. Si no especificas ningún puerto, TLS se aplica a todos los puertos.

    • En Método de validación, seleccione una de las siguientes opciones. El certificado que especifique ya debe existir y cumplir unos requisitos específicos. Para obtener más información, consulte Requisitos del certificado.

      • Alojamiento de AWS Private Certificate Authority: seleccione uno o más certificados existentes. Para ver un recorrido completo sobre la implementación de una malla con una aplicación de ejemplo que utiliza el cifrado con un ACM certificado, consulte Configuración TLS con AWS Certificate Manager activado GitHub. end-to-end

      • Alojamiento del Servicio de Descubrimiento Secreto de Envoy (SDS): introduzca el nombre del secreto que el Enviado obtendrá mediante el Servicio de Descubrimiento Secreto.

      • Alojamiento de archivos local: especifique la ruta al archivo de la cadena de certificados en el sistema de archivos en el que está implementado Envoy. Para obtener información completa sobre end-to-end cómo implementar una malla con una aplicación de ejemplo que utiliza el cifrado con archivos locales, consulte Configuración TLS con TLS certificados proporcionados por archivos GitHub activados.

    • (Opcional) Escriba un Nombre alternativo del asunto. Para añadir másSANs, selecciona Añadir SAN. SANsdebe estar URI formateado FQDN o estar formateado.

    • (Opcional) Seleccione Proporcionar un certificado de cliente y una de las siguientes opciones para proporcionar un certificado de cliente cuando un servidor lo solicite y habilitar la TLS autenticación mutua. Para obtener más información sobre la autenticación mutuaTLS, consulta los documentos de TLSAutenticación mutua de App Mesh.

      • Alojamiento del Servicio de Descubrimiento Secreto de Envoy (SDS): introduce el nombre del secreto que el Enviado obtendrá mediante el Servicio de Descubrimiento Secreto.

      • Alojamiento de archivos local: especifique la ruta al archivo de la cadena de certificados, así como la clave privada, en el sistema de archivos en el que está implementado Envoy.

  9. (Opcional) Backends de servicios: especifique el servicio virtual de App Mesh con el que se comunicará el nodo virtual.
    • Introduzca un nombre de servicio virtual App Mesh o un nombre completo de recurso de Amazon (ARN) para el servicio virtual con el que se comunica el nodo virtual.

    • (Opcional) Si desea establecer una TLS configuración única para un backend, seleccione la TLSconfiguración y, a continuación, seleccione Anular los valores predeterminados.

      • (Opcional) Seleccione Forzar TLS si desea que el nodo virtual se comunique con todos los backends que lo utilicen. TLS

      • (Opcional) Si solo quiere requerir el uso TLS de uno o más puertos específicos, introduzca un número en Puertos. Para añadir puertos adicionales, seleccione Agregar puerto. Si no especificas ningún puerto, TLS se aplica a todos los puertos.

      • En Método de validación, seleccione una de las siguientes opciones. El certificado que especifique ya debe existir y cumplir unos requisitos específicos. Para obtener más información, consulte Requisitos del certificado.

        • Alojamiento de AWS Private Certificate Authority: seleccione uno o más certificados existentes.

        • Alojamiento del Servicio de Descubrimiento Secreto de Envoy (SDS): introduce el nombre del secreto que el Enviado obtendrá mediante el Servicio de Descubrimiento Secreto.

        • Alojamiento de archivos local: especifique la ruta al archivo de la cadena de certificados en el sistema de archivos en el que está implementado Envoy.

      • (Opcional) Escriba un Nombre alternativo del asunto. Para añadir másSANs, selecciona Añadir SAN. SANsdebe estar URI formateado FQDN o estar formateado.

      • (Opcional) Seleccione Proporcionar un certificado de cliente y una de las siguientes opciones para proporcionar un certificado de cliente cuando un servidor lo solicite y habilitar la TLS autenticación mutua. Para obtener más información sobre la autenticación mutuaTLS, consulta los documentos de TLSAutenticación mutua de App Mesh.

        • Alojamiento del Servicio de Descubrimiento Secreto de Envoy (SDS): introduce el nombre del secreto que el Enviado obtendrá mediante el Servicio de Descubrimiento Secreto.

        • Alojamiento de archivos local: especifique la ruta al archivo de la cadena de certificados, así como la clave privada, en el sistema de archivos en el que está implementado Envoy.

    • Para añadir backends adicionales, seleccione Agregar backend.

  10. (Opcional) Registro

    Para configurar el registro, introduzca la ruta de los registros de HTTP acceso que desee que utilice Envoy. Te recomendamos la /dev/stdout ruta para que puedas usar los controladores de registro de Docker para exportar tus registros de Envoy a un servicio como Amazon CloudWatch Logs.

    nota

    Los registros deben ser recibidos por un agente en su aplicación y enviados a un destino. Esta ruta de archivo solo indica a Envoy donde enviar los registros.

  11. Configuración del oyente

    Los oyentes admiten los protocolos HTTP, HTTP/2, GRPC y TCP. No admiten HTTPS

    1. Si el nodo virtual espera tráfico de entrada, especifique un puerto y protocolo para ese oyente. El oyente http permite la transición de la conexión a websockets. Puede hacer clic en Agregar agente de escucha para añadir varios oyentes. El botón Eliminar eliminará ese oyente.

    2. (Opcional) Habilitar grupo de conexiones

      La agrupación de conexiones limita el número de conexiones que un Envoy puede establecer simultáneamente con el clúster de aplicaciones local. Su objetivo es proteger su aplicación local frente a la sobrecarga de conexiones y le permite ajustar la configuración del tráfico a las necesidades de sus aplicaciones.

      Puede configurar los ajustes del grupo de conexiones del lado de destino para un oyente de nodos virtuales. App Mesh establece la configuración del conjunto de conexiones del lado del cliente en infinita de forma predeterminada, lo que simplifica la configuración de la malla.

      nota

      Los portMapping protocolos connectionPool y deben ser los mismos. Si el protocolo de escucha es tcp, especifique maxConnections únicamente. Si su protocolo de escucha es grpc o http2, especifique únicamente. maxRequests Si su protocolo de escucha es http, puede especificar ambos. maxConnections maxPendingRequests

      • En Número máximo de conexiones, especifique el número máximo de conexiones salientes.

      • (Opcional) En Número máximo de solicitudes pendientes, especifique el número de solicitudes de desbordamiento después del Número máximo de conexiones que un Envoy pondrá en espera. El valor predeterminado es 2147483647.

    3. (Opcional) Habilitar la detección de valores atípicos

      La detección de valores atípicos aplicada al cliente de Envoy permite a los clientes tomar medidas casi inmediatas en las conexiones en las que se hayan observado errores graves conocidos. Es una forma de implementación de un interruptor que rastrea el estado de los hosts individuales del servicio inicial.

      La detección de valores atípicos determina de forma dinámica si los puntos de conexión de un clúster ascendente funcionan de forma diferente a los demás y los elimina del conjunto de equilibrio de carga en buen estado.

      nota

      Para configurar de forma eficaz la detección de valores atípicos para un nodo virtual de servidor, el método de detección de servicios de ese nodo virtual puede ser uno de los dos AWS Cloud Map o DNS tener el campo de tipo de respuesta establecido en. ENDPOINTS Si utiliza un método de detección de DNS servicios con el tipo de respuesta comoLOADBALANCER, el proxy de Envoy solo elegirá una dirección IP única para el enrutamiento al servicio ascendente. Esto anula el comportamiento de detección de valores atípicos de expulsar un host en mal estado de un conjunto de hosts. Consulte la sección sobre el método de detección de servicios para obtener más información sobre el comportamiento del proxy de Envoy en relación con el tipo de detección de servicios.

      • En Errores del servidor, especifique el número de 5xx errores consecutivos necesarios para la expulsión.

      • En Intervalo de detección de valores atípicos, especifique la unidad y el intervalo de tiempo entre el análisis de barrido de expulsión.

      • En Duración base de la expulsión, especifique la unidad y el periodo de tiempo base durante los que se expulsa un host.

      • En Porcentaje de expulsión, especifique el porcentaje máximo de hosts del grupo de equilibrio de carga que se puede expulsar.

    4. (Opcional) Habilitar la comprobación de estado: configure los ajustes de una política de comprobación de estado.

      Una política de comprobación de estado es opcional, pero si especifica algún valor para una política de comprobación de estado, debe especificar valores para el Umbral de buen estado, Intervalo de comprobación de estado, Protocolo de comprobación de estado, Tiempo de espera de comprobación de estado y Umbral de mal estado.

      • En Protocolo de comprobación de estado, elija un protocolo. Si selecciona grpc, su servicio debe cumplir con el GRPCHealth Checking Protocol.

      • En Puerto de comprobación de estado, especifique el puerto en el que se debe ejecutar la comprobación de estado.

      • En Umbral de buen estado, especifique el número de comprobaciones de estado correctas consecutivas que deben producirse antes de declarar que el oyente está en buen estado.

      • En Intervalo de comprobación de estado, especifique el período de tiempo en milisegundos entre cada ejecución de comprobación de estado.

      • En Ruta, especifique la ruta de destino de cada solicitud de comprobación de estado. Este valor solo se usa si el Protocolo de comprobación de estado es http o http2. El valor se ignora para los demás protocolos.

      • En Período de tiempo, especifique, en milisegundos, el plazo de tiempo que se va a esperar cuando se recibe una respuesta de comprobación de estado.

      • En Umbral de estado incorrecto, especifique el número de comprobaciones de estado incorrectas consecutivas que deben producirse antes de declarar que el oyente está en mal estado.

    5. (Opcional) Habilitar la TLS terminación: configure la forma en que otros nodos virtuales se comunican con este nodo virtual medianteTLS.
      • En Modo, seleccione el modo para el que TLS quiere configurarse en el oyente.

      • En Método del certificado, seleccione una de las siguientes opciones: El certificado debe cumplir unos requisitos específicos. Para obtener más información, consulte Requisitos del certificado.

        • AWS Certificate Manager alojamiento: seleccione un certificado existente.

        • Alojamiento del Servicio de Descubrimiento Secreto de Envoy (SDS): introduce el nombre del secreto que el Enviado obtendrá mediante el Servicio de Descubrimiento Secreto.

        • Alojamiento de archivos local: especifique la ruta al archivo de la cadena de certificados, así como la clave privada, en el sistema de archivos en el que está implementado el proxy de Envoy.

      • (Opcional) Seleccione Requerir certificados de cliente y una de las siguientes opciones para habilitar la TLS autenticación mutua cuando un cliente proporcione un certificado. Para obtener más información sobre la autenticación mutuaTLS, consulta los documentos de TLSAutenticación mutua de App Mesh.

        • Alojamiento del Servicio de Descubrimiento Secreto de Envoy (SDS): introduce el nombre del secreto que el Enviado obtendrá mediante el Servicio de Descubrimiento Secreto.

        • Alojamiento de archivos local: especifique la ruta al archivo de la cadena de certificados en el sistema de archivos en el que está implementado Envoy.

      • (Opcional) Escriba un Nombre alternativo del asunto. Para añadir másSANs, selecciona Añadir SAN. SANsdebe estar URI formateado FQDN o estar formateado.

    6. (Opcional) Tiempos de espera
      nota

      Si especifica un tiempo de espera superior al predeterminado, asegúrese de configurar un enrutador virtual y una ruta con un tiempo de espera superior al predeterminado. Sin embargo, si reduce el tiempo de espera a un valor inferior al predeterminado; opcionalmente, puede actualizar los tiempos de espera en la ruta. Para obtener más información, consulte Rutas.

      • Tiempo de espera de la solicitud: puede especificar un tiempo de espera de solicitud si ha seleccionado grpc, http o http2 para el protocolo del oyente. El valor predeterminado es de 15 segundos. Un valor de 0 deshabilita el tiempo de espera.

      • Duración de inactividad: puede especificar una duración de inactividad para cualquier protocolo del oyente. El valor predeterminado es de 300 segundos.

  12. Elija Crear nodo virtual para finalizar.

AWS CLI

Para crear un nodo virtual mediante la AWS CLI.

Cree un nodo virtual que se utilice DNS para la detección de servicios mediante el siguiente comando y un JSON archivo de entrada (sustituya el red valores por los suyos propios):

  1. aws appmesh create-virtual-node \ --cli-input-json file://create-virtual-node-dns.json
  2. Contenido del ejemplo create-virtual-node-dns .json:

    { "meshName": "meshName", "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "virtualNodeName": "nodeName" }
  3. Ejemplo de salida:

    { "virtualNode": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualNode/nodeName", "createdAt": "2022-04-06T09:12:24.348000-05:00", "lastUpdatedAt": "2022-04-06T09:12:24.348000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "status": { "status": "ACTIVE" }, "virtualNodeName": "nodeName" } }

Para obtener más información sobre la AWS CLI creación de un nodo virtual con App Mesh, consulte el create-virtual-nodecomando en la AWS CLI referencia.

Eliminación de un nodo virtual

nota

No puede eliminar un nodo virtual si está especificado como destino en cualquier ruta o como proveedor en cualquier servicio virtual.

AWS Management Console
Para eliminar un nodo virtual mediante el AWS Management Console
  1. Abre la consola App Mesh en https://console.aws.amazon.com/appmesh/.

  2. Elija la malla en la que desee eliminar un nodo virtual. Se muestran todas las mallas que son de su propiedad y que se han compartido con usted.

  3. Elija Nodos virtuales en el panel de navegación izquierdo.

  4. En la tabla Nodos virtuales, elija el nodo virtual que desee eliminar y seleccione Eliminar. Para eliminar un nodo virtual, el ID de su cuenta debe figurar en las columnas Propietario de la malla o Propietario del recurso del nodo virtual.

  5. En el cuadro de confirmación, escriba delete y elija Eliminar.

AWS CLI
Para eliminar un nodo virtual mediante el AWS CLI
  1. Utilice el siguiente comando para eliminar el nodo virtual (sustituya el red valores por los tuyos propios):

    aws appmesh delete-virtual-node \ --mesh-name meshName \ --virtual-node-name nodeName
  2. Ejemplo de salida:

    { "virtualNode": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualNode/nodeName", "createdAt": "2022-04-06T09:12:24.348000-05:00", "lastUpdatedAt": "2022-04-07T11:03:48.120000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "backends": [], "listeners": [ { "portMapping": { "port": 80, "protocol": "http" } } ], "serviceDiscovery": { "dns": { "hostname": "serviceBv1.svc.cluster.local" } } }, "status": { "status": "DELETED" }, "virtualNodeName": "nodeName" } }

Para obtener más información sobre cómo eliminar un nodo virtual con App Mesh, consulta el delete-virtual-nodecomando en la AWS CLI referencia. AWS CLI