【问题标题】:Angular Universal - AWS Lambda or EC2Angular Universal - AWS Lambda 或 EC2
【发布时间】:2019-08-15 20:38:08
【问题描述】:

很想听听一些关于托管 Angular Universal 应用程序的意见。

问题 - EC2 与 AWS Lambda

完成我的应用程序后,我最初创建了 t2.micro linux 实例来托管我的应用程序,很高兴看到该网站在 Google 的页面速度洞察力测试中得分 97。

后来我遇到了 AWS lambda,这是一种运行我的服务器渲染应用程序的无服务器方式!因为它的成本取决于请求的数量(在我的网站上非常低),我认为这可能是避免支付 10 美元的好方法一个月。

唯一的问题是 - 谷歌速度测试(使用 AWS Lambda)得分为 80 分......服务器响应时间有一个巨大的危险信号。 在进行了几次测试之后,该功能似乎变热并达到了 92。这不是 98,但我可以忍受。

问题是,因为我计划一整天都收到大约 20-50 个请求,所以它会保持冷静,所以 SEO 明智的我会留在 80 分网站上而不是 98 分。

我有什么遗漏吗?我应该尽可能方便地使用 EC2 来满足我的需要吗?

感谢阅读

【问题讨论】:

    标签: angular amazon-ec2 aws-lambda angular-universal aws-serverless


    【解决方案1】:
    • 如果只是 Google 速度测试让您不再使用 aws lambda(我建议使用合成事务,也称为主动监控或主动监控或使用 CloudWatch Events “ping”),这将帮助您阻止 lambdas 蠕虫。
    • 只要您在每月 100 万次免费调用中,就不会花费您一分钱。
    • 这还取决于您在网站上看到/预期的流量,因为它将是选择方法的指导力量,您希望如何实现保温位(合成事务或 cloudwatch 事件 ping)。李>
    • 希望这个链接可以帮助它只是谈论云监视ping方法,但它涵盖了单并发和多并发方法https://www.jeremydaly.com/lambda-warmer-optimize-aws-lambda-function-cold-starts/
    • 合成交易只不过是在您的网站上进行一次完整的用户旅程,例如每 10 分钟一次,但它更多的是监控然后保持 lambda 温暖。

    【讨论】:

    • 回答你的问题“如果它只是谷歌速度测试把你拉回来”是的!这只是谷歌速度测试。但似乎解决方案不值得。因为我可能会通过免费限制并冒始终没有 100% 性能的风险?你仍然认为我应该使用它来满足我的需要还是简单地在 linux 实例上运行它?
    • @Ben 这一切都取决于您的目标以及您的应用程序在做什么 1) 如果它是青铜服务并且您不在乎应用程序是否由于延迟问题而有点慢(我会尝试至少一个月) 2)如果您计划在未来几年运行该应用程序,那么我会考虑使用保留实例并相应地降低成本,然后比较长期收益。
    • 我不太关心用户体验......即使它很冷,它也没有那么糟糕,因为它基本上只是一个静态网站。我的问题是,我被告知,与 75-85 相比,在谷歌速度测试中获得 97 分的 SEO 会好很多
    【解决方案2】:

    每天 20-50 个请求绝对不会太多,因此您的 Lambda 函数确实会在某个时候运行冷(通常它们会在 5 分钟后冷运行)。

    这里的一个选项是创建一个 CloudWatch 事件,该事件每 4 分钟运行一次并触发您的 Lambda 函数。

    请记住,这只会启动一个容器。如果您预计会出现峰值,假设 50 个请求中有 10 个是并发的,那么您需要让您的 Lambda 启动同一函数的另一个实例 10 次,这样您就不必过多担心冷启动.但是,由于这很快就会变得混乱,我建议您的 CloudWatch Event 调用一个 Lambda,其唯一职责是预热您要使用的真实 Lambda(即同时调用真实 Lambda 10 次)。

    我建议您阅读 AWS 社区精英 Yan Cui 撰写的 article,其中详细介绍了 Lambda 冷启动的工作原理以及如何避免它们。

    【讨论】:

    • 嗯.. 有一个 CloudWatch 事件每 5 分钟触发 10 次 lambda 意味着我将通过 1M 免费请求限制...如果是这样的话,我最好直接运行它一台服务器,每月支付 10 美元,并始终保证最高性能? ... 泰!
    • @Ben 如果你还在看 lambda 的定价,它仍然非常少aws.amazon.com/lambda/pricing
    • @amitn 好点哈哈,我将配置 lambda 加热器并在几个小时后检查,看看当我请求谷歌速度测试时结果如何。 ty
    • @Ben 即使您每 5 分钟运行 10 次,您也不会超过 1M 的免费请求:5 * 10 * 12 * 24 * 30 = 每月 432K。每月配额的 43%。但这是考虑到您可能会收到 10 个并发请求,我认为情况并非如此。每 5 分钟预热一次就可以了。
    • 没错,算错了。现在用我的手指交叉打火机,这将使得分始终保持在 90+。泰
    猜你喜欢
    • 2017-10-05
    • 2017-03-10
    • 2020-02-07
    • 2016-06-23
    • 2018-04-03
    • 2020-06-12
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多