【问题标题】:AWS - Serving static files with performance in mindAWS - 考虑性能的静态文件服务
【发布时间】:2017-11-03 05:40:42
【问题描述】:

我正在处理我的一个项目,我预计每月大约有 500-750k 的唯一 ping。

我很想知道是否有比我下面的想法更好的方法(在延迟方面)来托管静态网站。

想法:

  • 运行 NGINX 并启用 gzip 的 EC2 实例
  • 用于 CDN 的 CloudFront

我正在托管的内容:

  • HTML(共 3 页)
  • CSS
  • SVG/PNG 图像

另外,如果我上面的想法没问题,你会选择哪个 EC2 实例?我认为微型实例就可以了,但我不明白为什么我需要额外的 RAM/CPU。

编辑:或者像 S3 w/CloudFront 这样更简单的东西怎么样?

【问题讨论】:

  • 静态网站的所有“性能”都将由 CDN 提供。这是用户浏览器将与之交互的服务。因此,没有理由过度考虑 CDN 将从中提取的文件的来源,只需使用 S3。 CloudFront 显然是 AWS 上的首选 CDN,但实际上您可以使用任何 CDN。

标签: amazon-web-services nginx amazon-ec2 amazon-cloudfront


【解决方案1】:

AWS S3 是适合您的案例的经济高效、高可用性、完全托管、安全和容错的解决方案:

  1. 创建 S3 Bucket (mybucket) 并在其上启用网站静态属性。

  2. 创建具有对该存储桶的读/写权限的 IAM 用户。

        "Version": "2012-10-17",
        "Statement": [
          {
            "Action": "s3:ListAllMyBuckets",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::*"
          },
          {
            "Sid": "Stmt1487841624000",
            "Effect": "Allow",
            "Action": ["s3:*"],
            "Resource": ["arn:aws:s3:::mybucket/*", "arn:aws:s3:::mybucket"]
          }
        ]
        }
    

    (保留密钥和访问密钥以及您创建存储桶的区域)

  3. 在您的笔记本电脑中配置您的密钥和访问密钥

      aws configure;
    
  4. 然后上传你的静态网站:

      aws s3 sync /path/to/local/dir s3://mybucket; 
    

恭喜!您的网站托管:http://[BUCKETNAME].s3-website.[REGIONMAME].amazonaws.com

如果你想:

  • 将网站映射到另一个域

  • 或/和使用 SSL

  • 或/和与 WAF 集成。

  • 或者/等等……

也可以使用 AWS CloudFront

【讨论】:

  • 是的,我很清楚这一点。我想我的问题更多地与性能方面的利弊有关。谢谢你的回答,我很感激!
  • 当你听到这两个词:AWS + 静态网站,直觉上你的大脑一定会想到 AWS S3 + AWS CloudFront。 ? 相信我,不要为你的努力和金钱造成痛苦。
  • 即使是 SPA 应用程序(如 React + ReactRouter),在启用静态网站属性时,通过适当配置索引和错误页面,S3 仍然有效。
  • 我同意。毫无疑问,S3 + CloudFront 无疑是最简单的选择。
  • 刚想到这个。使用自定义 Web 服务器 + CloudFront 的主要好处是“干净的 URL”(/about/ 而不是 /about.html),而无需破解 S3 行为。
【解决方案2】:

我可以迟到并建议 S3。以下是一些实际表现的指标

这是一张显示 S3 延迟与相当高负载的图表

如您所见,每小时第一个字节的平均时间范围为 30 到 60 毫秒

我们还发现,总流量不会影响延迟,实际上平均延迟和总请求数之间似乎存在反比关系。我认为这是由于 AWS 端的“幕后”自动缩放

根据 AWS 文档,静态网站设置的 S3 部分适用于每秒 800 个 GET 请求,请参阅 http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html

抱歉,我没有可与之比较的 ngnix 统计数据。我们不会将 ngnix 用于此类工作负载

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    相关资源
    最近更新 更多