Je vais construire l'architecture d'ABS sur microservices et je voudrais vous demander de clarifier mes doutes.
Mon concept général actuel
J'aimerais utiliser API Gateway, qui expose les API de microsevices s'exécutant dans Elastic Beanstalk. J'aimerais placer Elastic Beanstalk dans VPC sans accès direct d'Internet à ses instances.
Questions et doutes:
Je vais répondre aux points qui ne sont pas basés sur l'opinion:
- Elastic Beanstalk obtient un sous-domaine lors de la création de l'application. Ce sous-domaine Doit être utilisé par API Gateway avec le type d'intégration: AWS Service, dans la configuration d'action - Ai-je raison?
Non, l'intégration du service AWS ne s'appliquerait que si vous appeliez réellement le service Elastic Beanstalk . Vous appelez votre propre beanstalk instance pour utiliser l'intégration HTTP.
- Qu'est-ce qui représenterait un seul microservice? Une application Elastic Beanstalk est un microservice spécifique évolutif?
Cela dépend de vous, mais comme mentionné dans les commentaires, de nombreux clients choisissent de le faire via des fonctions Lambda plutôt que des applications beanstalk. L'utilisation de Lambda présente l'avantage que vous n'avez pas besoin de gérer la mise à l'échelle de votre application beanstalk.
- Environnement de test: Quelle structure dois-je utiliser dans un environnement de test (ou Staging env.)? Je pense créer un VPC séparé avec un autre Elastic Beanstalk et d’autres services Amazon.
Remarque: API Gateway ne peut pas actuellement contacter les ressources de votre VPC. Toute instance de haricot devrait être accessible au public.
- Environnement de test et passerelle API: Comment dois-je configurer une passerelle API? Il doit permettre aux clients d’accéder aux microservices dans l’environnement de test si la requête a un sous-domaine spécifique, tel que: test.mydomain.com/hello_world/say_hello. Je ne sais pas comment utiliser API Gateway dans CI/CD pour le rendre simple et rapide, sans copier manuellement une configuration depuis la phase de test jusqu'à la phase de production. (Je ne m'attends pas à une solution complexe, seulement quelques conseils sur les composants, parties, concepts que je pourrais utiliser. Plus de détails, je les trouverai moi-même).
Vous devriez jeter un oeil sur variables de stade . Cela vous permettrait d'utiliser une configuration de base avec des différences entre dev/test/prod stockés dans ces variables.
API Gateway prend désormais en charge l'intégration avec les VPC privés. Par conséquent, je suppose que vous pouvez déployer votre ELB dans un VPC privé et le connecter à API Gateway à l'aide d'un .ebextension