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 VPC points de terminaison Amazon sur Amazon MWAA
Amazon MWAA utilise les VPC points de terminaison Amazon pour intégrer les différents AWS services nécessaires à la configuration d'un environnement Apache Airflow. La gestion de vos propres terminaux comporte deux principaux cas d'utilisation :
-
Cela signifie que vous pouvez créer des environnements Apache Airflow dans un Amazon partagé VPC lorsque vous utilisez un AWS Organizations
pour gérer plusieurs AWS comptes et partager des ressources. -
Il vous permet d'utiliser des politiques d'accès plus restrictives en limitant vos autorisations aux ressources spécifiques qui utilisent vos points de terminaison.
Si vous choisissez de gérer vos propres VPC points de terminaison, vous êtes responsable de créer vos propres points de terminaison pour l'environnement de la SQL base de données Postgre et RDS 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'MWAAarchitecture Amazon.
Création d'un environnement dans un Amazon partagé VPC
Si vous gérez plusieurs AWS comptes partageant des ressources, vous pouvez utiliser des VPC points de terminaison 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 l'VPCaccès partagé, le compte propriétaire de l'Amazon principal 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 VPC ressources Amazon, et un compte de participantParticipant
, membre de la même organisation. Lors de la Participant
création d'un nouvel Amazon MWAA dans Amazon avec lequel VPC il partageOwner
, Amazon MWAA crée d'abord les VPC ressources du service, puis entre dans un PENDING
état pendant 72 heures au maximum.
Une fois que l'état de l'environnement passe de CREATING
àPENDING
, un directeur 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 MWAA console Amazon. Vous pouvez également lancer l'GetEnvironment
APIaction pour obtenir les points de terminaison du service.
Note
Si l'Amazon VPC que vous utilisez pour partager des ressources est un Amazon privéVPC, vous devez tout de même suivre les étapes décrites dansGestion 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 VPC points de terminaison Amazon liés à d'autres AWS services intégrés, tels qu'Amazon ECRECS, Amazon et AmazonSQS. AWS Ces services sont essentiels au fonctionnement et à la gestion de votre environnement Apache Airflow dans le cloud.
Prérequis
Avant de créer un MWAA environnement Amazon dans un environnement partagéVPC, vous avez besoin des ressources suivantes :
-
Un AWS compte,
Owner
à utiliser comme compte propriétaire de l'AmazonVPC. -
Une unité AWS Organizations
organisationnelle, MyOrganization
créée en tant que racine. -
Un deuxième AWS compte
Participant
, sous lequelMyOrganization
sera utilisé 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 lorsque vous partagez des ressources sur AmazonVPC.
Créez l'Amazon VPC
Tout d'abord, créez un nouvel Amazon VPC que les comptes propriétaire et participant partageront :
-
Connectez-vous à la console en utilisant
Owner
, puis AWS CloudFormation ouvrez-la. Utilisez le modèle suivant pour créer une pile. Cette pile fournit un certain nombre de ressources réseau, y compris un AmazonVPC, 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 VPC ressources Amazon mises en service, accédez à la AWS Resource Access Manager console, puis choisissez Create resource share.
-
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 MWAA environnement Amazon avec des points de terminaison Amazon VPC gérés par le client.
-
Connectez-vous à l'aide
Participant
de la MWAA console Amazon et ouvrez-la. Terminez la première étape : spécifiez les détails pour spécifier un compartiment Amazon S3, un DAG dossier et les 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 de l'Amazon VPC partagé.
-
Sous Gestion des terminaux, CUSTOMERchoisissez 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 l'estPENDING
, 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 MWAA console Amazon. Amazon MWAA crée un nouveau groupe de sécurité avec les règles d'entrée et de sortie requises. Notez l’ID du groupe de sécurité.
Dans la section suivante, Owner
nous utiliserons les points de terminaison du service et l'ID du groupe de sécurité pour créer de nouveaux VPC points de terminaison Amazon dans l'Amazon partagé. VPC
Création des points de VPC terminaison Amazon
Procédez comme suit pour créer les VPC points de terminaison Amazon requis pour votre environnement.
-
Connectez-vous à l' AWS Management Console utilisateur
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 partagé VPC en appliquant les règles entrantes et sortantes suivantes :
Type Protocole Source type (Type de source) Source Entrant
Tout le trafic Tous Tous Le groupe de sécurité de votre environnement
Sortant
Tout le trafic Tous Tous 0.0.0.0/0
Avertissement
Le
Owner
compte doit configurer un groupe de sécurité dans leOwner
compte pour autoriser le trafic du nouvel environnement vers l'Amazon partagéVPC. Vous pouvez le faire en créant un nouveau groupe de sécurité dansOwner
ou en modifiant un groupe existant. -
Choisissez Endpoints, puis créez de nouveaux points de terminaison pour la base de données d'environnement et le serveur Web (en mode privé) en utilisant les noms de service des points de terminaison indiqués dans les étapes précédentes. Choisissez l'Amazon partagéVPC, les sous-réseaux que vous avez utilisés pour l'environnement et le groupe de sécurité de l'environnement.
En cas de succès, l'environnement passera de PENDING
retour àCREATING
, puis enfin àAVAILABLE
. Lorsque c'est le casAVAILABLE
, vous pouvez vous connecter à la console Apache Airflow.
VPCDépannage partagé sur Amazon
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 partagéVPC.
- État de l'environnement dans
CREATE_FAILED
l'PENDING
après-statut -
-
Vérifiez
Owner
que les sous-réseaux sont partagés enParticipant
utilisant AWS Resource Access Manager. -
Vérifiez que les VPC points de terminaison Amazon pour la base de données et le 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 points de terminaison autorise le trafic provenant des groupes de sécurité utilisés pour l'environnement. Le
Owner
compte crée des règles qui font référence au groupe de sécuritéParticipant
sous la forme
:.account-number
/security-group-id
Type Protocole Source type (Type de source) Source Tout le trafic Tous Tous 123456789012
/sg-0909e8e81919
Pour plus d'informations, voir Responsabilités et autorisations pour les propriétaires et les participants
-
PENDING
État bloqué de l'environnement-
Vérifiez l'état de chaque VPC point de terminaison 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 manquant. The Vpc Endpoint Service '
Erreur reçuevpce-service-name
' does not exist-
Si le message d'erreur suivant s'affiche, vérifiez que le compte qui crée les points de terminaison se trouve dans le
Owner
compte propriétaire du partage VPC :ClientError: An error occurred (InvalidServiceName) when calling the CreateVpcEndpoint operation: The Vpc Endpoint Service '
vpce-service-name
' does not exist