AWS-API-Gateway + Elastic Beanstalk und Microservices
Werde ich bauen microservices-Architektur in AWS und ich möchte Sie bitten, zu klären meine Zweifel.
Mein Aktuelles Allgemeines Konzept
Ich würde gerne mit API-Gateway, das macht microsevices " APIs laufen in Elastic Beanstalk. Ich möchte die Elastic Beanstalk in der VPC, ohne direkten Zugriff aus dem Internet auf Ihre Instanzen.
Fragen & die Zweifel:
- Elastic Beanstalk bekommt subdomain auf Anwendung erstellen. Diese subdomain sollte verwendet werden, die von API-Gateway mit integration Typ: AWS-service in Aktion, - Konfiguration, - habe ich Recht?
- Was ausmachen würde ein einzelner microservice? Eine Elastic Beanstalk-Anwendung ist eine spezifische skalierbare microservice?
- Wie die microservices sollen miteinander kommunizieren? Es wäre eine Aufgabe, wo Im gehend zu nutzen, SQS (Simple Queue Service). Aber in anderen Fällen ist es besser, wenn zwei microservices kommuniziert mit einander durch API-Gateway, nicht direkt - habe ich Recht?
- Test-Umgebung: Welche Struktur sollte ich in der test-Umgebung (oder staging-env.)? Ich denke, über die Erstellung von separaten VPC mit anderen Elastic Beanstalk und andere Amazon-Dienste.
- Test-Umgebung und API-Gateway: Wie sollte ich ein API-Gateway? Sollte es clients ermöglichen den Zugriff auf die microservices in der Testumgebung wenn request-spezifische subdomain, wie: test.mydomain.com/hello_world/say_hello. Ich bin mir nicht sicher über die Verwendung von API-Gateway in CI/CD, um es schnell und einfach, ohne manuelles kopieren einige Konfiguration, von der Testphase bis zur Serienreife. (Ich bin mir nicht erwarten, dass jede komplexe Lösung, nur einige Hinweise darüber, welche Komponenten, Bauteile, Konzepte, könnte ich Verwendung für Sie. Weitere details werde ich zu finden auf meinem eigenen).
- Haben Sie keine Erfahrung bei der Bereitstellung von apps zu Elastic Beanstalk verwenden Codep Bereitstellen und/oder Jenkins? Ich bin interessant, in welcher Art und Weise besser sein könnte: Jenkins, AWS Code Bereitstellen oder Jenkins+CodeDeploy.
- Im Allgemeinen, wenn die Leute beziehen sich auf microservices, Sie reden AWS Lambda oder Azure-Funktionen. Im Falle von Lambda-Funktionen können direkt aufgerufen werden von der API-gateway, extern, dann entweder ausführen SQS Aufgaben oder kickoff anderen lambda-Funktionen direkt. Auch sehe ich nicht die Notwendigkeit für ein VPC-es sei denn, Sie verbinden die VPC einige on-prem-Infrastruktur und die Lambda-Funktionen der Zugriff auf diese Vermögenswerte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werde ich beantworten, die Punkte sind nicht Meinung:
Nein, die AWS-service-integration würde nur gelten, wenn Sie tatsächlich den Aufruf der Elastic Beanstalk-service. Sie benennen würde, Ihre eigenen beanstalk Instanz so würden Sie HTTP-integration.
Dies ist bis zu Ihnen, aber wie bereits erwähnt in den Kommentaren, viele Kunden entscheiden sich dazu über Lambda-Funktionen eher als beanstalk-Anwendungen. Lambda hat den Vorteil, dass Sie nicht brauchen, um verwaltete die Skalierung Ihrer beanstalk-Anwendung.
Nur ein Hinweis hier, API-Gateway kann keine Verbindung zu Ressourcen in Ihrer VPC möglich ist derzeit. Alle beanstalk Instanz müssten öffentlich zugänglich sein.
Sollten Sie einen Blick auf Bühne Variablen. Dies würde Ihnen ermöglichen, für eine einfache Konfiguration, Unterschiede zwischen dev/test/prod gespeichert in diesen Variablen.
API-Gateway unterstützt nun die integration mit Privaten VPC, so würde ich erwarten, dass Sie der Bereitstellung von ELB in einer privaten VPC und vorne mit API-Gateway mit einem
.ebextension
Quelle: https://aws.amazon.com/about-aws/whats-new/2017/11/amazon-api-gateway-supports-endpoint-integrations-with-private-vpcs/