Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gérer vos propres points de terminaison Amazon VPC sur Amazon MWAA
Amazon MWAA utilise les points de terminaison Amazon VPC pour intégrer les différents AWS services nécessaires à la configuration d'un environnement Apache Airflow. La gestion de vos propres points de terminaison comprend deux cas d’utilisation principaux :
-
Cela signifie que vous pouvez créer des environnements Apache Airflow dans un Amazon VPC partagé lorsque vous utilisez un AWS Organizations
pour gérer plusieurs ressources Comptes AWS et les partager. -
Il vous permet d'utiliser des politiques d'accès plus restrictives en limitant vos autorisations aux ressources spécifiques qui utilisent vos terminaux.
Si vous choisissez de gérer vos propres points de terminaison VPC, vous êtes responsable de la création de vos propres points de terminaison pour l'environnement, la base de données RDS pour PostgreSQL et pour le serveur Web de l'environnement.
Pour plus d'informations sur la manière dont Amazon MWAA déploie Apache Airflow dans le cloud, consultez le schéma d'architecture Amazon MWAA.
Important
Amazon MWAA ne valide pas la sélection du type d'adresse IP (AddressType) pour les terminaux gérés par le client. Assurez-vous donc de le spécifier correctement AddressType (les options valides sont IPv4 ou IPv6).
Création d'un environnement dans un Amazon VPC partagé
Si vous en gérez plusieurs Comptes AWS qui partagent des ressources, vous pouvez utiliser des points de terminaison VPC gérés par le client avec Amazon MWAA pour partager les ressources de l'environnement avec un autre compte de votre organisation. AWS Organizations
Lorsque vous configurez un accès VPC partagé, le compte propriétaire du principal Amazon VPC (propriétaire) partage les deux sous-réseaux privés requis par Amazon MWAA avec d'autres comptes (participants) appartenant à la même organisation. Les comptes participants qui partagent ces sous-réseaux peuvent afficher, créer, modifier et supprimer des environnements dans l'Amazon VPC partagé.
Supposons que vous ayez un compteOwner, qui fait office de Root compte dans l'organisation et possède les ressources Amazon VPC, et un compte de participantParticipant, membre de la même organisation. Lorsque vous Participant créez un nouvel Amazon MWAA dans Amazon VPC avec lequel il le partageOwner, Amazon MWAA crée d'abord les ressources du service VPC, puis passe à un PENDING état pendant 72 heures maximum.
Une fois que l'état de l'environnement passe de CREATING àPENDING, un responsable agissant pour le compte de Owner crée les points de terminaison requis. Pour ce faire, Amazon MWAA répertorie la base de données et le point de terminaison du serveur Web dans la console Amazon MWAA. Vous pouvez également appeler l'action d'GetEnvironmentAPI pour obtenir les points de terminaison du service.
Note
Si l'Amazon VPC que vous utilisez pour partager des ressources est un Amazon VPC privé, vous devez tout de même suivre les étapes décrites dans. Gestion de l'accès aux points de terminaison Amazon VPC spécifiques à un service sur Amazon MWAA La rubrique couvre la configuration d'un ensemble différent de points de terminaison Amazon VPC liés à d'autres AWS services qui AWS s'intègrent, tels qu'Amazon ECR, Amazon ECS et Amazon SQS. Ces services sont essentiels pour exploiter et gérer votre environnement Apache Airflow dans le cloud.
Conditions préalables
Avant de créer un environnement Amazon MWAA dans un VPC partagé, vous avez besoin des ressources suivantes :
-
Et Compte AWS,
Ownerà utiliser comme compte propriétaire de l'Amazon VPC. -
Une unité d'AWS Organizations
organisation, MyOrganizationcréée en tant que racine. -
Un second Compte AWS,
Participantci-dessous,MyOrganizationpour servir le compte du participant qui crée le nouvel environnement.
En outre, nous vous recommandons de vous familiariser avec les responsabilités et les autorisations des propriétaires et des participants lors du partage de ressources dans Amazon VPC.
Créez l'Amazon VPC
Tout d'abord, créez un nouveau Amazon VPC que les comptes du propriétaire et du participant partageront :
-
Connectez-vous à la console à l'aide de
Owner, puis CloudFormation ouvrez-la. Utilisez le modèle suivant pour créer une pile. Cette pile fournit un certain nombre de ressources réseau, notamment un Amazon VPC et les sous-réseaux que les deux comptes partageront dans ce scénario.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 -
Une fois les nouvelles ressources Amazon VPC provisionnées, accédez à la AWS Resource Access Manager console, puis choisissez Créer un partage de ressources.
-
Choisissez les sous-réseaux que vous avez créés lors de la première étape dans la liste des sous-réseaux disponibles avec lesquels vous pouvez partager.
Participant
Création de l’environnement
Procédez comme suit pour créer un environnement Amazon MWAA avec des points de terminaison Amazon VPC gérés par le client.
-
Connectez-vous à l'aide
Participantde la console Amazon MWAA et ouvrez-la. Effectuez la première étape : spécifiez les détails pour spécifier un compartiment Amazon S3, un dossier DAG et des dépendances pour votre nouvel environnement. Pour plus d'informations, consultez la section Mise en route. -
Sur la page Configurer les paramètres avancés, sous Mise en réseau, choisissez les sous-réseaux du Amazon VPC partagé.
-
Sous Gestion des terminaux, choisissez CLIENT dans la liste déroulante.
-
Conservez la valeur par défaut pour les autres options de la page, puis choisissez Créer un environnement sur la page Réviser et créer.
L'environnement commence dans un CREATING état, puis passe àPENDING. Lorsque l'environnement le permetPENDING, notez le nom du service de point de terminaison de base de données et le nom du service de point de terminaison du serveur Web (si vous configurez un serveur Web privé) à l'aide de la console.
Lorsque vous créez un nouvel environnement à l'aide de la console Amazon MWAA. Amazon MWAA crée un nouveau groupe de sécurité avec les règles entrantes et sortantes requises. Notez l’ID du groupe de sécurité.
Dans la section suivante, Owner nous utiliserons les points de terminaison de service et l'ID du groupe de sécurité pour créer de nouveaux points de terminaison Amazon VPC dans l'Amazon VPC partagé.
Création des points de terminaison Amazon VPC
Procédez comme suit pour créer les points de terminaison Amazon VPC requis pour votre environnement.
-
Connectez-vous à l' Console de gestion AWS utilisation
Owner, puis ouvrez https://console.aws.amazon.com/vpc/. -
Choisissez Groupes de sécurité dans le panneau de navigation de gauche, puis créez un nouveau groupe de sécurité dans l'Amazon VPC partagé en utilisant les règles entrantes et sortantes suivantes :
Type Protocole Source type (Type de source) Source Entrant
Tout le trafic Tous Tous Votre groupe de sécurité environnementale
Sortant
Tout le trafic Tous Tous 0.0.0.0/0Avertissement
Le
Ownercompte doit configurer un groupe de sécurité dans leOwnercompte pour autoriser le trafic du nouvel environnement vers le VPC Amazon partagé. Vous pouvez le faire en créant un nouveau groupe de sécurité dansOwnerou en modifiant un groupe existant. -
Choisissez Points de terminaison, puis Créer un point de terminaison. Dans Paramètres des terminaux, sélectionnez les services des terminaux qui utilisent des NLB et des GWLB. Dans le champ Nom du service, entrez le nom du service de point de terminaison de base de données que vous avez noté sur la console Amazon MWAA, puis choisissez Vérifier le service. Choisissez l'Amazon VPC partagé, sélectionnez les sous-réseaux que vous avez utilisés pour l'environnement et sélectionnez le groupe de sécurité que vous avez créé à l'étape précédente. Choisissez Créer un point de terminaison. Si votre environnement utilise un serveur Web privé, répétez ces étapes en utilisant le nom du service de point de terminaison du serveur Web.
Note
Si vous créez des points de terminaison VPC à l'aide de l'infrastructure en tant que code, définissez le type de point de terminaison sur Interface explicitement. Le type de point de terminaison par défaut dans Terraform AWS CloudFormation et dans Terraform estGateway, ce qui n'est pas compatible avec les services de point de terminaison Amazon MWAA.
En cas de succès, l'environnement passera de PENDING retour àCREATING, puis finalement àAVAILABLE. Lorsque c'est le casAVAILABLE, vous pouvez vous connecter à la console Apache Airflow.
Résolution des problèmes liés au partage d'Amazon VPC
Utilisez la référence suivante pour résoudre les problèmes que vous rencontrez lors de la création d'environnements dans un Amazon VPC partagé.
- Environnement en
PENDINGétatCREATE_FAILEDd'avancement -
-
Vérifiez qu'
Owneril partage les sous-réseaux avecParticipantusing AWS Resource Access Manager. -
Vérifiez que les points de terminaison Amazon VPC de la base de données et du serveur Web sont créés dans les mêmes sous-réseaux associés à l'environnement.
-
Vérifiez que le groupe de sécurité utilisé avec vos terminaux autorise le trafic provenant des groupes de sécurité utilisés pour l'environnement. Le
Ownercompte crée des règles qui font référence au groupe de sécurité enParticipanttant que:.123456789012/security-group-idType Protocole Source type (Type de source) Source Tout le trafic Tous Tous 123456789012/sg-0909e8e81919Pour plus d'informations, reportez-vous à la section Responsabilités et autorisations des propriétaires et des participants
-
- Environnement bloqué
PENDING -
Vérifiez l'état de chaque point de terminaison VPC pour vous assurer qu'il l'est
Available. Si vous configurez un environnement avec un serveur Web privé, vous devez également créer un point de terminaison pour le serveur Web. Si l'environnement est bloquéPENDING, cela peut indiquer que le point de terminaison du serveur Web privé est absent. The Vpc Endpoint Service 'Erreur reçuevpce-service-name' does not exist-
Si vous faites référence à l'erreur suivante, vérifiez que le compte qui crée les points de terminaison est le
Ownercompte propriétaire du VPC partagé :ClientError: An error occurred (InvalidServiceName) when calling the CreateVpcEndpoint operation: The Vpc Endpoint Service '
vpce-service-name' does not exist