【问题标题】:Amazon S3 as cdn copying images from my serverAmazon S3 作为 cdn 从我的服务器复制图像
【发布时间】:2019-06-12 08:09:09
【问题描述】:

我对此进行了很多搜索,但我得到的只是将 CloudFront (CDN) 与 S3 协作使用。

我想做一些不同的事情。

CloudFront 用作 CDN,其 Origin 设置为我的图像所在的域或 S3。

如果我将其设置为我的域,则会出现使用我的托管空间的问题。

如果我将它与 S3 一起使用,问题是,如何轻松地将我的图像传输到 S3?对于 CDN,这是自动的,因为对 CloudFront 的每次调用都会自动从我的服务器复制图像。

CloudFront 是否可以与 S3 一起使用,但如果 S3 上不存在图像,它会将其从我的服务器复制到 S3?

或者可能是 S3 本身作为 CDN 工作(最佳解决方案)。我在一些网站上看到他们使用 s3 url 来托管他们的图片,如下所示: https://retsimages.s3.amazonaws.com/14/A10363214_6.jpg

这怎么可能?

【问题讨论】:

标签: amazon-web-services amazon-s3 amazon-cloudfront cdn


【解决方案1】:

如果我将其设置为我的域,则会出现使用我的托管空间的问题。

比存储空间更昂贵的是让服务器坐在那里准备处理请求的成本。您的应用程序逻辑知道图像何时发生变化;是时候将它们放入 S3 中了。

如何轻松地将我的图像导入 S3?

几乎每种语言都有一个 SDK,因此请上传图片。使用s3cmd sync 移动您拥有的图片。然后你就可以关掉你的服务器了。

或者可能是 S3 本身作为 CDN 工作

CloudFront 可以使用客户提供的 dns 名称​​和匹配的证书,以便您可以使用带有 https 的自定义域。它可以集成到 S3 不能直接集成的 AWS WAF。否则,CDN 的行为类似于 s3。 CloudFront 应该提供更好的缓存和端点位置,但在低容量时您会发现几乎没有功能差异。写后读也不是一致的,但 Cloudfront 会额外缓存。对于大多数用途,定价不太可能使 CloudFront 更便宜。

【讨论】:

【解决方案2】:

CloudFront 是否可以与 S3 一起使用,但如果 S3 上不存在图像,它会将其从我的服务器复制到 S3?

关闭。

CloudFront 确实有一个功能可以帮助您朝着这个方向前进——origin groups。创建一个以 S3 作为主要服务器,将您的服务器作为辅助服务器的原始组。每当 CloudFront 遇到缓存未命中时,它都会首先检查 S3,并且仅当图像不存在时,它才会通过将请求发送到您的服务器来重试。它会缓存响应,但不会记住对象的来源——因此,针对同一对象的未来缓存未命中的后续请求将始终首先尝试 S3。

这意味着您的服务器上的某些东西需要负责最终将图像移动到 S3 ——但只要图像存在于某个地方或其他地方,该图像将由 CloudFront 提供,并且缓存在处理请求的一个或多个边缘(最多两个 - 一个全局/外部,一个区域/内部)的 CloudFront 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2023-03-21
    • 2012-09-26
    • 1970-01-01
    • 2015-03-29
    • 2013-07-17
    • 1970-01-01
    相关资源
    最近更新 更多