AWS - 提供具有性能的静态文件

时间:2017-11-03 05:40:42

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

我正在开发一个我的项目,我期待每月约有500-750k的独特ping。

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

点子:

  • 运行启用了gzip的NGINX的EC2实例
  • CloudFront for CDN

我正在主持:

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

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

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

2 个答案:

答案 0 :(得分:3)

针对您的案例,具有成本效益,高可用性,完全托管,安全且容错的解决方案 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; 
    
  5. 恭喜!您的网站托管:http://[BUCKETNAME].s3-website.[REGIONMAME].amazonaws.com

    如果你想:

    • 将网站映射到另一个域

    • 或/并使用SSL

    • 或/并与WAF集成。

    • 或/等等......

    还可以使用 AWS CloudFront

答案 1 :(得分:1)

我可以迟到派对并建议S3。以下是一些实际绩效指标

S3 GET from bucket high traffic

这是显示具有相当高负载的S3延迟的图表

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

我们还发现流量总量不会影响延迟,实际上平均延迟和总请求数之间似乎存在反比关系。我认为这是由于自动调节"引擎盖下#34;在AWS端

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

抱歉,我没有与此相比较的ngnix统计信息。我们不会将ngnix用于此类工作负载