Amazon-API-Gateway vor der ELB-und ECS-Cluster

Ich versuche einen Amazon-API-Gateway vor der Application Load Balancer, die Salden traffic auf meinem ECS-Cluster, wo alle meine microservices bereitgestellt werden. Die motivation zur Nutzung der API-Gateway für die Verwendung eines benutzerdefinierten Vollmachtgeber durch eine lambda-Funktion.

System Diagramm

Amazon-API-Gateway vor der ELB-und ECS-Cluster

In Amazon Wörter (https://aws.amazon.com/api-gateway/faqs/): "Proxy-Anfragen an backend-Operationen müssen auch öffentlich über das Internet zugänglich". Dies zwingt mich zu machen, die ELB öffentliche (internet-facing) anstatt von internal. Dann brauche ich einen Weg, um sicherzustellen, dass nur der API-Gateway ist in der Lage, den Zugriff auf die ELB außerhalb der VPC.

Meine erste Idee war die Verwendung eines Client-Zertifikat in die API-Gatway, aber der ELB nicht scheinen, um es zu unterstützen.

Irgendwelche Ideen würde sehr geschätzt!

  • Ich glaube nicht, dass es eine einfache Lösung. Entweder API-Gateway ist nicht für Sie, oder Sie haben etwas mehr zu tun. Lösungen zählen die Inbetriebnahme von HAProxy vor der ALB, der überprüfen Sie die client-Zertifikat. Oder eine lambda vor dem ALB aber, die verlangen, dass die gesamte Antwort gepuffert werden, eventuell zu einer Verlangsamung führen. Oder wenn Sie dann Spritzen, ein Geheimnis-header, um die Anforderung von API-Gateway auf der ALB. Dieses Geheimnis wird dann verifiziert werden in den backends. Ich würde nicht empfehlen, IP-whitelisting, da die IP-Bereiche für das API-Gateway sind nicht statisch und verändern kann brechen Zeug.
  • Danke @doorstuck. Ich möchte vermeiden, die Integration neuer Komponenten wie der HAProxy. Ich denke, dieses Szenario (API-Gateway, ELB, ECS-Cluster) ist durchaus üblich. Nicht AWS stellen eine out-of-the-box-Lösung?
  • API-Gateway ist mehr zugeschnitten auf die Lambda-Funktion-Dienste. Wenn vor der docker-Container mit hosted services habe ich das Gefühl, es fügt zu viel Latenz und Komplexität. Ich verwenden Sie einen anderen proxy anstelle von API-Gateway, da ich nur den proxy-Teil des API-Gateway sowieso. Ich benutzte Skipper durch Zalando-mit Erfolg. Aber wenn Sie verwenden möchten authorizers, cloudfront-caching, etc, dann vielleicht-API-Gateway ist noch immer der Weg zu gehen.
  • Danke. Ich erstellte ein lambda-proxy-Anfragen, die in meiner VPC, aber ich wusste nicht wie dieser Ansatz, denn er fügt Latenz und Komplexität. Ich landete ersetzen der Amazon-API-Gateway, indem Sie die Open-Source-TyK.
Schreibe einen Kommentar