

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énérez une adresse IP sortante statique à l'aide d'une fonction Lambda, d'Amazon VPC et d'une architecture sans serveur
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture"></a>

*Thomas Scott, Amazon Web Services*

## Résumé
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-summary"></a>

Ce modèle décrit comment générer une adresse IP sortante statique dans le cloud Amazon Web Services (AWS) à l'aide d'une architecture sans serveur. Votre organisation peut bénéficier de cette approche si elle souhaite envoyer des fichiers à une entité commerciale distincte en utilisant le protocole SFTP (Secure File Transfer Protocol). Cela signifie que l'entité commerciale doit avoir accès à une adresse IP qui permet aux fichiers de passer par son pare-feu. 

L'approche du modèle vous aide à créer une fonction AWS Lambda qui utilise une [adresse IP élastique comme adresse IP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) sortante. En suivant les étapes de ce modèle, vous pouvez créer une fonction Lambda et un cloud privé virtuel (VPC) qui achemine le trafic sortant via une passerelle Internet dotée d'une adresse IP statique. Pour utiliser l'adresse IP statique, vous devez associer la fonction Lambda au VPC et à ses sous-réseaux. 

## Conditions préalables et limitations
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif. 
+ Autorisations AWS Identity and Access Management (IAM) pour créer et déployer une fonction Lambda, ainsi que pour créer un VPC et ses sous-réseaux. Pour plus d'informations à ce sujet, consultez la section [Rôle d'exécution et autorisations utilisateur](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-permissions) dans la documentation AWS Lambda.
+ Si vous envisagez d'utiliser l'infrastructure en tant que code (IaC) pour implémenter l'approche de ce modèle, vous avez besoin d'un environnement de développement intégré (IDE) tel qu'AWS Cloud9. Pour plus d'informations à ce sujet, consultez [Qu'est-ce qu'AWS Cloud9 ?](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) dans la documentation AWS Cloud9.

## Architecture
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-architecture"></a>

Le schéma suivant montre l'architecture sans serveur pour ce modèle.

![](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/eb1d0b05-df33-45ae-b27e-36090055b300/images/c15cc6da-ce4e-4ea0-9feb-de1c845d3ce8.png)


Le schéma suivant illustre le flux de travail suivant :

1. Le trafic sortant part`NAT gateway 1`. `Public subnet 1`

1. Le trafic sortant part`NAT gateway 2`. `Public subnet 2`

1. La fonction Lambda peut être exécutée dans ou. `Private subnet 1` `Private subnet 2`

1. `Private subnet 1`et `Private subnet 2` acheminez le trafic vers les passerelles NAT dans les sous-réseaux publics.

1. Les passerelles NAT envoient le trafic sortant vers la passerelle Internet à partir des sous-réseaux publics.

1. Les données sortantes sont transférées de la passerelle Internet vers le serveur externe.



**Pile technologique**
+ Lambda
+ Amazon Virtual Private Cloud (Amazon VPC)

 

**Automatisation et mise à l'échelle**

Vous pouvez garantir la haute disponibilité (HA) en utilisant deux sous-réseaux publics et deux sous-réseaux privés dans différentes zones de disponibilité. Même si une zone de disponibilité devient indisponible, la solution du modèle continue de fonctionner.

