当前位置: 首页 > 知识库问答 >
问题:

AWS API网关弹性豆茎和微服务

薛兴言
2023-03-14

我将在AWS上构建微服务的体系结构,我想请你们澄清我的疑问。

我目前的一般概念

我想使用API网关,它公开在Elastic Beanstalk中运行的MicroDevices API。我想将Elastic Beanstalk放置在VPC中,而不直接从Internet访问其实例。

问题

  1. 弹性豆茎在应用程序创建时获得子域。这个子域应该由集成类型为AWS服务的API网关在操作配置中使用-我说得对吗?
  2. 什么代表单个微服务?弹性豆茎的应用程序是一个特定的可扩展微服务?
  3. 微服务应该如何相互通信?会有一些任务,我将使用SQS(简单队列服务)。但是在其他情况下,两个微服务通过API网关而不是直接进行通信会更好吗?
  4. 测试环境:我应该在测试环境(或分期环境)中使用什么结构?我考虑用另一个弹性豆茎和其他亚马逊服务创建单独的VPC。
  5. 测试环境和API网关:如何设置API网关?如果请求具有特定的子域,它应该允许客户端访问测试环境中的微服务,例如:test.mydomain.com/hello_world/say_hello.我不确定如何在CI/CD中使用API网关来使其快速简单,而无需手动将一些配置从测试阶段复制到生产阶段。(我不期待任何复杂的解决方案,只有一些关于我可以使用什么组件、部件、概念的提示。更多细节我会自己找到)。
  6. 您是否有使用Codep Deploy和/或Jenkins将应用程序部署到弹性豆茎的经验?我很有趣哪种方式可以更好:詹金斯,AWS代码部署或詹金斯代码部署。

共有2个答案

南宫天逸
2023-03-14

API Gateway现在支持与Private VPC集成,所以我希望您可以在私有VPC中部署ELB,并使用. eb扩展将其与API Gateway结合使用。

来源:https://aws.amazon.com/about-aws/whats-new/2017/11/amazon-api-gateway-supports-endpoint-integrations-with-private-vpcs/

钱弘壮
2023-03-14

我将回答非基于意见的观点:

  1. Elastic Beanstalk在创建应用程序时获取子域。此子域应由集成类型为AWS服务的API网关使用,实际配置-我说的对吗

不,只有在您实际调用Elastic Beanstalk服务时,AWS服务集成才适用。您将调用自己的beanstalk实例,以便使用HTTP集成。

这取决于您,但正如评论中提到的,许多客户选择通过Lambda函数而不是beanstalk应用程序来实现这一点。使用Lambda的好处是,您不需要管理beanstalk应用程序的扩展。

请注意,API网关目前无法联系VPC中的资源。任何beanstalk实例都需要公开访问。

您应该看看阶段变量。这将允许您使用基本配置,并将dev/test/prod之间的差异存储在这些变量中。

 类似资料:
  • 我在AWS Elastic Beanstalk上部署了一个Spring Boot应用程序。我正面临502严重网关错误。我从日志中找不到任何有用的东西 /var/log/nginx/error。日志 2019/02/10 02:12:54[错误]3257#0:*1连接()失败(111:连接被拒绝),连接到上游时,客户端:。。。。,服务器:,请求:“GET/HTTP/1.1”,上游:http://12

  • 我是AWS的新手,这个问题似乎很基本。然而,我需要看看我是否能找到解决方案。 我首先创建并启动了一个 EC2 实例,然后创建了一个弹性 Beanstalk 实例,并在该实例上部署了一个示例应用程序。默认情况下,弹性 Beanstalk 会将“默认环境”附加到此实例,我无法将其更改为我的 EC2 实例。如何将我的 EC2 实例(我之前创建的实例)附加到此弹性豆茎实例?我正在使用亚马逊免费套餐来学习。

  • 配置验证异常:AWS Elastic Beanstatk无法与Amazon EC2通信以确定是否为Elastic Load均衡创建自定义安全组。 在创建AWS Elastic Beanstalk应用程序时,我在尝试继续“查看和启动”时遇到了这个错误。我是新手。请帮忙。

  • 有人知道是否有可能将现有的AWS弹性豆茎环境更改为应用程序负载平衡器(而不是经典的负载平衡器)。 据我所知,只有应用程序ELB可以被AWS WAF和DDOS“屏蔽”保护,所以任何现有的EB应用程序都不能利用这些特性,因为他们有经典的ELB。

  • 任何帮助都将不胜感激,我现在已经度过了几个不眠之夜。

  • 我想找一份工作。NET核心应用程序运行在elastic beanstalk上,从浏览器中的javascript接收WebSocket连接。 当我在本地机器上测试AWS外部的客户端和服务器时,我能够在两者之间建立websocket连接。但是,当我将服务器部署到elastic beanstalk时,会出现以下错误 服务器使用101交换协议进行响应,因此我知道服务器正在尝试建立连接,但缺少Sec Web