

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.

# Déployez une API Amazon API Gateway sur un site Web interne à l'aide de points de terminaison privés et d'un Application Load Balancer
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer"></a>

*Saurabh Kothari, Amazon Web Services*

## Résumé
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-summary"></a>

Ce modèle vous montre comment déployer une API Amazon API Gateway sur un site Web interne accessible depuis un réseau sur site. Vous apprenez à créer un nom de domaine personnalisé pour une API privée en utilisant une architecture conçue avec des points de terminaison privés, un Application Load Balancer, PrivateLink AWS et Amazon Route 53. Cette architecture évite les conséquences imprévues de l'utilisation d'un nom de domaine personnalisé et d'un serveur proxy pour faciliter le routage basé sur le domaine sur une API. Par exemple, si vous déployez un point de terminaison de cloud privé virtuel (VPC) dans un sous-réseau non routable, votre réseau ne peut pas atteindre API Gateway. Une solution courante consiste à utiliser un nom de domaine personnalisé, puis à déployer l'API dans un sous-réseau routable, mais cela peut perturber d'autres sites internes lorsque la configuration du proxy transmet le trafic (`execute-api.{region}.vpce.amazonaws.com`) à AWS Direct Connect. Enfin, ce modèle peut vous aider à répondre aux exigences organisationnelles relatives à l'utilisation d'une API privée inaccessible depuis Internet et d'un nom de domaine personnalisé.

## Conditions préalables et limitations
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ Un certificat SNI (Server Name Indication) pour votre site Web et votre API
+ Une connexion depuis un environnement sur site vers un compte AWS configuré à l'aide d'AWS Direct Connect ou d'AWS VPN Site-to-Site
+ Une [zone hébergée privée](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html) avec un domaine correspondant (par exemple, domain.com) qui est résolue à partir d'un réseau local et qui transmet les requêtes DNS à Route 53
+ Un sous-réseau privé routable accessible depuis un réseau local

**Limites**

Pour plus d'informations sur les quotas (anciennement appelés limites) pour les équilibreurs de charge, les règles et les autres ressources, consultez la section [Quotas pour vos équilibreurs de charge d'application dans la documentation Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html).

## Architecture
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-architecture"></a>

**Pile technologique**
+ Amazon API Gateway
+ Amazon Route 53
+ Application Load Balancer
+ AWS Certificate Manager
+ AWS PrivateLink

**Architecture cible**

Le schéma suivant montre comment un Application Load Balancer est déployé dans un VPC qui dirige le trafic Web vers un groupe cible de sites Web ou un groupe cible d'API Gateway en fonction des règles d'écoute d'Application Load Balancer. Le groupe cible API Gateway est une liste d'adresses IP pour le point de terminaison VPC dans API Gateway. API Gateway est configuré pour rendre l'API privée avec sa politique de ressources. La politique refuse tous les appels qui ne proviennent pas d'un point de terminaison VPC spécifique. Les noms de domaine personnalisés dans la passerelle API sont mis à jour pour utiliser api.domain.com pour l'API et son étape. Les règles Application Load Balancer sont ajoutées pour acheminer le trafic en fonction du nom d'hôte.

![\[Architecture qui utilise les règles de l'écouteur Application Load Balancer pour diriger le trafic Web.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/83145062-4535-4ad0-8947-4ea8950cd174/images/12715186-26ea-4123-b9ef-e3105a934ff3.png)


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

1. Un utilisateur d'un réseau local tente d'accéder à un site Web interne. La demande est envoyée à ui.domain.com et api.domain.com. La demande est ensuite résolue vers l'Application Load Balancer interne du sous-réseau privé routable. Le SSL est résilié au niveau de l'Application Load Balancer pour ui.domain.com et api.domain.com.

1. Les règles du récepteur, configurées sur l'Application Load Balancer, vérifient la présence de l'en-tête de l'hôte.

   a. Si l'en-tête de l'hôte est api.domain.com, la demande est transmise au groupe cible API Gateway. L'Application Load Balancer initie une nouvelle connexion à API Gateway via le port 443.

   b. Si l'en-tête de l'hôte est ui.domain.com, la demande est transmise au groupe cible du site Web.

1. Lorsque la demande atteint API Gateway, le mappage de domaine personnalisé configuré dans API Gateway détermine le nom d'hôte et l'API à exécuter.

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

Les étapes de ce modèle peuvent être automatisées à l'aide d'AWS CloudFormation ou de l'AWS Cloud Development Kit (AWS CDK). Pour configurer le groupe cible des appels d'API Gateway, vous devez utiliser une ressource personnalisée pour récupérer l'adresse IP du point de terminaison du VPC. Appels d'API vers [describe-vpc-endpoints](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-vpc-endpoints.html)et [describe-network-interfaces](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-network-interfaces.html)renvoyant les adresses IP et le groupe de sécurité, qui peuvent être utilisés pour créer le groupe cible d'adresses IP de l'API.

## Outils
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-tools"></a>
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) vous aide à créer, publier, gérer, surveiller et sécuriser REST, HTTP, et ce, WebSocket APIs à n'importe quelle échelle.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) est un service Web DNS hautement disponible et évolutif.
+ [AWS Certificate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) vous aide à créer, stocker et renouveler des certificats et clés SSL/TLS X.509 publics et privés qui protègent vos sites Web et applications AWS.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) est un framework de développement logiciel qui vous aide à définir et à provisionner l'infrastructure du cloud AWS sous forme de code.
+ [AWS](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) vous PrivateLink aide à créer des connexions privées unidirectionnelles VPCs à partir de vos services situés en dehors du VPC.

## Épopées
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-epics"></a>

### Création d'un certificat SNI
<a name="create-an-sni-certificate"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un certificat SNI et importez-le dans ACM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrateur réseau | 

### Déployer un point de terminaison VPC dans un sous-réseau privé non routable
<a name="deploy-a-vpc-endpoint-in-a-non-routable-private-subnet"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un point de terminaison VPC d'interface dans API Gateway. | Pour créer un point de terminaison VPC d'interface, suivez les instructions de la section [Accéder à un service AWS à l'aide d'un point de terminaison VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) d'interface dans la documentation Amazon Virtual Private Cloud (Amazon VPC). | Administrateur du cloud | 

### Configuration de l'Application Load Balancer
<a name="configure-the-application-load-balancer"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un groupe cible pour votre application. | [Créez un groupe cible](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-target-group.html) pour les ressources d'interface utilisateur de votre application. | Administrateur du cloud | 
| Créez un groupe cible pour le point de terminaison API Gateway. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrateur du cloud | 
| Créez un Application Load Balancer. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrateur du cloud | 
| Créez des règles pour les auditeurs. | Créez des [règles d'écoute](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-rules) pour effectuer les opérations suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrateur du cloud | 

### Configuration de la Route 53
<a name="configure-route-53"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une zone hébergée privée. | [Créez une zone hébergée privée](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) pour domain.com. | Administrateur du cloud | 
| Créez des enregistrements de domaine. | [Créez des enregistrements CNAME](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html) pour les éléments suivants :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrateur du cloud | 

### Création d'un point de terminaison d'API privé dans API Gateway
<a name="create-a-private-api-endpoint-in-api-gateway"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez et configurez un point de terminaison d'API privé. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Développeur d'applications, administrateur du cloud | 
| Créez un nom de domaine personnalisé. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.html) | Administrateur du cloud | 

## Ressources connexes
<a name="deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer-resources"></a>
+ [Amazon API Gateway](https://aws.amazon.com/api-gateway/)
+ [Amazon Route 53](https://aws.amazon.com/route53/)
+ [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/)
+ [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)
+ [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/)