在 AWS 子网之间通信时使用什么名称

在 AWS 子网之间通信时使用什么名称

我整天都在谷歌搜索这个问题,但还是没搞明白。我试图在 AWS VPC 中设置一个多层应用程序,但我对大型系统网络架构还只是个新手。我将使用多个子网来处理应用程序的不同部分。我们的应用服务器需要与 DB 子网中的数据库服务器以及其他子网中的各种其他服务进行通信。我将使用 CloudFormation 来协调所有这些。

我的问题很简单。我应该为我的应用程序配置哪些名称/IP,以便它们可以与这些其他服务通信。我的应用服务器将需要数据库和所有这些其他服务的 URL/IP。我似乎无法找到为创建的资源分配主机名的方法。

答案1

为了数据库你有两个选择:

  1. 远程数据传送系统- 由 Amazon 管理的数据库,并以服务形式提供给您。在这种情况下,您会在 RDS 详细信息页面上获得一个主机名。它可能类似于mysql-rds01.abcdefgh.ap-southeast-2.rds.amazonaws.com- 使用它。
  2. 推出你的拥有自己的数据库服务器与您管理的操作系统。在这种情况下,您可以使用内部名称,例如,ip-172-31-44-105.ap-southeast-2.compute.internal或者更好地在AWS Route53db-server并在该区域中创建一个指向上述名称的记录CNAME。这样做的好处是使用稳定名称(db-server),如果实例 IP 发生变化,可以在单个位置(Route53)上进行更新。

总是尝试使用 RDS除非你有非常好的理由不使用 RDS 并自行使用。

接下来,对于层级之间的通信,最好使用弹性负载均衡器(ELB)-它们可以是内部的例如,将内部 Web 服务集群隐藏在内部 ELB 后面,并使用 ELB 的 DNS 名称与 Web 服务通信。将类似于,internal-blahblah-12345678.ap-southeast-2.elb.amazonaws.com您可以再次给它一个漂亮CNAME路线 53

不用说,这一切都将由你的云形成模板。在创建 webservice 主机的同一模板中,还创建其 ELB 和 Route53 记录。然后,您将一次性创建所有逻辑相关的资源。

相关内容