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.
Configuración de la instancia de compilación para una aplicación de Amplify
Amplify Hosting ofrece tamaños de instancia de compilación configurables que le permiten proporcionar a la instancia de compilación de su aplicación los recursos de CPU, memoria y espacio en disco que esta necesita. Antes del lanzamiento de esta característica , Amplify ofrecía una configuración de instancia de compilación de tamaño fijo de 8 GiB de memoria y 4 vCPU.
Amplify admite tres tipos de instancias de compilación: Standard, Large y XLarge. Si no especifica un tipo de instancia, Amplify utiliza la instancia predeterminada Standard. Puede configurar el tipo de instancia de compilación de una aplicación mediante la consola de Amplify, la AWS CLI o los SDK.
El costo de cada tipo de instancia de compilación se calcula por minuto de compilación. Para obtener más información sobre precios, consulte precios de AWS Amplify
La tabla siguiente describe las especificaciones de procesamiento de cada tipo de instancia de compilación:
tipo de instancia de compilación |
vCPU |
Memoria |
Espacio en disco |
|---|---|---|---|
Standard |
4 vCPU |
8 GiB |
128 GB |
Large |
8 vCPU |
16 GiB |
128 GB |
XLarge |
36 vCPU |
72 GiB |
256 GB |
Temas
Comprender los tipos de instancias de compilación
La configuración del tipo de instancia de compilación se configura en el nivel de la aplicación y se extiende a todas las ramificaciones de la aplicación. Los siguientes detalles clave se aplican a los tipos de instancias de compilación:
-
El tipo de instancia de compilación que configura para una aplicación se aplica automáticamente a las ramificaciones creadas automáticamente y a las vistas previas de las solicitudes de extracción.
-
La cuota del servicio de trabajos simultáneos se aplica a todos los tipos de instancias de compilación que tengas en se Cuenta de AWS. Por ejemplo, si el límite de trabajos simultáneos es de cinco, puede ejecutar hasta un máximo de 5 compilaciones en todos los tipos de instancias que tenga en la Cuenta de AWS.
-
El costo de cada tipo de instancia de compilación se calcula por minuto de compilación. El proceso de asignación de instancias de compilación puede requerir una sobrecarga adicional antes de que comience la compilación. En el caso de las instancias más grandes, especialmente las XLarge, es posible que la compilación experimente latencia antes de que comience la compilación, debido a este tiempo de sobrecarga. Sin embargo, solo se le facturará el tiempo de compilación real, no el tiempo de sobrecarga.
Puede configurar el tipo de instancia de compilación al crear una nueva aplicación o puede actualizar el tipo de instancia en una aplicación existente. Para obtener instrucciones sobre cómo configurar este ajuste en la consola de Amplify, consulte Configuración del tipo de instancia de compilación en la consola de Amplify. También puede actualizar esta configuración a través de los SDK. Para obtener más información, consulte las API de CreateApp y UpdateApp en la Referencia de la API de Amplify.
Si ya tiene aplicaciones en la cuenta que se crearon antes del lanzamiento de la característica de tipo de instancia de compilación personalizable, usarán el tipo de instancia Standard predeterminado. Al actualizar el tipo de instancia de compilación de una aplicación existente, todas las compilaciones que estén en cola o en curso antes de la actualización utilizarán el tipo de instancia de compilación previamente configurado. Por ejemplo, si tiene una aplicación existente con la ramificación main♥ implementada en Amplify y actualiza su tipo de instancia de compilación de Estándar a Grande, todas las compilaciones nuevas que inicie desde la ramificación main usarán el tipo de instancia de compilación Grande. Sin embargo, cualquier compilación que esté en curso en el momento de actualizar el tipo de instancia de compilación seguirá ejecutándose en la instancia Estándar.
Configuración del tipo de instancia de compilación en la consola de Amplify
Utilice el siguiente procedimiento para configurar el tipo de instancia de compilación al crear una nueva aplicación de Amplify.
Configuración del tipo de instancia de compilación de una nueva aplicación
-
Inicie sesión en Consola de administración de AWS y abra la consola de Amplify
. -
En la página Todas las aplicaciones, seleccione Crear nueva aplicación.
-
En la página Comenzar a crear con Amplify, seleccione el proveedor de repositorios de Git y, a continuación, elija Siguiente.
-
En la página Añadir ramificación de repositorio, haga lo siguiente:
-
En la lista de Repositorios actualizados recientemente, seleccione el nombre del repositorio que desea conectar.
-
En la lista de Ramificaciones, seleccione el nombre de la ramificación del repositorio que desea conectar.
-
Elija Siguiente.
-
-
En la página Configuración de la aplicación, abra la sección Configuración avanzada.
-
En el tipo de instancia de compilación, seleccione el tipo de instancia que desee de la lista.
-
Si va a implementar una aplicación basada en el tiempo de ejecución de Node.js, configure el tamaño de la memoria dinámica para utilizar de forma eficaz un tipo de instancia grande. Puede hacerlo en la página Configuración de la aplicación al configurar una variable de entorno o al actualizar la configuración de compilación. Para obtener más información, consulte Configuración de la memoria dinámica de una aplicación para utilizar tipos de instancias grandes .
-
Establecer una variable de entorno
En la sección Configuración avanzada, Variables de entorno, seleccione Añadir nueva.
En Clave, introduzca
NODE_OPTIONS.-
En Valor, introduzca
--max-old-space-size=. Sustituyamemory_size_in_mbmemory_size_in_mbpor el tamaño de memoria dinámica deseado en megabytes.
-
Actualizar la configuración de compilación
En la sección Configuración de la compilación, elija Editar el archivo YML.
Agregue el siguiente comando a la fase
preBuild. Sustituyamemory_size_in_mbpor el tamaño de memoria dinámica deseado en megabytes.export NODE_OPTIONS='--max-old-space-size=memory_size_in_mb'Seleccione Save.
-
-
Elija Siguiente.
-
En la página Revisar, elija Guardar e implementar.
Utilice el siguiente procedimiento para configurar el tipo de instancia de compilación en una aplicación de Amplify existente.
Para configurar el tipo de instancia de compilación de una nueva aplicación
-
Inicie sesión en Consola de administración de AWS y abra la consola de Amplify
. -
Elija la aplicación para la que desea configurar el tipo de instancia de compilación.
-
En el panel de navegación, elija Alojamiento y, a continuación, Configuración de compilación.
-
En la página Configuración de compilación, en la sección Configuración avanzada, elija Editar.
-
En la página Editar configuración, en Tipo de instancia de compilación, seleccione el tipo de instancia que desee de la lista.
-
Seleccione Save. Este cambio entrará en vigor la próxima vez que implemente la aplicación.
-
(Opcional) Para implementar la aplicación actualizada de forma inmediata, haga lo siguiente:
-
En el panel de navegación, elija Overview (Información general).
-
En la página de información general de la aplicación, elija la ramificación que desee volver a implementar.
-
En la página Implementación, elija una implementación, como puede ser, la implementación más reciente. A continuación, seleccione Reimplementar esta versión. Comenzará una nueva implementación.
-
Cuando se complete la implementación, la configuración de compilación de la aplicación mostrará que la ramificación está utilizando el tipo de instancia de compilación actualizado.
-
Configuración de la memoria dinámica de una aplicación para utilizar tipos de instancias grandes
Si está compilando aplicaciones con un uso intensivo de memoria, utilice esta sección para comprender cómo configurar la aplicación para que utilice tipos de instancias grandes. Los lenguajes y marcos de programación suelen estar basados en la asignación de memoria dinámica, también conocida como memoria de pila, durante el tiempo de ejecución para gestionar los requisitos de memoria de las aplicaciones. El entorno de tiempo de ejecución solicita la memoria de pila y el sistema operativo host la asigna. De forma predeterminada, los entornos de tiempo de ejecución imponen un límite máximo de tamaño de pila disponible para la aplicación. Esto significa que no habrá memoria adicional disponible para la aplicación más allá del tamaño de la pila, aunque el sistema operativo host o el contenedor tengan una mayor cantidad de memoria disponible.
Por ejemplo, el entorno de tiempo de ejecución Node.js v8 de JavaScript impone un límite de tamaño de pila predeterminado que depende de varios factores, incluido el tamaño de la memoria del host. Como resultado, las instancias de compilación de Standard y Large tienen un tamaño de pila predeterminado de Node.js de 2096 MB y la instancia XLarge tiene un tamaño de pila predeterminado de 4144 MB. Por lo tanto, si se crea una aplicación con un requisito de memoria de 6000 MB con el tamaño de pila predeterminado de Node.js en cualquier tipo de instancia de compilación de Amplify, se producirá un error de compilación debido a un error de memoria insuficiente.
Para evitar los límites de memoria de pila predeterminados de Node.js, se pueden tomar una de las siguientes medidas:
-
Establezca la variable del entorno de
NODE_OPTIONSen su aplicación de Amplify en el valor--max-old-space-size=. Paramemory_size_in_mbmemory_size_in_mb, especifique el tamaño de memoria de pila deseado en megabytes.Para obtener instrucciones, consulte Configuración de variables de entorno.
-
Agregue el siguiente comando a la fase
preBuilden la especificación de compilación de su aplicación de Amplify.export NODE_OPTIONS='--max-old-space-size=memory_size_in_mb'Puede actualizar la especificación de compilación en la consola de Amplify o en el archivo
amplify.ymlde su aplicación en el repositorio de su proyecto. Para obtener instrucciones, consulte Ajuste de la configuración de compilación de una aplicación de Amplify.El siguiente ejemplo de especificación de compilación de Amplify establece un tamaño de memoria de pila de Node.js en 7000 MB para crear una aplicación frontend de React:
version: 1 frontend: phases: preBuild: commands: # Set the heap size to 7000 MB - export NODE_OPTIONS='--max-old-space-size=7000' # To check the heap size memory limit in MB - node -e "console.log('Total available heap size (MB):', v8.getHeapStatistics().heap_size_limit / 1024 / 1024)" - npm ci --cache .npm --prefer-offline build: commands: - npm run build artifacts: baseDirectory: build files: - '**/*' cache: paths: - .npm/**/*
Para utilizar de forma eficaz los tipos de instancias grandes, es importante tener configurado un tamaño de memoria de pila suficiente. Si se configura un tamaño de pila pequeño para una aplicación con un uso intensivo de memoria, es probable que se produzca un error de compilación. Es posible que los registros de compilación de la aplicación no indiquen directamente un error de memoria insuficiente, ya que el tiempo de ejecución de la aplicación puede bloquearse de manera inesperada. Si se configura un tamaño de pila tan grande como la memoria del host, el sistema operativo anfitrión podría interrumpir o finalizar otros procesos, lo que podría llegar a alterar el proceso de compilación. Como referencia, Node.js recomienda establecer un tamaño de pila máximo de 1536 MB en una máquina con aproximadamente 2000 MB de memoria para dejar algo de memoria para otros usos.
El tamaño de pila óptimo depende de las necesidades de la aplicación y del uso de recursos. Si encuentra errores de memoria insuficiente, comience con un tamaño de pila moderado y, a continuación, vaya aumentándolo de manera gradual según sea necesario. Como guía, recomendamos empezar con 6000 MB para un tipo de instancia Standard, 12 000 MB para un tipo de instancia Large y 60 000 MB para un tipo de instancia XLarge.