

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.

# Création du réseau VPC
<a name="vpc-create"></a>

Amazon Managed Workflows pour Apache Airflow nécessite un Amazon VPC et des composants réseau spécifiques pour prendre en charge un environnement. Ce guide décrit les différentes options permettant de créer le réseau Amazon VPC pour un environnement Amazon Managed Workflows for Apache Airflow.

**Note**  
Apache Airflow fonctionne mieux dans un environnement réseau à faible latence. Si vous utilisez un Amazon VPC existant qui achemine le trafic vers une autre région ou vers un environnement sur site, nous vous recommandons d'ajouter des points de AWS PrivateLink terminaison pour Amazon SQS, CloudWatch Amazon S3 et. AWS KMS Pour plus d'informations sur la configuration AWS PrivateLink pour Amazon MWAA, consultez [Création d'un réseau Amazon VPC sans](#vpc-create-template-private-only) accès à Internet.

**Contents**
+ [Prérequis](#vpc-create-prereqs)
+ [Avant de commencer](#vpc-create-how-networking)
+ [Options pour créer le réseau Amazon VPC](#vpc-create-options)
  + [Première option : créer le réseau VPC sur la console Amazon MWAA](#vpc-create-mwaa-console)
  + [Deuxième option : créer un réseau Amazon VPC *avec* accès à Internet](#vpc-create-template-private-or-public)
  + [Troisième option : créer un réseau Amazon VPC *sans* accès à Internet](#vpc-create-template-private-only)
+ [Quelle est la prochaine étape ?](#create-vpc-next-up)

## Prérequis
<a name="vpc-create-prereqs"></a>

The AWS Command Line Interface (AWS CLI) est un outil open source que vous pouvez utiliser pour interagir avec les AWS services à l'aide de commandes dans votre interface de ligne de commande. Pour effectuer les étapes indiquées sur cette page, vous avez besoin des éléments suivants :
+ [AWS CLI — Installez la version 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
+ [AWS CLI — Configuration rapide avec `aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

## Avant de commencer
<a name="vpc-create-how-networking"></a>
+ Le [réseau VPC](#vpc-create) que vous spécifiez pour votre environnement ne peut pas être modifié une fois l'environnement créé.
+ Vous pouvez utiliser un routage privé ou public pour votre Amazon VPC et votre serveur Web Apache Airflow. Pour accéder à la liste des options, reportez-vous à[Exemples de cas d'utilisation pour un Amazon VPC et le mode d'accès Apache Airflow](networking-about.md#networking-about-network-usecase).

## Options pour créer le réseau Amazon VPC
<a name="vpc-create-options"></a>

La section suivante décrit les options disponibles pour créer le réseau Amazon VPC pour un environnement.

**Note**  
Amazon MWAA ne prend pas en charge l'utilisation de `use1-az3` la zone de disponibilité (AZ) dans la région USA Est (Virginie du Nord). Lorsque vous créez le VPC pour Amazon MWAA dans la région USA Est (Virginie du Nord), vous devez l'attribuer explicitement `AvailabilityZone` dans le modèle CloudFormation (CFN). Le nom de zone de disponibilité attribué ne doit pas être mappé à`use1-az3`. Vous pouvez récupérer le mappage détaillé des noms d'AZ avec leur AZ correspondant IDs en exécutant la commande suivante :  

```
aws ec2 describe-availability-zones --region us-east-1
```

### Première option : créer le réseau VPC sur la console Amazon MWAA
<a name="vpc-create-mwaa-console"></a>

La section suivante explique comment créer un réseau Amazon VPC sur la console Amazon MWAA. Cette option utilise[Routage public sur Internet](networking-about.md#networking-about-overview-public). Il peut être utilisé pour un serveur Web Apache Airflow avec les modes d'accès **réseau privé ou réseau** **public**.

L'image suivante montre où se trouve le bouton **Create MWAA VPC sur** la console Amazon MWAA.

![\[Cette image montre où vous pouvez trouver le VPC Create MWAA sur la console Amazon MWAA.\]](http://docs.aws.amazon.com/fr_fr/mwaa/latest/userguide/images/mwaa-console-create-vpc.png)


### Deuxième option : créer un réseau Amazon VPC *avec* accès à Internet
<a name="vpc-create-template-private-or-public"></a>

Le CloudFormation modèle suivant crée un réseau Amazon VPC avec un accès Internet par défaut. Région AWS Cette option utilise[Routage public sur Internet](networking-about.md#networking-about-overview-public). Ce modèle peut être utilisé pour un serveur Web Apache Airflow avec les modes d'accès **réseau privé ou réseau** **public**.

1. Copiez le contenu du modèle suivant et enregistrez-le localement sous`cfn-vpc-public-private.yaml`. Vous pouvez également [télécharger le modèle](./samples/cfn-vpc-public-private.zip).

   ```
   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. Dans votre invite de commande, accédez au répertoire dans lequel `cfn-vpc-public-private.yaml` est stocké. Par exemple :

   ```
   cd mwaaproject
   ```

1. Utilisez la [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html)commande pour créer la pile à l'aide du AWS CLI.

   ```
   aws cloudformation create-stack --stack-name mwaa-environment --template-body file://cfn-vpc-public-private.yaml
   ```
**Note**  
La création de l'infrastructure Amazon VPC prend environ 30 minutes.

### Troisième option : créer un réseau Amazon VPC *sans* accès à Internet
<a name="vpc-create-template-private-only"></a>

Le CloudFormation modèle suivant crée un réseau Amazon VPC *sans accès à Internet par* défaut. Région AWS

Cette option utilise[Routage privé sans accès à Internet](networking-about.md#networking-about-overview-private). Ce modèle peut être utilisé pour un serveur Web Apache Airflow avec le mode d'accès **réseau privé uniquement**. Il crée les [points de terminaison VPC requis pour les AWS services utilisés par](vpc-vpe-create-access.md#vpc-vpe-create-view-endpoints-attach-services) un environnement.

1. Copiez le contenu du modèle suivant et enregistrez-le localement sous`cfn-vpc-private.yaml`. Vous pouvez également [télécharger le modèle](./samples/cfn-vpc-private-no-ops.zip).

   ```
   AWSTemplateFormatVersion: "2010-09-09"
        
   Parameters:
      VpcCIDR:
        Description: The IP range (CIDR notation) for this VPC
        Type: String
        Default: 10.192.0.0/16
        
      PrivateSubnet1CIDR:
        Description: The IP range (CIDR notation) for the private subnet in the first Availability Zone
        Type: String
        Default: 10.192.10.0/24
        
      PrivateSubnet2CIDR:
        Description: The IP range (CIDR notation) for the private subnet in the second Availability Zone
        Type: String
        Default: 10.192.11.0/24
        
   Resources:
      VPC:
        Type: AWS::EC2::VPC
        Properties:
          CidrBlock: !Ref VpcCIDR
          EnableDnsSupport: true
          EnableDnsHostnames: true
          Tags:
           - Key: Name
             Value: !Ref AWS::StackName
        
      RouteTable:
        Type: AWS::EC2::RouteTable
        Properties:
          VpcId: !Ref VPC
          Tags:
           - Key: Name
             Value: !Sub "${AWS::StackName}-route-table"
        
      PrivateSubnet1:
        Type: AWS::EC2::Subnet
        Properties:
          VpcId: !Ref VPC
          AvailabilityZone: !Select [ 0, !GetAZs  '' ]
          CidrBlock: !Ref PrivateSubnet1CIDR
          MapPublicIpOnLaunch: false
          Tags:
           - Key: Name
             Value: !Sub "${AWS::StackName} 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 "${AWS::StackName} Private Subnet (AZ2)"
        
      PrivateSubnet1RouteTableAssociation:
        Type: AWS::EC2::SubnetRouteTableAssociation
        Properties:
          RouteTableId: !Ref RouteTable
          SubnetId: !Ref PrivateSubnet1
        
      PrivateSubnet2RouteTableAssociation:
        Type: AWS::EC2::SubnetRouteTableAssociation
        Properties:
          RouteTableId: !Ref RouteTable
          SubnetId: !Ref PrivateSubnet2
        
      S3VpcEndoint:
        Type: AWS::EC2::VPCEndpoint
        Properties:
          ServiceName: !Sub "com.amazonaws.${AWS::Region}.s3"
          VpcEndpointType: Gateway
          VpcId: !Ref VPC
          RouteTableIds:
           - !Ref RouteTable
        
      SecurityGroup:
        Type: AWS::EC2::SecurityGroup
        Properties:
          VpcId: !Ref VPC
          GroupDescription: Security Group for Amazon MWAA Environments to access VPC endpoints
          GroupName: !Sub "${AWS::StackName}-mwaa-vpc-endpoints"
      
      SecurityGroupIngress:
        Type: AWS::EC2::SecurityGroupIngress
        Properties:
          GroupId: !Ref SecurityGroup
          IpProtocol: "-1"
          SourceSecurityGroupId: !Ref SecurityGroup
      
      SqsVpcEndoint:
        Type: AWS::EC2::VPCEndpoint
        Properties:
          ServiceName: !Sub "com.amazonaws.${AWS::Region}.sqs"
          VpcEndpointType: Interface
          VpcId: !Ref VPC
          PrivateDnsEnabled: true
          SubnetIds:
           - !Ref PrivateSubnet1
           - !Ref PrivateSubnet2
          SecurityGroupIds:
           - !Ref SecurityGroup
        
      CloudWatchLogsVpcEndoint:
        Type: AWS::EC2::VPCEndpoint
        Properties:
          ServiceName: !Sub "com.amazonaws.${AWS::Region}.logs"
          VpcEndpointType: Interface
          VpcId: !Ref VPC
          PrivateDnsEnabled: true
          SubnetIds:
           - !Ref PrivateSubnet1
           - !Ref PrivateSubnet2
          SecurityGroupIds:
           - !Ref SecurityGroup
        
      CloudWatchMonitoringVpcEndoint:
        Type: AWS::EC2::VPCEndpoint
        Properties:
          ServiceName: !Sub "com.amazonaws.${AWS::Region}.monitoring"
          VpcEndpointType: Interface
          VpcId: !Ref VPC
          PrivateDnsEnabled: true
          SubnetIds:
           - !Ref PrivateSubnet1
           - !Ref PrivateSubnet2
          SecurityGroupIds:
           - !Ref SecurityGroup
        
      KmsVpcEndoint:
        Type: AWS::EC2::VPCEndpoint
        Properties:
          ServiceName: !Sub "com.amazonaws.${AWS::Region}.kms"
          VpcEndpointType: Interface
          VpcId: !Ref VPC
          PrivateDnsEnabled: true
          SubnetIds:
           - !Ref PrivateSubnet1
           - !Ref PrivateSubnet2
          SecurityGroupIds:
           - !Ref SecurityGroup
   
   
   Outputs:
      VPC:
        Description: A reference to the created VPC
        Value: !Ref VPC
        
      MwaaSecurityGroupId:
        Description: Associates the Security Group to the environment to allow access to the VPC endpoints 
        Value: !Ref SecurityGroup
        
      PrivateSubnets:
        Description: A list of the private subnets
        Value: !Join [ ",", [ !Ref PrivateSubnet1, !Ref PrivateSubnet2 ]]
        
      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
   ```

1. Dans votre invite de commande, accédez au répertoire dans lequel `cfn-vpc-private.yml` est stocké. Par exemple :

   ```
   cd mwaaproject
   ```

1. Utilisez la [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html)commande pour créer la pile à l'aide du AWS CLI.

   ```
   aws cloudformation create-stack --stack-name mwaa-private-environment --template-body file://cfn-vpc-private.yml
   ```
**Note**  
La création de l'infrastructure Amazon VPC prend environ 30 minutes.

1. Vous devez créer un mécanisme pour accéder à ces points de terminaison VPC depuis votre ordinateur. Pour en savoir plus, reportez-vous à[Gestion de l'accès aux points de terminaison Amazon VPC spécifiques à un service sur Amazon MWAA](vpc-vpe-access.md).

**Note**  
Vous pouvez restreindre davantage l'accès sortant dans le CIDR de votre groupe de sécurité Amazon MWAA. Par exemple, vous pouvez vous limiter à elle-même en ajoutant une règle d'autoréférencement sortant, la liste de [préfixes pour Amazon](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-gateway.html) S3 et le CIDR de votre Amazon VPC.

## Quelle est la prochaine étape ?
<a name="create-vpc-next-up"></a>
+ Découvrez comment créer un environnement Amazon MWAA dans[Création d'un environnement Amazon MWAA](create-environment.md).
+ Découvrez comment créer un tunnel VPN entre votre ordinateur et votre Amazon VPC avec un routage privé intégré. [Tutoriel : Configuration de l'accès au réseau privé à l'aide d'un AWS Client VPN](tutorials-private-network-vpn-client.md)