Ich werde Microservices Architektur auf AWS bauen und ich möchte Sie bitten, meine Zweifel zu klären.AWS API Gateway + Elastische Bohnenstange und Microservices
Mein aktuelles allgemeines Konzept
Ich mag API-Gateway verwenden, die microsevices' APIs läuft in Elastic Beanstalk aussetzt. Ich möchte die Elastic Beanstalk in VPC ohne direkten Zugriff aus dem Internet auf seine Instanzen platzieren.
Fragen & Unsicher:
- Elastic Beanstalk bekommt Sub-Domain auf Anwendungserstellung. Diese Subdomain sollte von API-Gateway mit Integrationstyp verwendet werden: AWS-Service, in Aktion Konfiguration - Habe ich Recht?
- Was würde einen einzigen Microservice darstellen? Eine Anwendung von Elastic Beanstalk ist ein spezifischer skalierbarer Microservice?
- Wie sollten die Microservices miteinander kommunizieren? Es gäbe eine Aufgabe, wo ich SQS (Simple Queue Service) verwenden würde. Aber in anderen Fällen ist es besser, wenn zwei Microservices über API Gateway miteinander kommunizieren, anstatt direkt - habe ich recht?
- Testumgebung: Welche Struktur sollte ich in der Testumgebung (oder Stagingumgebung) verwenden? Ich denke darüber nach, separate VPC mit einem anderen Elastic Beanstalk und anderen Amazon-Diensten zu erstellen.
- Testumgebung und API-Gateway: Wie sollte ich ein API-Gateway einrichten? Es sollte Clients erlauben, auf die Microservices in der Testumgebung zuzugreifen, wenn die Anfrage eine bestimmte Subdomain hat, wie zum Beispiel: test.mydomain.com/hello_world/say_hello. Ich bin nicht sicher, wie man API Gateway in CI/CD verwendet, um es schnell und einfach zu machen, ohne manuell einige Konfigurationen von der Teststufe in die Produktionsphase zu kopieren. (Ich erwarte keine komplexe Lösung, nur einige Hinweise darauf, welche Komponenten, Teile, Konzepte ich dafür verwenden könnte. Mehr Details finde ich alleine).
- Haben Sie Erfahrung in der Bereitstellung von Apps für Elastic Beanstalk mit Codep Deploy und/oder Jenkins? Ich bin interessant, auf welche Weise könnte besser sein: Jenkins, AWS Code Deploy oder Jenkins + CodeDeploy.
Vielen Dank im Voraus!
Im Allgemeinen, wenn Leute auf Microservices verweisen, sprechen sie über AWS Lambda oder Azure-Funktionen. Im Fall von Lambda können die Funktionen direkt vom API-Gateway extern aufgerufen werden, dann entweder SQS-Aufgaben ausführen oder andere Lambda-Funktionen direkt anstoßen. Außerdem sehe ich keine Notwendigkeit für eine VPC, es sei denn, Sie verbinden die VPC mit einer lokalen Infrastruktur und lassen die Lambda-Funktionen auf diese Assets zugreifen. – Jordan