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à.
Gestire i propri VPC endpoint Amazon su Amazon MWAA
Amazon MWAA utilizza gli VPC endpoint Amazon per l'integrazione con vari AWS servizi necessari per configurare un ambiente Apache Airflow. La gestione dei propri endpoint ha due casi d'uso principali:
-
Significa che puoi creare ambienti Apache Airflow in un Amazon condiviso VPC quando utilizzi un AWS Organizations
per gestire più AWS account e condividere risorse. -
Ti consente di utilizzare politiche di accesso più restrittive restringendo le autorizzazioni alle risorse specifiche che utilizzano i tuoi endpoint.
Se scegli di gestire i tuoi VPC endpoint, sei responsabile della creazione dei tuoi endpoint per l'ambiente per il database Postgre e RDS SQL per l'ambiente web server.
Per ulteriori informazioni su come Amazon MWAA implementa Apache Airflow nel cloud, consulta il diagramma dell'architettura di Amazon MWAA.
Creazione di un ambiente in un Amazon condiviso VPC
Se gestisci più AWS account che condividono risorse, puoi utilizzare gli VPC endpoint gestiti dai clienti con Amazon MWAA per condividere le risorse dell'ambiente con un altro account della tua organizzazione. AWS Organizations
Quando configuri VPC l'accesso condiviso, l'account proprietario dell'Amazon principale VPC (proprietario) condivide le due sottoreti private richieste da Amazon MWAA con altri account (partecipanti) che appartengono alla stessa organizzazione. Gli account dei partecipanti che condividono tali sottoreti possono visualizzare, creare, modificare ed eliminare ambienti nell'Amazon condiviso. VPC
Supponiamo di avere un accountOwner
, che funge da Root
account nell'organizzazione e possiede le VPC risorse Amazon, e un account partecipanteParticipant
, membro della stessa organizzazione. Quando Participant
crea un nuovo Amazon MWAA in Amazon VPC con cui condivideOwner
, Amazon crea prima MWAA le VPC risorse del servizio, quindi inserisce PENDING
uno stato per un massimo di 72 ore.
Dopo che lo stato dell'ambiente è cambiato da CREATING
aPENDING
, un responsabile che agisce per conto di Owner
crea gli endpoint richiesti. A tale scopo, Amazon MWAA elenca il database e l'endpoint del server Web nella MWAA console Amazon. Puoi anche richiamare l'GetEnvironment
APIazione per ottenere gli endpoint del servizio.
Nota
Se l'Amazon VPC che usi per condividere risorse è un Amazon privatoVPC, devi comunque completare i passaggi descritti inGestione dell'accesso agli endpoint Amazon VPC specifici del servizio su Amazon MWAA. L'argomento tratta la configurazione di un diverso set di VPC endpoint Amazon relativi ad altri AWS servizi con cui AWS si integra, come AmazonECS, ECR Amazon e Amazon. SQS Questi servizi sono essenziali per il funzionamento e la gestione dell'ambiente Apache Airflow nel cloud.
Prerequisiti
Prima di creare un MWAA ambiente Amazon in un ambiente condivisoVPC, sono necessarie le seguenti risorse:
-
Un AWS account,
Owner
da utilizzare come account proprietario di AmazonVPC. -
Un'unità AWS Organizations
organizzativa, MyOrganization
creata come radice. -
Un secondo AWS account
Participant
, destinatoMyOrganization
a servire l'account del partecipante che crea il nuovo ambiente.
Inoltre, ti consigliamo di acquisire familiarità con le responsabilità e le autorizzazioni dei proprietari e dei partecipanti quando condividono risorse in Amazon. VPC
Crea Amazon VPC
Innanzitutto, crea un nuovo Amazon VPC che gli account del proprietario e del partecipante condivideranno:
-
Accedi alla console utilizzando
Owner
, quindi, apri la AWS CloudFormation console. Usa il seguente modello per creare uno stack. Questo stack fornisce una serie di risorse di reteVPC, tra cui Amazon e le sottoreti che i due account condivideranno in questo scenario.AWSTemplateFormatVersion: "2010-09-09" Description: >- This template deploys a VPC, with a pair of public and private subnets spread across two Availability Zones. It deploys an internet gateway, with a default route on the public subnets. It deploys a pair of NAT gateways (one in each AZ), and default routes for them in the private subnets. Parameters: EnvironmentName: Description: An environment name that is prefixed to resource names Type: String Default: mwaa- VpcCIDR: Description: Please enter the IP range (CIDR notation) for this VPC Type: String Default: 10.192.0.0/16 PublicSubnet1CIDR: Description: >- Please enter the IP range (CIDR notation) for the public subnet in the first Availability Zone Type: String Default: 10.192.10.0/24 PublicSubnet2CIDR: Description: >- Please enter the IP range (CIDR notation) for the public subnet in the second Availability Zone Type: String Default: 10.192.11.0/24 PrivateSubnet1CIDR: Description: >- Please enter the IP range (CIDR notation) for the private subnet in the first Availability Zone Type: String Default: 10.192.20.0/24 PrivateSubnet2CIDR: Description: >- Please enter the IP range (CIDR notation) for the private subnet in the second Availability Zone Type: String Default: 10.192.21.0/24 Resources: VPC: Type: 'AWS::EC2::VPC' Properties: CidrBlock: !Ref VpcCIDR EnableDnsSupport: true EnableDnsHostnames: true Tags: - Key: Name Value: !Ref EnvironmentName InternetGateway: Type: 'AWS::EC2::InternetGateway' Properties: Tags: - Key: Name Value: !Ref EnvironmentName InternetGatewayAttachment: Type: 'AWS::EC2::VPCGatewayAttachment' Properties: InternetGatewayId: !Ref InternetGateway VpcId: !Ref VPC PublicSubnet1: Type: 'AWS::EC2::Subnet' Properties: VpcId: !Ref VPC AvailabilityZone: !Select - 0 - !GetAZs '' CidrBlock: !Ref PublicSubnet1CIDR MapPublicIpOnLaunch: true Tags: - Key: Name Value: !Sub '${EnvironmentName} Public Subnet (AZ1)' PublicSubnet2: Type: 'AWS::EC2::Subnet' Properties: VpcId: !Ref VPC AvailabilityZone: !Select - 1 - !GetAZs '' CidrBlock: !Ref PublicSubnet2CIDR MapPublicIpOnLaunch: true Tags: - Key: Name Value: !Sub '${EnvironmentName} Public Subnet (AZ2)' PrivateSubnet1: Type: 'AWS::EC2::Subnet' Properties: VpcId: !Ref VPC AvailabilityZone: !Select - 0 - !GetAZs '' CidrBlock: !Ref PrivateSubnet1CIDR MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub '${EnvironmentName} Private Subnet (AZ1)' PrivateSubnet2: Type: 'AWS::EC2::Subnet' Properties: VpcId: !Ref VPC AvailabilityZone: !Select - 1 - !GetAZs '' CidrBlock: !Ref PrivateSubnet2CIDR MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub '${EnvironmentName} Private Subnet (AZ2)' NatGateway1EIP: Type: 'AWS::EC2::EIP' DependsOn: InternetGatewayAttachment Properties: Domain: vpc NatGateway2EIP: Type: 'AWS::EC2::EIP' DependsOn: InternetGatewayAttachment Properties: Domain: vpc NatGateway1: Type: 'AWS::EC2::NatGateway' Properties: AllocationId: !GetAtt NatGateway1EIP.AllocationId SubnetId: !Ref PublicSubnet1 NatGateway2: Type: 'AWS::EC2::NatGateway' Properties: AllocationId: !GetAtt NatGateway2EIP.AllocationId SubnetId: !Ref PublicSubnet2 PublicRouteTable: Type: 'AWS::EC2::RouteTable' Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Sub '${EnvironmentName} Public Routes' DefaultPublicRoute: Type: 'AWS::EC2::Route' DependsOn: InternetGatewayAttachment Properties: RouteTableId: !Ref PublicRouteTable DestinationCidrBlock: 0.0.0.0/0 GatewayId: !Ref InternetGateway PublicSubnet1RouteTableAssociation: Type: 'AWS::EC2::SubnetRouteTableAssociation' Properties: RouteTableId: !Ref PublicRouteTable SubnetId: !Ref PublicSubnet1 PublicSubnet2RouteTableAssociation: Type: 'AWS::EC2::SubnetRouteTableAssociation' Properties: RouteTableId: !Ref PublicRouteTable SubnetId: !Ref PublicSubnet2 PrivateRouteTable1: Type: 'AWS::EC2::RouteTable' Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Sub '${EnvironmentName} Private Routes (AZ1)' DefaultPrivateRoute1: Type: 'AWS::EC2::Route' Properties: RouteTableId: !Ref PrivateRouteTable1 DestinationCidrBlock: 0.0.0.0/0 NatGatewayId: !Ref NatGateway1 PrivateSubnet1RouteTableAssociation: Type: 'AWS::EC2::SubnetRouteTableAssociation' Properties: RouteTableId: !Ref PrivateRouteTable1 SubnetId: !Ref PrivateSubnet1 PrivateRouteTable2: Type: 'AWS::EC2::RouteTable' Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Sub '${EnvironmentName} Private Routes (AZ2)' DefaultPrivateRoute2: Type: 'AWS::EC2::Route' Properties: RouteTableId: !Ref PrivateRouteTable2 DestinationCidrBlock: 0.0.0.0/0 NatGatewayId: !Ref NatGateway2 PrivateSubnet2RouteTableAssociation: Type: 'AWS::EC2::SubnetRouteTableAssociation' Properties: RouteTableId: !Ref PrivateRouteTable2 SubnetId: !Ref PrivateSubnet2 SecurityGroup: Type: 'AWS::EC2::SecurityGroup' Properties: GroupName: mwaa-security-group GroupDescription: Security group with a self-referencing inbound rule. VpcId: !Ref VPC SecurityGroupIngress: Type: 'AWS::EC2::SecurityGroupIngress' Properties: GroupId: !Ref SecurityGroup IpProtocol: '-1' SourceSecurityGroupId: !Ref SecurityGroup Outputs: VPC: Description: A reference to the created VPC Value: !Ref VPC PublicSubnets: Description: A list of the public subnets Value: !Join - ',' - - !Ref PublicSubnet1 - !Ref PublicSubnet2 PrivateSubnets: Description: A list of the private subnets Value: !Join - ',' - - !Ref PrivateSubnet1 - !Ref PrivateSubnet2 PublicSubnet1: Description: A reference to the public subnet in the 1st Availability Zone Value: !Ref PublicSubnet1 PublicSubnet2: Description: A reference to the public subnet in the 2nd Availability Zone Value: !Ref PublicSubnet2 PrivateSubnet1: Description: A reference to the private subnet in the 1st Availability Zone Value: !Ref PrivateSubnet1 PrivateSubnet2: Description: A reference to the private subnet in the 2nd Availability Zone Value: !Ref PrivateSubnet2 SecurityGroupIngress: Description: Security group with self-referencing inbound rule Value: !Ref SecurityGroupIngress
-
Dopo aver effettuato il provisioning delle nuove VPC risorse Amazon, accedi alla AWS Resource Access Manager console, quindi scegli Crea condivisione di risorse.
-
Scegli le sottoreti che hai creato nel primo passaggio dall'elenco delle sottoreti disponibili con cui puoi condividere.
Participant
Creazione dell'ambiente
Completa i seguenti passaggi per creare un MWAA ambiente Amazon con endpoint Amazon VPC gestiti dal cliente.
-
Accedi utilizzando
Participant
e apri la MWAA console Amazon. Completa la prima fase: specifica i dettagli per specificare un bucket Amazon S3, una DAG cartella e le dipendenze per il tuo nuovo ambiente. Per ulteriori informazioni, consulta la sezione Guida introduttiva. -
Nella pagina Configura impostazioni avanzate, in Rete, scegli le sottoreti dall'Amazon condiviso. VPC
-
In Gestione degli endpoint scegli CUSTOMERdall'elenco a discesa.
-
Mantieni l'impostazione predefinita per le opzioni rimanenti sulla pagina, quindi scegli Crea ambiente nella pagina Rivedi e crea.
L'ambiente inizia in uno CREATING
stato, quindi diventaPENDING
. Quando l'ambiente lo èPENDING
, annota il nome del servizio endpoint del database e il nome del servizio endpoint del server Web (se hai configurato un server Web privato) utilizzando la console.
Quando crei un nuovo ambiente utilizzando la MWAA console Amazon. Amazon MWAA crea un nuovo gruppo di sicurezza con le regole in entrata e in uscita richieste. Annotare l'ID del gruppo di sicurezza.
Nella prossima sezione, Owner
utilizzerà gli endpoint del servizio e l'ID del gruppo di sicurezza per creare nuovi VPC endpoint Amazon nell'Amazon condiviso. VPC
Crea gli VPC endpoint Amazon
Completa i seguenti passaggi per creare gli VPC endpoint Amazon richiesti per il tuo ambiente.
-
Accedi a AWS Management Console using
Owner
, the open https://console.aws.amazon.com/vpc/. -
Scegli Gruppi di sicurezza dal pannello di navigazione a sinistra, quindi crea un nuovo gruppo di sicurezza nell'Amazon condiviso VPC utilizzando le seguenti regole in entrata e in uscita:
Tipo Protocollo Tipo di origine Origine In entrata
Tutto il traffico Tutti Tutti Il tuo gruppo di sicurezza ambientale
In uscita
Tutto il traffico Tutti Tutti 0.0.0.0/0
avvertimento
L'
Owner
account deve configurare un gruppo di sicurezza nell'Owner
account per consentire il traffico dal nuovo ambiente all'Amazon condivisoVPC. Puoi farlo creando un nuovo gruppo di sicurezza inOwner
o modificandone uno esistente. -
Scegli Endpoints, quindi crea nuovi endpoint per il database dell'ambiente e il server Web (se in modalità privata) utilizzando i nomi dei servizi endpoint dei passaggi precedenti. Scegli l'Amazon condivisoVPC, le sottoreti che hai usato per l'ambiente e il gruppo di sicurezza dell'ambiente.
In caso di successo, l'ambiente cambierà da zero PENDING
aCREATING
, poi finalmente a. AVAILABLE
Quando lo èAVAILABLE
, puoi accedere alla console Apache Airflow.
VPCRisoluzione dei problemi Amazon condivisi
Utilizza il seguente riferimento per risolvere i problemi riscontrati durante la creazione di ambienti in un Amazon condivisoVPC.
- Ambiente in
PENDING
stato di «CREATE_FAILED
After» -
-
Verifica che
Owner
stia condividendo le sottoreti conParticipant
using. AWS Resource Access Manager -
Verifica che gli VPC endpoint Amazon per il database e il server Web siano creati nelle stesse sottoreti associate all'ambiente.
-
Verifica che il gruppo di sicurezza utilizzato con i tuoi endpoint consenta il traffico proveniente dai gruppi di sicurezza utilizzati per l'ambiente. L'
Owner
account crea regole che fanno riferimento al gruppo di sicurezzaParticipant
come
:.account-number
/security-group-id
Tipo Protocollo Tipo di origine Origine Tutto il traffico Tutti Tutti 123456789012
/sg-0909e8e81919
Per ulteriori informazioni, consulta Responsabilità e autorizzazioni per proprietari e partecipanti
-
- Ambiente bloccato nello
PENDING
stato -
Verifica lo stato di ogni VPC endpoint per assicurarti che lo sia
Available
. Se configuri un ambiente con un server web privato, devi anche creare un endpoint per il server web. Se l'ambiente è bloccatoPENDING
, ciò potrebbe indicare che manca l'endpoint del server Web privato. - Errore ricevuto
The Vpc Endpoint Service '
vpce-service-name
' does not exist -
Se visualizzi il seguente errore, verifica che l'account che crea gli endpoint sia condiviso VPC nell'
Owner
account proprietario:ClientError: An error occurred (InvalidServiceName) when calling the CreateVpcEndpoint operation: The Vpc Endpoint Service '
vpce-service-name
' does not exist