Amazon web services 上传到另一个区域上运行的ec2实例的速度低

Amazon web services 上传到另一个区域上运行的ec2实例的速度低,amazon-web-services,amazon-s3,amazon-ec2,Amazon Web Services,Amazon S3,Amazon Ec2,我有几个EC2实例(t2.micro)在美国东部1区(N.Virginia)的负载平衡器后面,我的用户从南美洲访问该应用程序。这是我目前的设置,主要是因为成本大约是我在巴西支付相同服务费用的50% 我上传的内容都是S3存储桶,也在美国东部地区 当用户从我的应用程序请求文件时,我会检查权限,因为bucket不是公共的(因此我需要所有数据通过EC2实例),我会将文件从S3流式传输给用户。用户的下载速度很好,通常达到用户连接可以处理的最大速度,因为我已经为我的存储桶启用了传输加速 我的问题是通过EC2

我有几个EC2实例(t2.micro)在美国东部1区(N.Virginia)的负载平衡器后面,我的用户从南美洲访问该应用程序。这是我目前的设置,主要是因为成本大约是我在巴西支付相同服务费用的50%

我上传的内容都是S3存储桶,也在美国东部地区

当用户从我的应用程序请求文件时,我会检查权限,因为bucket不是公共的(因此我需要所有数据通过EC2实例),我会将文件从S3流式传输给用户。用户的下载速度很好,通常达到用户连接可以处理的最大速度,因为我已经为我的存储桶启用了传输加速

我的问题是通过EC2实例上传文件。上传速度受到很大影响,在这种情况下,在S3上启用传输加速并没有任何帮助。我感觉像是被AWS限制了,因为最高速度限制在1Mb/s左右

我可以直接将文件从用户传输到S3,然后更新数据库,但这会给我的主要工作流程带来一些问题

因此,我有两个问题:

1) 像这样影响EC2实例的上传速度是正常的吗

2) 除了将所有服务转移到南美,我还有什么选择更接近我的用户


提前谢谢

不需要通过AmazonEC2实例从AmazonS3“流式传输”数据。也不需要通过亚马逊EC2“上传”

相反,您应该使用预先签名的URL。这些URL允许有时间限制的上传或下载AmazonS3

它的工作方式是:

  • 应用程序验证是否允许用户上载/下载文件
  • 然后,应用程序生成一个带有到期时间(例如5分钟)的预签名URL
  • 应用程序向客户端提供URL(如移动应用程序)或将其包含在HTML页面中(作为下载链接或上传表单)
  • 然后用户直接将文件上传/下载到AmazonS3
结果是一个高度可扩展的系统,因为EC2系统不需要参与实际的数据传输

见:


不需要通过AmazonEC2实例从AmazonS3“流式传输”数据。也不需要通过亚马逊EC2“上传”

相反,您应该使用预先签名的URL。这些URL允许有时间限制的上传或下载AmazonS3

它的工作方式是:

  • 应用程序验证是否允许用户上载/下载文件
  • 然后,应用程序生成一个带有到期时间(例如5分钟)的预签名URL
  • 应用程序向客户端提供URL(如移动应用程序)或将其包含在HTML页面中(作为下载链接或上传表单)
  • 然后用户直接将文件上传/下载到AmazonS3
结果是一个高度可扩展的系统,因为EC2系统不需要参与实际的数据传输

见:


感谢您的投入。。。但是上传速度的限制呢?这正常吗?唯一的限制是Amazon EC2实例上的网络带宽,这取决于它们的实例类型。您使用的是
t2.micro
,它可能会饱和,因此请尝试使用更大的实例类型。请看:顺便说一句,我刚刚启动了一个m5.large实例,我无法将一个文件上传到它,因为我是唯一在线用户,速度超过10Mb/s。。。与t2.micro实例发生的情况相同。。。m5.large说“高达10千兆位”,但我似乎不是这样。无法上传单个文件表明存在网络带宽以外的问题。您需要调试应用程序以跟踪哪里出了问题。感谢您的输入。。。但是上传速度的限制呢?这正常吗?唯一的限制是Amazon EC2实例上的网络带宽,这取决于它们的实例类型。您使用的是
t2.micro
,它可能会饱和,因此请尝试使用更大的实例类型。请看:顺便说一句,我刚刚启动了一个m5.large实例,我无法将一个文件上传到它,因为我是唯一在线用户,速度超过10Mb/s。。。与t2.micro实例发生的情况相同。。。m5.large说“高达10千兆位”,但我似乎不是这样。无法上传单个文件表明存在网络带宽以外的问题。您需要调试应用程序以跟踪哪里出了问题。