Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Configurazione di un dominio personalizzato per il server web Apache Airflow

Modalità Focus
Configurazione di un dominio personalizzato per il server web Apache Airflow - Amazon Managed Workflows for Apache Airflow

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Amazon Managed Workflows for Apache Airflow (Amazon MWAA) consente di configurare un dominio personalizzato per il server Web Apache Airflow gestito. Utilizzando un dominio personalizzato, puoi accedere al server Web Apache Airflow gestito da Amazon MWAA del tuo ambiente utilizzando l'interfaccia utente Apache Airflow, l'Apache Airflow CLI o il server Web Apache Airflow.

Nota

Puoi utilizzare un dominio personalizzato solo con un server Web privato senza accesso a Internet.

Casi d'uso per un dominio personalizzato su Amazon MWAA
  1. Condividi il dominio del server Web su tutta la tua applicazione cloud AWS : l'utilizzo di un dominio personalizzato consente di definire un URL intuitivo per l'accesso al server Web, anziché il nome di dominio del servizio generato. Puoi archiviare questo dominio personalizzato e condividerlo come variabile di ambiente nelle tue applicazioni.

  2. Accedi a un server Web privato: se desideri configurare l'accesso per un server Web in un VPC senza accesso a Internet, l'utilizzo di un dominio personalizzato semplifica il flusso di lavoro di reindirizzamento degli URL.

Configura il dominio personalizzato

Per configurare la funzionalità di dominio personalizzato, devi fornire il valore del dominio personalizzato tramite la configurazione webserver.base_url Apache Airflow durante la creazione o l'aggiornamento del tuo ambiente Amazon MWAA. I seguenti vincoli si applicano al tuo nome di dominio personalizzato:

  • Il valore deve essere un nome di dominio completo (FQDN) senza protocolli o percorsi. Ad esempio your-custom-domain.com.

  • Amazon MWAA non consente un percorso nell'URL. Ad esempio, non your-custom-domain.com/dags/ è un nome di dominio personalizzato valido.

  • La lunghezza dell'URL è limitata a 255 caratteri ASCII.

  • Se fornisci una stringa vuota, per impostazione predefinita, l'ambiente verrà creato con un URL del server Web generato da Amazon MWAA.

L'esempio seguente mostra l'utilizzo di AWS CLI per creare un ambiente con un nome di dominio del server Web personalizzato.

$ aws mwaa create-environment \ --name my-mwaa-env \ --source-bucket-arn arn:aws:s3:::my-bucket \ --airflow-configuration-options '{"webserver.base_url":"my-custom-domain.com"}' \ --network-configuration '{"SubnetIds":["subnet-0123456789abcdef","subnet-fedcba9876543210"]}' \ --execution-role-arn arn:aws:iam::123456789012:role/my-execution-role

Dopo aver creato o aggiornato l'ambiente, è necessario configurare l'infrastruttura di rete del proprio AWS account per accedere al server Web privato tramite il dominio personalizzato.

Per tornare all'URL predefinito generato dal servizio, aggiorna l'ambiente privato e rimuovi l'webserver.base_urlopzione di configurazione.

Configura l'infrastruttura di rete

