我有一个注册域名,让我们说example.com,以及在AWS运行的3种不同服务:
所有3项服务应尽可能从互联网上使用相同的主机名但不同的端口,即
。第一个问题是:这有可能吗?或者我应该使用不同的主机名,例如www.example.com,service1.example.com ......?
如果可能,如何设置以及我可以使用哪些AWS服务?我仍然是AWS的新手并阅读了关于(弹性)负载均衡器,CloudFront,Route 53的内容,但我仍然不知道如何实现我的目标。
如果没有任何其他AWS服务,似乎无法配置DNS条目以指向S3存储桶,因为它没有静态IP地址。
任何有关快速解决方案的提示都将受到赞赏,因为此设置仅适用于演示。许多用户无法访问这些服务,因此从这个角度来看,负载均衡器不是必需的,此时设置也不需要扩展。
答案 0 :(得分:2)
这可能吗?
答案是是。
您可以设置代理服务器以根据需要代理流量:
为www.example.com设置解析为您的代理的DNS记录 IP(可能是您已经拥有的那些实例之一)。
将您的代理(多个选项nginx,squid等)配置为 在www.example.com和给定端口上收听并转发流量 因此,EC2服务器IP和S3网站CNAME。
您的用例是否值得? 否除非您想尝试将其作为练习。
我应该使用不同的主机名吗? 是
只需在您的域名的Route53中创建托管区域,并为不同的服务www.example.com,service1.example.com创建子域名。
答案 1 :(得分:1)
第一个问题是:这有可能吗?
如果没有超级复杂的设置,您的TCP应用程序只能使用一种称为应用程序负载均衡器的负载均衡器。 http://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html
使用ALB,您可以为每个TCP应用程序(EC2实例1端口3333和EC2实例2端口4444)创建不同的目标组,然后在负载均衡器上定义自定义侦听器,以将端口3333路由到第一个目标组和端口4444到第二个目标群体。
但ALB无法路由到S3或CloudFront分发。