Tutorial: cómo automatizar la administración de sus propios puntos de conexión de entorno en Amazon MWAA - Amazon Managed Workflows para Apache Airflow

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.

Tutorial: cómo automatizar la administración de sus propios puntos de conexión de entorno en Amazon MWAA

Si AWS Organizationssolía administrar varias AWS cuentas que comparten recursos, Amazon MWAA le permite crear y administrar sus propios puntos de enlace de Amazon VPC. Esto significa que puede utilizar políticas de seguridad más estrictas que le permitan acceder únicamente a los recursos que necesite su entorno.

Cuando crea un entorno en una Amazon VPC compartida, la cuenta propietaria de la Amazon VPC principal (propietaria) comparte las dos subredes privadas que requiere Amazon MWAA con otras cuentas (participantes) que pertenecen a la misma organización. A continuación, las cuentas participantes que comparten esas subredes pueden ver, crear, modificar y eliminar entornos en la VPC compartida.

Cuando cree un entorno en una Amazon VPC compartida o de algún otro modo restringida por políticas, Amazon MWAA primero creará los recursos de la VPC del servicio y, a continuación, entrará en un estado PENDING por hasta 72 horas.

Cuando el estado del entorno cambia de CREATING aPENDING, Amazon MWAA envía una EventBridge notificación a Amazon sobre el cambio de estado. Esto permite a la cuenta propietaria crear los puntos de enlace necesarios en nombre de los participantes en función de la información del servicio de puntos finales de la consola o la API de Amazon MWAA, o mediante programación. A continuación, creamos nuevos puntos de enlace de Amazon VPC mediante una función Lambda y una EventBridge regla que escucha las notificaciones de cambio de estado de Amazon MWAA.

Aquí creamos los nuevos puntos de conexión en la misma Amazon VPC que el entorno. Para configurar una Amazon VPC compartida, cree la EventBridge regla y la función Lambda lo haría en la cuenta del propietario y el entorno Amazon MWAA en la cuenta del participante.

Requisitos previos

Para completar los pasos en este tutorial, deberá hacer lo siguiente:

  • ...

Creación de la Amazon VPC

Utilice la AWS CloudFormation plantilla y el AWS CLI comando siguientes para crear una nueva Amazon VPC. La plantilla configura los recursos de Amazon VPC y modifica la política de punto de conexión para restringir el acceso a una cola específica.

  1. Descargue la AWS CloudFormation plantilla y, a continuación, descomprima el .yml archivo.

  2. En una nueva ventana de petición de comandos, navegue hasta la carpeta donde guardó la plantilla y, a continuación, use create-stack para crear la pila. El indicador --template-body especifica la ruta a la plantilla.

    $ aws cloudformation create-stack --stack-name stack-name --template-body file://cfn-vpc-private-network.yml

En la siguiente sección, creará la función de Lambda.

Crear la función de Lambda

Utilice el siguiente código Python y la política JSON de IAM para crear una nueva función de Lambda y un rol de ejecución. Esta función crea puntos de conexión de Amazon VPC para un servidor web Apache Airflow privado y una cola de Amazon SQS. Amazon MWAA utiliza Amazon SQS para poner en cola tareas con Celery entre varios procesos de trabajo a la hora de escalar su entorno.

  1. Descargue el código de la función Python.

  2. Descargue la política de permisos de IAM y, a continuación, descomprima el archivo.

  3. Abra un comando de petición y, a continuación, navegue hasta la carpeta en la que guardó la política de permisos de JSON. Use el comando de IAM create-role para crear el nuevo rol.

    $ aws iam create-role --role-name function-role \ --assume-role-policy-document file://lambda-mwaa-vpce-policy.json

    Anote el ARN de la función de la AWS CLI respuesta. En el siguiente paso, especificamos este nuevo rol como el rol de ejecución de la función mediante su ARN.

  4. Navegue hasta la carpeta en la que guardó el código de la función y, a continuación, utilice el comando create-function para crear una función nueva.

    $ aws lambda create-function --function-name mwaa-vpce-lambda \ --zip-file file://mwaa-lambda-shared-vpc.zip --runtime python3.8 --role arn:aws:iam::123456789012:role/function-role --handler lambda_handler

    Observe la función ARN de la AWS CLI respuesta. En el siguiente paso, especificamos el ARN para configurar la función como destino de una nueva EventBridge regla.

En la siguiente sección, creará la EventBridge regla que invoca esta función cuando el entorno entre en un PENDING estado.

Cree la regla EventBridge

Haga lo siguiente para crear una nueva regla que escuche las notificaciones de Amazon MWAA y se dirija a su nueva función de Lambda.

  1. Utilice el EventBridge put-rule comando para crear una nueva EventBridge regla.

    $ aws events put-rule --name "mwaa-lambda-rule" \ --event-pattern "{\"source\":[\"aws.airflow\"],\"detail-type\":[\"MWAA Environment Status Change\"]}"

    El patrón de eventos escucha las notificaciones que Amazon MWAA envía cada vez que cambia el estado de un entorno.

    { "source": ["aws.airflow"], "detail-type": ["MWAA Environment Status Change"] }
  2. Utilice el comando put-targets para agregar la función de Lambda como destino de la nueva regla.

    $ aws events put-targets --rule "mwaa-lambda-rule" \ --targets "Id"="1","Arn"="arn:aws::lambda:region:123456789012:function:mwaa-vpce-lambda"

Ya está listo para crear un nuevo entorno de Amazon MWAA con puntos de conexión de Amazon VPC administrados por el cliente.

Crear el entorno de Amazon MWAA

Utilice la consola de Amazon MWAA para crear un nuevo entorno con puntos de conexión de Amazon VPC administrados por el cliente.

  1. Abra la consola de Amazon MWAA y seleccione Crear un entorno.

  2. En Nombre, escriba un nombre único.

  3. En Versión de Airflow, seleccione la versión más reciente.

  4. Elija un bucket y una DAGs carpeta de Amazon S3, por ejemplo, dags/ para usarlos con el entorno y, a continuación, seleccione Siguiente.

  5. En la página Configurar los ajustes avanzados, haga lo siguiente:

    1. En Nube privada virtual, elija la Amazon VPC que creó en el paso anterior.

    2. En Acceso del servidor web, seleccione Red pública (con acceso a Internet).

    3. En el caso de los grupos de seguridad, elija el grupo de seguridad con el que creó AWS CloudFormation. Como los grupos de seguridad de los puntos de conexión AWS PrivateLink del paso anterior se autorreferencian, debe elegir el mismo grupo de seguridad para su entorno.

    4. En Administración de puntos de conexión, seleccione Puntos de conexión administrados por el cliente.

  6. Conserve el resto de la configuración predeterminada y, a continuación, seleccione Siguiente.

  7. Revise su selección y, a continuación, elija Crear entorno.

sugerencia

Para obtener más información sobre cómo configurar un nuevo entorno, consulte Introducción a Amazon MWAA.

Cuando el estado del entorno es PENDING, Amazon MWAA envía una notificación que coincide con el patrón de eventos que usted estableció para la regla. La regla invoca su función de Lambda. La función analiza el evento de notificación y obtiene la información de punto de conexión requerida para el servidor web y la cola de Amazon SQS. A continuación, crea los puntos de conexión en su Amazon VPC.

Cuando los puntos de conexión están disponibles, Amazon MWAA reanuda la creación del entorno. Una vez que haya finalizado, el estado del entorno cambiará a AVAILABLE y usted podrá acceder al servidor web Apache Airflow mediante la consola de Amazon MWAA.