Utilizza i seguenti passaggi per configurare l'infrastruttura di rete richiesta da utilizzare con il dominio personalizzato nel tuo AWS account.

  1. Ottieni gli indirizzi IP per Amazon VPC Endpoint Network Interfaces (ENI). Per fare ciò, usa innanzitutto get-environmentto find the WebserverVpcEndpointService per il tuo ambiente.

    $ aws mwaa get-environment --name your-environment-name

    In caso di successo, verrà visualizzato un risultato simile al seguente.

    {
        "Environment": {
            "AirflowConfigurationOptions": {},
            "AirflowVersion": "latest-version",
            "Arn": "environment-arn",
            "CreatedAt": "2024-06-01T01:00:00-00:00",
            "DagS3Path": "dags",
            .
            .
            .
            "WebserverVpcEndpointService": "web-server-vpc-endpoint-service",
            "WeeklyMaintenanceWindowStart": "TUE:21:30"
        }
    }

    Annota il WebserverVpcEndpointService valore e usalo web-server-vpc-endpoint-service nel seguente EC2 describe-vpc-endpoints comando Amazon. --filters Name=service-name,Values=web-server-vpc-endpoint-service-idnel comando seguente.

  2. Recupera i dettagli dell'endpoint Amazon VPC. Questo comando recupera i dettagli sugli endpoint Amazon VPC che corrispondono a un nome di servizio specifico, restituendo l'ID dell'endpoint e l' IDs interfaccia di rete associata in un formato di testo.

    $ aws ec2 describe-vpc-endpoints \ --filters Name=service-name,Values=web-server-vpc-endpoint-service \ --query 'VpcEndpoints[*].{EndpointId:VpcEndpointId,NetworkInterfaceIds:NetworkInterfaceIds}' \ --output text
  3. Ottieni i dettagli dell'interfaccia di rete. Questo comando recupera gli indirizzi IP privati per ogni interfaccia di rete associata agli endpoint Amazon VPC identificati nel passaggio precedente.

    $ for eni_id in $( aws ec2 describe-vpc-endpoints \ --filters Name=service-name,Values=service-id \ --query 'VpcEndpoints[*].NetworkInterfaceIds' \ --output text ); do aws ec2 describe-network-interfaces \ --network-interface-ids $eni_id \ --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' \ --output text done
  4. Utilizzalo create-target-group per creare un nuovo gruppo target. Utilizzerai questo gruppo target per registrare gli indirizzi IP per gli endpoint Amazon VPC del tuo server web.

    $ aws elbv2 create-target-group \ --name new-target-group-namne \ --protocol HTTPS \ --port 443 \ --vpc-id web-server-vpc-id \ --target-type ip \ --health-check-protocol HTTPS \ --health-check-port 443 \ --health-check-path / \ --health-check-enabled \ --matcher 'HttpCode="200,302"'

    Registra gli indirizzi IP utilizzando il register-targets comando.

    $ aws elbv2 register-targets \ --target-group-arn target-group-arn \ --targets Id=ip-address-1 Id=ip-address-2
  5. Richiedi un certificato ACM. Salta questo passaggio se utilizzi un certificato esistente.

    $ aws acm request-certificate \ --domain-name my-custom-domain.com \ --validation-method DNS
  6. Configura un sistema Application Load Balancer. Innanzitutto, crea il sistema di bilanciamento del carico, quindi crea un listener per il sistema di bilanciamento del carico. Specificate il certificato ACM creato nel passaggio precedente.

    $ aws elbv2 create-load-balancer \ --name my-mwaa-lb \ --type application \ --subnets subnet-id-1 subnet-id-2
    $ aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol HTTPS \ --port 443 \ --ssl-policy ELBSecurityPolicy-2016-08 \ --certificates CertificateArn=acm-certificate-arn \ --default-actions Type=forward,TargetGroupArn=target-group-arn

    Se utilizzi un Network Load Balancer in una sottorete privata, configurate un host o un AWS VPN tunnel bastion per accedere al server web.

  7. Crea una zona ospitata utilizzando Route 53 per il dominio.

    $ aws route53 create-hosted-zone --name my-custom-domain.com \ --caller-reference 1

    Crea un record A per il dominio. Per fare ciò utilizzando AWS CLI, ottieni l'ID della zona ospitata utilizzando list-hosted-zones-by-name quindi applica il record conchange-resource-record-sets.

    $ HOSTED_ZONE_ID=$(aws route53 list-hosted-zones-by-name \ --dns-name my-custom-domain.com \ --query 'HostedZones[0].Id' --output text)
    $ aws route53 change-resource-record-sets \ --hosted-zone-id $HOSTED_ZONE_ID \ --change-batch '{ "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "my-custom-domain.com", "Type": "A", "AliasTarget": { "HostedZoneId": "load-balancer-hosted-zone-id>", "DNSName": "load-balancer-dns-name", "EvaluateTargetHealth": true } } } ] }'
  8. Aggiorna le regole del gruppo di sicurezza per l'endpoint Amazon VPC del server Web in modo che segua il principio del privilegio minimo, consentendo il traffico HTTPS solo dalle sottoreti pubbliche in cui si trova l'Application Load Balancer. Salva il seguente codice JSON in locale. Ad esempio, comesg-ingress-ip-permissions.json.

    [ { "IpProtocol": "tcp", "FromPort": 443, "ToPort": 443, "UserIdGroupPairs": [ { "GroupId": "load-balancer-security-group-id" } ], "IpRanges": [ { "CidrIp": "public-subnet-1-cidr" }, { "CidrIp": "public-subnet-2-cidr" } ] } ]

    Esegui il seguente EC2 comando Amazon per aggiornare le regole del tuo gruppo di sicurezza in ingresso. Specificate il file JSON per. --ip-permissions

    $ aws ec2 authorize-security-group-ingress \ --group-id <security-group-id> \ --ip-permissions file://sg-ingress-ip-permissions.json

    Esegui il seguente EC2 comando Amazon per aggiornare le regole di uscita.

    $ aws ec2 authorize-security-group-egress \ --group-id webserver-vpc-endpoint-security-group-id \ --protocol tcp \ --port 443 \ --source-group load-balancer-security-group-id

Apri la console Amazon MWAA e accedi all'interfaccia utente di Apache Airflow. Se state configurando un Network Load Balancer in una sottorete privata anziché nell'Application Load Balancer usato qui, dovete accedere al server web con una delle seguenti opzioni.

In questa pagina

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.