## Outils
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-tools"></a>
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda est un service de calcul qui prend en charge l'exécution de code sans provisionner ni gérer de serveurs. Lambda exécute le code uniquement lorsque cela est nécessaire et se met à l’échelle automatiquement, qu’il s’agisse de quelques requêtes par jour ou de milliers de requêtes par seconde. Vous payez uniquement le temps de calcul que vous utilisez. Vous n'exposez aucuns frais quand votre code n'est pas exécuté.
+ [Amazon VPC](https://docs.aws.amazon.com/vpc/) — Amazon Virtual Private Cloud (Amazon VPC) fournit une section logiquement isolée du cloud AWS dans laquelle vous pouvez lancer des ressources AWS dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble beaucoup à un réseau traditionnel que vous pourriez exécuter dans votre propre data center, et présente l'avantage d'utiliser l'infrastructure évolutive d'AWS.

## Épopées
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-epics"></a>

### Création d'un VPC
<a name="create-a-new-vpc"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un nouveau VPC. | Connectez-vous à l'AWS Management Console, ouvrez la console Amazon VPC, puis créez un VPC nommé `Lambda VPC` dont la plage d'adresses CIDR est `10.0.0.0/25`**** la plage d'adresses CIDR. IPv4 <br />Pour plus d'informations sur la création d'un VPC, consultez [Getting started with Amazon VPC dans la documentation Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html#getting-started-create-vpc).  | Administrateur AWS | 

### Création de deux sous-réseaux publics
<a name="create-two-public-subnets"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le premier sous-réseau public. | 1. **Sur la console Amazon VPC, choisissez **Subnets, puis Create Subnet**.** <br />2. Pour **Balise de nom**, saisissez `public-one`.<br />3. Pour **VPC**, choisissez `Lambda VPC`.<br />4. Choisissez une zone de disponibilité et enregistrez-la. <br />5. Pour le **bloc IPv4 CIDR**, entrez `10.0.0.0/28`**** puis choisissez **Create subnet**. | Administrateur AWS | 
| Créez le deuxième sous-réseau public. | 1. **Sur la console Amazon VPC, choisissez **Subnets, puis Create Subnet**.** <br />2. Pour **Balise de nom**, saisissez `public-two`.<br />3. Pour **VPC**, choisissez `Lambda VPC`.<br />4. Choisissez une zone de disponibilité et enregistrez-la. : vous ne pouvez pas utiliser la zone de disponibilité qui contient le `public-one` sous-réseau. <br />5. Pour le **bloc IPv4 CIDR**, entrez `10.0.0.16/28`**** puis choisissez **Create subnet**. | Administrateur AWS | 

### Création de deux sous-réseaux privés
<a name="create-two-private-subnets"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le premier sous-réseau privé. | 1. **Sur la console Amazon VPC, choisissez **Subnets, puis Create Subnet**.** <br />2. Pour **Balise de nom**, saisissez `private-one`.<br />3. Pour **VPC**, choisissez `Lambda VPC`.<br />4. Choisissez la zone de disponibilité qui contient le `public-one` sous-réseau que vous avez créé précédemment. <br />5. Pour le **bloc IPv4 CIDR**, entrez `10.0.0.32/28`**** puis choisissez **Create subnet**. | Administrateur AWS | 
| Créez le deuxième sous-réseau privé. | 1. **Sur la console Amazon VPC, choisissez **Subnets, puis Create Subnet**.** <br />2. Pour **Balise de nom**, saisissez `private-two`.<br />3. Pour **VPC**, choisissez `Lambda VPC`.<br />4. Choisissez la même zone de disponibilité qui contient le `public-two` sous-réseau que vous avez créé précédemment. <br />5. Pour le **bloc IPv4 CIDR**, entrez `10.0.0.64/28`**** puis choisissez **Create subnet**. | Administrateur AWS | 

### Créez deux adresses IP élastiques pour vos passerelles NAT
<a name="create-two-elastic-ip-addresses-for-your-nat-gateways"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
|  Créez la première adresse IP élastique. | 1. Sur la console Amazon VPC, choisissez **Elastic**, IPs puis choisissez **Allocate new address**. ****<br />2. Choisissez **Allocation** et enregistrez l'**ID d'allocation** pour votre adresse IP élastique nouvellement créée. ****Cette adresse IP élastique est utilisée pour votre première passerelle NAT.  | Administrateur AWS | 
| Créez la deuxième adresse IP élastique. | 1. Sur la console Amazon VPC, choisissez **Elastic**, IPs puis choisissez **Allocate new address**. ****<br />2. Choisissez **Allouer** et enregistrez l'**ID d'allocation** pour cette deuxième adresse IP élastique.Cette adresse IP élastique est utilisée pour votre deuxième passerelle NAT. | Administrateur AWS | 

### Création d'une passerelle Internet
<a name="create-an-internet-gateway"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créer une passerelle Internet | 1. Sur la console Amazon VPC, choisissez **Internet Gateways**, puis **Create** Internet Gateway.<br />2. Entrez le `Lambda internet gateway` nom, puis choisissez **Créer une passerelle Internet**. Assurez-vous d'enregistrer l'identifiant de la passerelle Internet.  | Administrateur AWS | 
| Connectez la passerelle Internet au VPC. | Sélectionnez la passerelle Internet que vous venez de créer, puis choisissez **Actions, Attach to VPC (Actions, Attacher au VPC)**. | Administrateur AWS | 

### Création de deux passerelles NAT
<a name="create-two-nat-gateways"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez la première passerelle NAT. | 1. Sur la console Amazon VPC, choisissez **NAT Gateways**, puis **Create** NAT Gateway.<br />2. Entrez `nat-one`**** comme nom de passerelle NAT. ****<br />3. Choisissez `public-one`**** comme sous-réseau dans lequel créer la passerelle NAT. ****<br />4. Pour le **type de connectivité**, choisissez **Public**.<br />5. Pour **l'ID d'allocation IP élastique**, choisissez la première adresse IP élastique que vous avez créée précédemment et associez-la à la passerelle NAT.<br />6. Sélectionnez **Créer une passerelle NAT**. | Administrateur AWS | 
| Créez la deuxième passerelle NAT. | 1. Sur la console Amazon VPC, choisissez **NAT Gateways**, puis **Create** NAT Gateway.<br />2. Entrez `nat-two`**** comme nom de passerelle NAT. ****<br />3. Choisissez `public-two`**** comme sous-réseau dans lequel créer la passerelle NAT.<br />4. Pour le **type de connectivité**, choisissez **Public**.<br />5. Pour **l'ID d'allocation IP élastique**, choisissez la deuxième adresse IP élastique que vous avez créée précédemment et associez-la à la passerelle NAT.<br />6. Sélectionnez **Créer une passerelle NAT**. | Administrateur AWS | 

### Créez des tables de routage pour vos sous-réseaux publics et privés
<a name="create-route-tables-for-your-public-and-private-subnets"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez la table de routage pour le sous-réseau public. | 1. Sur la console Amazon VPC, choisissez **Route Tables**, puis **Create route** table.<br />2. Entrez le `public-one-subnet`**** nom de la table de routage, puis choisissez **Créer une table de routage**.<br />3. Choisissez la table de `public-one-subnet` routage, choisissez **Modifier les itinéraires**, puis choisissez **Ajouter un itinéraire**.<br />4. Spécifiez `0.0.0.0`**** dans le champ **Destination**, puis choisissez l'ID de passerelle Internet dans la liste des **cibles**.<br />5. **Dans l'onglet **Associations de sous-réseaux**, choisissez **Modifier les associations de sous-réseaux**, choisissez le `public-one` sous-réseau**** avec la plage `10.0.0.0/28`**** CIDR, puis sélectionnez Enregistrer les associations.**<br />6. Choisissez **Save Changes (Enregistrer les modifications)**. | Administrateur AWS | 
| Créez la table de routage pour le sous-réseau public-two. | 1. Sur la console Amazon VPC, choisissez **Route Tables**, puis **Create route** table.<br />2. Entrez le `public-two-subnet`**** nom de la table de routage, puis choisissez **Créer une table de routage**.<br />3. Choisissez la table de `public-two-subnet`**** routage, choisissez **Modifier les itinéraires**, puis choisissez **Ajouter un itinéraire**.<br />4. Spécifiez `0.0.0.0`**** dans le champ **Destination**, puis choisissez l'ID de passerelle Internet dans la liste des **cibles**.<br />5. **Dans l'onglet **Associations de sous-réseaux**, choisissez **Modifier les associations de sous-réseaux**, choisissez le `public-two`**** sous-réseau avec la plage `10.0.0.16/28`**** CIDR, puis sélectionnez Enregistrer les associations.**<br />6. Choisissez **Save Changes (Enregistrer les modifications)**. | Administrateur AWS | 
| Créez la table de routage pour le sous-réseau private-one. | 1. Sur la console Amazon VPC, choisissez **Route Tables**, puis **Create route** table.<br />2. Entrez le `private-one-subnet`**** nom de la table de routage, puis choisissez **Créer une table de routage**.<br />3. Choisissez la table de `private-one-subnet`**** routage, choisissez **Modifier les itinéraires**, puis choisissez **Ajouter un itinéraire**.<br />4. Spécifiez `0.0.0.0`**** dans le champ **Destination**, puis choisissez la passerelle NAT dans le `public-one` sous-réseau dans la liste des **cibles**.<br />5. **Dans l'onglet **Associations de sous-réseaux**, choisissez **Modifier les associations de sous-réseaux**, choisissez le `private-one` sous-réseau avec la plage `10.0.0.32/28`**** CIDR, puis sélectionnez Enregistrer les associations.**<br />6. Choisissez **Save Changes (Enregistrer les modifications)**. | Administrateur AWS | 
| Créez la table de routage pour le sous-réseau private-two. | 1. Sur la console Amazon VPC, choisissez **Route Tables**, puis **Create route** table.<br />2. Entrez le `private-two-subnet`**** nom de la table de routage, puis choisissez **Créer une table de routage**.<br />3. Choisissez la table de `private-two-subnet`**** routage, choisissez **Modifier les itinéraires**, puis choisissez **Ajouter un itinéraire**.<br />4. Spécifiez `0.0.0.0`**** dans le champ **Destination**, puis choisissez la passerelle NAT dans le `public-two` sous-réseau dans la liste des **cibles**.<br />5. **Dans l'onglet **Associations de sous-réseaux**, choisissez **Modifier les associations de sous-réseaux**, choisissez le `private-two`**** sous-réseau avec la plage `10.0.0.64/28` CIDR, puis sélectionnez Enregistrer les associations.**<br />6. Choisissez **Save Changes (Enregistrer les modifications)**. | Administrateur AWS | 

### Créez la fonction Lambda, ajoutez-la au VPC et testez la solution
<a name="create-the-lambda-function-add-it-to-the-vpc-and-test-the-solution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une fonction Lambda. | 1. Ouvrez la console AWS Lambda et choisissez **Create** function. ****<br />2. Sous **Informations de base**, entrez dans `Lambda test` **Nom de la fonction**, puis choisissez la langue de votre choix sous **Runtime**. ****<br />3. Choisissez **Créer une fonction**. | Administrateur AWS | 
| Ajoutez la fonction Lambda à votre VPC. | 1. Sur la console AWS Lambda, choisissez **Functions**, puis choisissez la fonction que vous avez créée précédemment. <br />2. Sélectionnez **Configuration**, puis **VPC**.<br />3. Choisissez **Modifier**, puis sélectionnez `Lambda VPC`**** les deux sous-réseaux privés.<br />4. Choisissez le **groupe de sécurité par défaut** à des fins de test, puis sélectionnez **Enregistrer**. | Administrateur AWS | 
| Écrivez du code pour appeler un service externe. | 1. Dans le langage de programmation de votre choix, écrivez du code pour appeler un service externe qui renvoie votre adresse IP.<br />2. Vérifiez que l'adresse IP renvoyée correspond à l'une de vos adresses IP Elastic. | Administrateur AWS | 

## Ressources connexes
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-resources"></a>
+ [Configuration d'une fonction Lambda pour accéder aux ressources d'un VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html)