在AWS中将前端连接到后端

时间:2018-09-04 05:59:00

标签: angular amazon-web-services amazon-ec2 kubernetes

我有一个用Angular编写的UI应用程序,该应用程序的后端在NodeJS中运行。我还有另外两个服务,这些服务将从NodeJS后端调用。这些应用程序在Docker容器中运行,并部署到AWS中的Kubernetes集群中。

流程如下:

AngularUI-> NodeJS-> Service1 / Service2

AngularUI和NodeJS在同一个docker容器中,而其他两个服务在2个单独的容器中。

我已经能够在AWS的Kubernetes中运行服务。 Service to Service呼叫(Service 1-> Service2)可以正常工作,因为我正在使用k8s标签对其进行调用。

现在我无法确定如何从Angular前端向NodeJS后端进行调用,因为请求是在客户端执行的。我无法提供服务的ELB的IP,因为IP随每次部署而变化。

我尝试创建一个AWS API Gateway,该网关指向Angular UI的ELB IP,但该页面无法使用。

正确的方法是什么?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

ELB具有静态DNS主机名,例如foobar.eu-west-4.elb.amazonaws.com。当您拥有一个域时,创建一个指向该DNS主机名的A记录(别名)。例如

webservice.mydomain.com -> mywebservicelb.eu-west-4.elb.amazonaws.com

您还可以使用静态ip地址,这似乎是一个相当新的功能:

  

每个网络负载平衡器为每个网络负载提供一个IP地址   可用区在其权限范围内。如果您在us-west-2a中有目标   和us-west-2c中的其他目标,NLB将创建和管理两个IP   地址(每个可用区一个);与该IP地址的连接将会传播   AZ中所有VPC子网中的实例之间的流量。您可以   还为每个可用区指定一个现有的弹性IP,甚至更大   控制。完全控制您的IP地址,网络负载   平衡器可用于需要IP地址的情况   硬编码为DNS记录,客户防火墙规则等。

https://aws.amazon.com/de/blogs/aws/new-network-load-balancer-effortless-scaling-to-millions-of-requests-per-second/