【问题标题】:Connecting front end to backend in AWS在 AWS 中连接前端到后端
【发布时间】:2018-09-04 05:58:59
【问题描述】:

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

流程是这样的:

AngularUI -> NodeJS -> Service1/Service2

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

我已经能够让服务在 AWS 上的 Kubernetes 中运行。服务到服务调用(服务 1-> 服务 2)工作正常,因为我使用 k8s 标签调用它们。

现在我无法弄清楚如何从 Angular 前端调用 NodeJS 后端,因为请求是在客户端执行的。我无法提供服务 ELB 的 IP,因为每次部署都会更改 IP。

我尝试创建一个指向 Angular UI 的 ELB IP 的 AWS API 网关,但这并没有提供页面。

这样做的正确方法是什么?非常感谢任何帮助。

【问题讨论】:

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


    【解决方案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 地址(每个 AZ 一个);与该 IP 地址的连接将传播 AZ 中所有 VPC 子网中的实例之间的流量。你可以 还为每个 AZ 指定一个现有的弹性 IP,以获得更大的 控制。完全控制您的 IP 地址,网络负载 Balancer可用于需要IP地址的情况 硬编码到 DNS 记录、客户防火墙规则等中。

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

    【讨论】:

    • 感谢您的回复。我没有可以使用的域。我会尝试静态 ip 选项。
    • 您只能将静态 IP 分配给网络负载均衡器。您仍然需要使用 AWS Classic 和 Application Load Balancer 的 DNS 名称。
    猜你喜欢
    • 1970-01-01
    • 2019-11-14
    • 2016-11-04
    • 1970-01-01
    • 2020-07-27
    • 2021-01-18
    • 2018-03-03
    • 2021-01-21
    相关资源
    最近更新 更多