

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
<a name="vpc-endpoint-management"></a>

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 :

1. Cela signifie que vous pouvez créer des environnements Apache Airflow dans un Amazon VPC partagé lorsque vous utilisez un [AWS Organizations](https://aws.amazon.com/organizations/) pour gérer plusieurs ressources Comptes AWS et les partager.

1. 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. ](what-is-mwaa.md#architecture-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é
<a name="configure-shared-vpc"></a>

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](https://aws.amazon.com/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 compte`Owner`, qui fait office de `Root` compte dans l'organisation et possède les ressources Amazon VPC, et un compte de participant`Participant`, membre de la même organisation. Lorsque vous `Participant` créez un nouvel Amazon MWAA dans Amazon VPC avec lequel il le partage`Owner`, Amazon MWAA crée d'abord les ressources du service VPC, puis passe à un [`PENDING`](https://docs.aws.amazon.com/mwaa/latest/API/API_Environment.html#mwaa-Type-Environment-Status) é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'[`GetEnvironment`]()API 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](vpc-vpe-access.md) 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
<a name="configure-shared-vpc-prerequisites"></a>

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](https://aws.amazon.com/organizations/)organisation, `MyOrganization` créée en tant que * racine*.
+ Un second Compte AWS, `Participant` ci-dessous, `MyOrganization` pour 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 ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations) lors du partage de ressources dans Amazon VPC.

### Créez l'Amazon VPC
<a name="configure-shared-vpc-create-vpc"></a>

Tout d'abord, créez un nouveau Amazon VPC que les comptes du propriétaire et du participant partageront :

1. 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
   ```

1. 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. **

1. 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
<a name="configure-shared-vpc-create-mwaa"></a>

Procédez comme suit pour créer un environnement Amazon MWAA avec des points de terminaison Amazon VPC gérés par le client.

1. Connectez-vous à l'aide `Participant` de 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](create-environment.md#create-environment-start-details).

1. Sur la ** page ** Configurer les paramètres avancés, sous ** Mise en réseau**, choisissez les sous-réseaux du Amazon VPC partagé.

1. Sous Gestion des ** terminaux, ** choisissez ** CLIENT ** dans la liste déroulante.

1. 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 permet`PENDING`, 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
<a name="configure-shared-vpc-create-endpoints"></a>

Procédez comme suit pour créer les points de terminaison Amazon VPC requis pour votre environnement.

1. Connectez-vous à l' Console de gestion AWS utilisation`Owner`, puis ouvrez [ https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. 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 :


<table>
<thead>
  <tr><th></th><th>Type</th><th> Protocole</th><th>Source type (Type de source)</th><th>Source</th></tr>
</thead>
<tbody>
  <tr><td><b>Entrant</b></td><td>Tout le trafic</td><td>Tous</td><td>Tous</td><td>Votre groupe de sécurité environnementale</td></tr>
  <tr><td><b>Sortant</b></td><td>Tout le trafic</td><td>Tous</td><td>Tous</td><td><code>0.0.0.0/0</code></td></tr>
</tbody>
</table>

**Avertissement**  
Le `Owner` compte doit configurer un groupe de sécurité dans le `Owner` compte 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é dans `Owner` ou en modifiant un groupe existant.

1. 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 est`Gateway`, 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 cas`AVAILABLE`, vous pouvez vous connecter à la console Apache Airflow.

### Résolution des problèmes liés au partage d'Amazon VPC
<a name="configure-shared-vpc-troubleshooting"></a>

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` état `CREATE_FAILED` d'avancement**  
+ Vérifiez qu'`Owner`il partage les sous-réseaux avec `Participant` using [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html).
+ 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 `Owner` compte crée des règles qui font référence au groupe de sécurité en `Participant` tant que `{{123456789012}}/{{security-group-id}}` :.


<table>
<thead>
  <tr><th>Type</th><th> Protocole</th><th>Source type (Type de source)</th><th>Source</th></tr>
</thead>
<tbody>
  <tr><td>Tout le trafic</td><td>Tous</td><td>Tous</td><td>{{123456789012}}/{{sg-0909e8e81919}}</td></tr>
</tbody>
</table>


  Pour plus d'informations, reportez-vous à la section [ Responsabilités et autorisations des propriétaires et des participants ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations)

**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 '{{vpce-service-name}}' does not exist`Erreur reçue**  
Si vous faites référence à l'erreur suivante, vérifiez que le compte qui crée les points de terminaison est le `Owner` compte 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
```