Come posso utilizzare un Application Load Balancer o un Network Load Balancer per richiamare un'API privata API Gateway?
Desidero configurare la mia API privata Amazon API Gateway come obiettivo di un sistema di bilanciamento del carico. Di conseguenza, desidero utilizzare un account AWS per accedere alla mia API privata da un Application Load Balancer o da un Network Load Balancer.
Risoluzione
Per accedere alla API privata tramite AWS Direct Connect o Amazon Route 53, consulta Invoke a private API. Puoi anche utilizzare un endpoint cloud privato virtuale (VPC) di interfaccia per accedere a una REST API privata API Gateway in un altro account AWS.
La soluzione seguente utilizza un indirizzo IP di interfaccia di rete elastica dell'endpoint Amazon Virtual Private Cloud (Amazon VPC). Con questo indirizzo IP, puoi aggiungere la tua API privata come destinazione al sistema di bilanciamento del carico.
Importante: API Gateway non supporta nomi di dominio personalizzati per le API private. Per aggirare il problema, puoi richiamare e collegare il dominio a un sistema di bilanciamento del carico. Quindi, utilizza la seguente configurazione per richiamare l'API privata.
Creazione di un endpoint Amazon VPC
Completa i seguenti passaggi:
- Apri la console Amazon VPC.
- Seleziona Endpoint, poi Crea endpoint.
- Inserisci le seguenti informazioni:
In Servizi, scegli com.amazonaws.com.your-region.execute-api.
In VPC, scegli il tuo Amazon VPC.
In Sottoreti, scegli due sottoreti in diverse zone di disponibilità (ID AZ).
Nota: se hai già degli endpoint Amazon VPC configurati nel tuo VPC con execute-api, disattiva il DNS privato. - Scegli Crea endpoint.
- Seleziona il tuo endpoint, scegli le sottoreti, quindi copia l'indirizzo IP.
Per ulteriori informazioni, consulta Private REST APIs in API Gateway.
Creazione di una REST API privata e concessione dell'autorizzazione all'endpoint VPC Amazon
Completa i seguenti passaggi:
- Apri la console API Gateway, quindi scegli Crea API.
- In REST API scegli Crea.
- In Impostazioni, inserisci le seguenti informazioni:
In Nome API, inserisci un nome per l'API.
In Tipo di endpoint, scegli Privato.
In ID dell'endpoint, inserisci l'ID dell'endpoint che hai creato. - Scegli Crea API.
- Nel riquadro di navigazione, seleziona Policy delle risorse.
- Inserisci la seguente policy:
Nota: sostituisci vpce-081234d1ad408e con il tuo ID endpoint VPC. Inoltre, sostituisci arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID con il nome della risorsa Amazon (ARN) della tua API.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/*/*", "Condition": { "StringNotEquals": { "aws:SourceVpce": "vpce-081234d1ad408e" } } }, { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/*/*" } ] }
- Scegli Salva.
Creazione o importazione un certificato pubblico di AWS Certificate Manager
È possibilerichiedere un certificato pubblico o importare un certificato.
Creazione di un Application Load Balancer o Network Load Balancer
È possibile creare un Application Load Balancer o un Network Load Balancer.
Creazione di un gruppo di destinazione
Completa i seguenti passaggi:
- Apri la console Amazon Elastic Compute Cloud (Amazon EC2).
- Nel riquadro di navigazione, in Bilanciamento del carico, scegli Sistema di bilanciamento del carico, quindi seleziona Gruppi di destinazione.
- Scegli Crea gruppo di destinazione.
- Inserisci le seguenti informazioni:
Per il tipo di destinazione, seleziona Indirizzi IP.
In Nome gruppo di destinazione, inserisci un nome.
Application Load Balancer
Per Protocollo, seleziona HTTPS.
Per Porta, seleziona 443.
Per VPC, seleziona il tuo VPC.
In Percorso del controllo dell’integrità, inserisci «/» e in Codici esito positivo, inserisci 200,403 in modo che l'endpoint VPC venga visualizzato come Integro.
Network Load Balancer
Per Protocollo, scegli TLS.
Per Porta, seleziona 443.
Per VPC, seleziona il tuo VPC. - Scegli Avanti.
- In Specifica IP, inserisci l'indirizzo IP che hai copiato nella sezione Creazione di un'interfaccia dell’endpont Amazon VPC. Quindi, scegli Aggiungi indirizzo IPv4.
- Scegli Crea gruppo di destinazione.
Configurazione del bilanciatore del carico
Completa i seguenti passaggi:
- Apri la console EC2.
- Nel riquadro di navigazione, seleziona Sistemi di bilanciamento del carico, quindi seleziona Crea sistema di bilanciamento del carico.
Application Load Balancer
In Schema, scegli Connessione internet o Interno, a seconda della configurazione.
Per Protocollo, seleziona HTTPS.
Per VPC e sottoreti, seleziona il tuo VPC e le sottoreti.
Network Load Balancer
In Schema, scegli Connessione internet o Interno, a seconda della configurazione.
Per Protocollo, scegli TLS.
Per VPC e sottoreti, seleziona il tuo VPC e le sottoreti.
Per Politica di sicurezza, seleziona il criterio predefinito ELBSecurityPolicy-TLS (consigliato).
Per il certificato SSL/TLS predefinito, scegli Da ACM.
Scegli Seleziona un certificato, quindi seleziona il tuo certificato. - Scegli Crea bilanciatore del carico.
Nota: Gli obiettivi del sistema di bilanciamento del carico si trovano negli indirizzi IP dell'interfaccia di rete elastica creata dall'endpoint VPC. Per trovare queste interfacce di rete elastiche, seleziona il tuo endpoint VPC, quindi apri la scheda Sottoreti.
Crea un record in una zona ospitata pubblica o privata di Amazon Route 53
Crea una zona ospitata pubblica o una zona ospitata privata. Quindi, crea un record CNAME o un record alias e associalo al tuo Application Load Balancer o Network Load Balancer.
Creazione di un dominio personalizzato
Crea un dominio personalizzato nella console API Gateway. Quindi, mappa l'API Private Rest nel dominio personalizzato.
Test
Per i sistemi di bilanciamento del carico pubblici, puoi effettuare una richiesta di curl dalla macchina locale. Per i sistemi di bilanciamento del carico privati, avvia una nuova istanza EC2 in una delle sottoreti del tuo sistema di bilanciamento del carico. Quindi, effettua una richiesta curl simile all’esempio seguente:
curl -v https://{custom-domain-name}/<resource-path>
Una richiesta riuscita restituisce un codice di risposta 200 OK. Una richiesta non riuscita restituisce un codice di risposta 403 Forbidden o un errore di risoluzione DNS. In caso di problemi, consulta Troubleshoot your Application Load Balancers.
Informazioni correlate
Come faccio a connettermi a un gateway API privato tramite una connessione Direct Connect?
Come posso risolvere i problemi durante la connessione a un endpoint API privato di API Gateway?
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 mesi fa
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 10 mesi fa
- AWS UFFICIALEAggiornata un mese fa