AWS - 在考虑性能的情况下提供静态文件
AWS - Serving static files with performance in mind
我正在做我的一个项目,我预计每月大约有 500-750k 个独立的 ping。
我很想知道是否有比我下面的想法更好的托管静态网站的方法(就延迟而言)。
想法:
- EC2 实例 运行 启用 gzip 的 NGINX
- 用于 CDN 的 CloudFront
我主持的内容:
- HTML(共3页)
- CSS
- SVG/PNG 图片
另外,如果我上面的想法没问题,你会选择哪个EC2实例?我在想一个微型实例就可以了,我不明白为什么我需要额外的 RAM/CPU.
编辑:或者像 S3 w/ CloudFront 这样更简单的东西怎么样?
适用于您的案例的具有成本效益、高可用性、完全托管、安全和容错的解决方案是 AWS S3:
创建 S3 存储桶 (mybucket) 并在其上启用网站静态属性。
在该存储桶上创建具有 read/write 权限的 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"]
}
]
}
(保留密钥和访问密钥以及您创建存储桶的区域)
在笔记本电脑中配置您的秘密密钥和访问密钥
aws configure;
然后上传你的静态网站:
aws s3 sync /path/to/local/dir s3://mybucket;
恭喜!您的网站托管:http://[BUCKETNAME].s3-website.[REGIONMAME].amazonaws.com
如果你想:
将网站映射到另一个域
or/and 使用 SSL
or/and 与 WAF 集成。
or/and 等等...
还使用 AWS CloudFront。
我可以迟到吗,也建议S3。以下是一些实际性能指标
这是一张显示 S3 延迟的图表,负载相当高
如您所见,每小时第一个字节的平均时间范围为 30 到 60 毫秒
我们还发现总流量不会影响延迟,事实上平均延迟和总请求数之间似乎存在反比关系。我认为这是由于 AWS 端的自动缩放 "under the hood"
根据 AWS 文档,静态网站设置的 S3 部分适用于每秒 800 个 GET 请求,请参阅 http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html
抱歉,我没有 ngnix 统计数据可以与之进行比较。我们不将 ngnix 用于此类工作负载
我正在做我的一个项目,我预计每月大约有 500-750k 个独立的 ping。
我很想知道是否有比我下面的想法更好的托管静态网站的方法(就延迟而言)。
想法:
- EC2 实例 运行 启用 gzip 的 NGINX
- 用于 CDN 的 CloudFront
我主持的内容:
- HTML(共3页)
- CSS
- SVG/PNG 图片
另外,如果我上面的想法没问题,你会选择哪个EC2实例?我在想一个微型实例就可以了,我不明白为什么我需要额外的 RAM/CPU.
编辑:或者像 S3 w/ CloudFront 这样更简单的东西怎么样?
适用于您的案例的具有成本效益、高可用性、完全托管、安全和容错的解决方案是 AWS S3:
创建 S3 存储桶 (mybucket) 并在其上启用网站静态属性。
在该存储桶上创建具有 read/write 权限的 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"] } ] }
(保留密钥和访问密钥以及您创建存储桶的区域)
在笔记本电脑中配置您的秘密密钥和访问密钥
aws configure;
然后上传你的静态网站:
aws s3 sync /path/to/local/dir s3://mybucket;
恭喜!您的网站托管:http://[BUCKETNAME].s3-website.[REGIONMAME].amazonaws.com
如果你想:
将网站映射到另一个域
or/and 使用 SSL
or/and 与 WAF 集成。
or/and 等等...
还使用 AWS CloudFront。
我可以迟到吗,也建议S3。以下是一些实际性能指标
这是一张显示 S3 延迟的图表,负载相当高
如您所见,每小时第一个字节的平均时间范围为 30 到 60 毫秒
我们还发现总流量不会影响延迟,事实上平均延迟和总请求数之间似乎存在反比关系。我认为这是由于 AWS 端的自动缩放 "under the hood"
根据 AWS 文档,静态网站设置的 S3 部分适用于每秒 800 个 GET 请求,请参阅 http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html
抱歉,我没有 ngnix 统计数据可以与之进行比较。我们不将 ngnix 用于此类工作负载