发布于: Nov 30, 2022
【概要】部署完成后,我们使用同样大小机型,c6g.large,c5.large,c5a.large,模拟客户生产环境中进行测试,测试数据集由 10% 的 5M 以下,20% 的 20M 以上图,以及 70% 的 5M 到 20M 大小图片组成。
- 首先我们参考这篇 blog:https://aws.amazon.com/cn/blogs/china/use-graviton2-example-to-build-a-cost-effective-php-load-operating-environment/ 中 2.1、2.2 和 2.3,搭建一个基于 Gravition2 EC2 实例的 php 运行环境。如果用于生产,可以搭建一个 Auto Scaling Group,但搭建 ASG 并不是本文重点,所以仅以单台 EC2 实例为例。
- 将 https://github.com/nwcd-samples/thumber/blob/main/s3thumber.php 文件放入 EC2 实例上的 /usr/share/nginx/html/ 目录,并且设置为默认首页。
- 创建一个名为 thumber-test 的 S3 存储桶,在“备用域名(CNAMEs)”填入一个二级域名,并且确保子域名与 S3 存储桶名称一致,如:thumber-test.example.com,并上传图片 jpg 至存储桶。
- 打开 CloudFront 服务,创建一个基于 thumber-test 存储桶的分配。然后点击进入刚创建的分配,选择“源和源组”,点击“创建源”,在“源域名”中填入新创建的 Gravition2 EC2 实例的域名。
- 在相同页面,选择“源组”中的“创建源组”,依次添加 S3 存储桶源和 EC2 实例源。并在“故障转移条件”中勾选 404 与 403。
- 在标签栏选择“行为”,选择默认行为,点击“编辑”,在“源或源组”处选择刚创建的源组 ID,然后保存。
- 将二级域名 thumber-test.example.com 的 CNAME 指向分发的域名。
- 此时可以进行验证,在浏览器输入 https:// thumber-test.example.com/test.jpg/thumb_300_300,会返回一张长宽为 300 像素的图片。进入名为 thumber-test 的 S3 存储桶,可以看到多了一个名为“jpg/”的文件夹,里面有一文件名为 thumb_300_300。像素尺寸可以根据需求自由修改。
部署完成后,我们使用同样大小机型,c6g.large,c5.large,c5a.large,模拟客户生产环境中进行测试,测试数据集由 10% 的 5M 以下,20% 的 20M 以上图,以及 70% 的 5M 到 20M 大小图片组成。经过测试可以得到以下结果(由于可能实际系统参数、数据集等细节不同,会造成最终测试结果不同,所以隐去了测试结果具体数值):
可以看出,c6g.large 在同样大小的机型中,运行 php 修改图片大小程序性能最好,价格最低。并且 c6g 还有尺寸更小的实例,可以利用 c6g 实例搭建 auto scaling group,其弹性粒度比另外两种实例更佳。
相关文章