Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS设置:将单页静态应用程序前端移动到S3(从web服务器)_Amazon Web Services_Amazon S3_Amazon Ecs_Amazon Alb - Fatal编程技术网

Amazon web services AWS设置:将单页静态应用程序前端移动到S3(从web服务器)

Amazon web services AWS设置:将单页静态应用程序前端移动到S3(从web服务器),amazon-web-services,amazon-s3,amazon-ecs,amazon-alb,Amazon Web Services,Amazon S3,Amazon Ecs,Amazon Alb,我当前的网站(带有CORS+API的单页应用程序)部署在AWS EC2实例上,并通过ALB提供服务(主要是为了更方便地设置HTTPS,因为我现在只涉及一个地区)。web服务器被配置为服务于单页应用程序,但这就是它在前端所做的一切。我想将单页应用程序移到S3,从而完全分离后端和前端。问题是,关于AWS设置,最有效的方法是什么?我可以得出以下结论: 将域指向S3实例以提供前端文件,将API调用指向ALB公共DNS地址 保持域指向ELB,将端口80和443路由到S3,更改API端口并将该端口路由到E

我当前的网站(带有CORS+API的单页应用程序)部署在AWS EC2实例上,并通过ALB提供服务(主要是为了更方便地设置HTTPS,因为我现在只涉及一个地区)。web服务器被配置为服务于单页应用程序,但这就是它在前端所做的一切。我想将单页应用程序移到S3,从而完全分离后端和前端。问题是,关于AWS设置,最有效的方法是什么?我可以得出以下结论:

  • 将域指向S3实例以提供前端文件,将API调用指向ALB公共DNS地址
  • 保持域指向ELB,将端口80和443路由到S3,更改API端口并将该端口路由到EC2

非常感谢您的帮助。

如果您试图完全分离前端和后端的基础架构,但保留相同的域,您可以使用CloudFront

在CloudFront中,您将在发行版中创建两个来源:

  • 默认来源是S3静态网站
  • 然后是指向原始ALB的附加原点
您将配置此CloudFront分发的行为,以便当路径匹配特定模式时,即
api/*
它将流量转发到ELB。如果它与此不匹配,则默认为S3存储桶


看看这篇文章,它涵盖了与我所概述的类似的行为。

与将域指向S3为应用程序提供服务,然后从应用程序直接向负载平衡器进行API调用相比,这种设置有什么好处?谢谢。因此,直接指向S3的一个优势是,您可以拥有有效的SSL(S3 SSL仅适用于S3域,而不是您的自定义域)。一切都将通过一个单一的域,这样就不需要关心COR的白名单。此外,您还将获得CloudFront的好处,如智能缓存、边缘网络以提高响应时间以及对WAF等其他服务的支持。没问题,祝您度过一个愉快的夜晚:)