介绍

GraphQL 缓存是一个缓存层,它卸载 GraphQL 服务器的负载并通过在 CDN 上缓存 GraphQL API 响应来加速 API。1.

使用 Amazon CloudFront 缓存 ALB + ECS 组成的 GraphQL 服务器响应的机制,洛亚由于我将它介绍到我自己的 EC 站点,因此我想在以下三部分系列中写一篇文章。

(一)介绍背景和目的
② 使用 AWS Prototyping 程序开发
(3) 产品发布前解决的问题,引入的效果

本文是关于(1)介绍的背景和目的。

此外,包括本文在内的三篇文章的发布,旨在补充第 4 章 JAWS-UG SRE 的内容。如果您有兴趣,请查看演示材料。

引进效果

首先写一下文章③中介绍的效果,由于ECS的成本降低量超过了CloudFront的成本增加量,AWS的总成本得以降低,API的响应时间测得前端减少了,提升高达 52%。
如果您不介意,我希望您也阅读文章②和③。

假定读者

它适用于以下读者。

  • 任何对如何在 CDN 上缓存 GraphQL 感兴趣的人
  • 使用 GraphQL 的开发人员
  • 处理站点/服务可用性和性能问题的 SRE/基础架构工程师

在以下情况下,本文的内容可能没有帮助。

  1. 使用 AWS 以外的云服务,或使用 Akamai 或 Fastly 作为 CDN
  2. 使用 AppSync

    这是本文的前提。

    • 使用 AWS
    • CloudFront 源 GraphQL 服务器由 ALB + ECS 组成(EC2 也是可能的)

    介绍的背景和目的

    什么是 GraphQL 缓存

    GraphQL 缓存是一个缓存层,它卸载 GraphQL 服务器上的负载并通过将 GraphQL API 响应缓存到 CloudFront 来加速 API。

    缓存有望降低 GraphQL 服务器(源)的基础设施成本并提高抗尖峰能力。

    介绍背景

    这是因为我觉得 GraphQL 服务器负载管理、AWS 成本增加和可扩展性在不久的将来会出现问题。
    气球是当前的负载对策,红色椭圆是我觉得有问题的地方。
    GraphQL caching ①導入の背景と目的

    GraphQL 服务器负载测量

    当预期访问集中(峰值)时,请提前横向扩展或纵向扩展,但 Auto Scaling 依赖于意外负载。2.
    Fargate 启动时间越来越好3, 曾出现过目标跟踪缩放由于尖峰而跟不上负载增加,导致响应延迟或错误的情况。

    AWS 成本增加

    LOWYA 后端基础设施使用 ECS 容量提供程序,是常驻任务和现场任务的混合配置。相比只启动常驻任务,成本的增加是可以抑制的,但由于启动了数百个任务,一定的成本增加是不可避免的。

    Aurora 还将增加成本,因为它会在峰值事件之前扩大规模,直到站点的流量恢复到正常水平。

    近期的可扩展性挑战

    在不久的将来,纵向扩展/横向扩展可能会达到其极限。

    数据库参考系统的负载可以通过使用Aurora阅读器端点,增加阅读器实例的数量来处理,但是数量和实例大小都有上限。由于成本也很高,因此最好能够以更便宜的方式处理负载。
    我认为ECS可以启动的任务数量达到上限是非常罕见的,但是你要记住,达到配额的可能性不是零。

    介绍目的

    希望改善以上问题,“无论谁看到它,都缓存相同(应该相同)的响应”是目标。

    一旦通过缓存将原始负载卸载到 CDN,开发人员就可以微调他们的应用程序和数据库查询,或者以比简单扩展/扩展后端基础架构更低的成本处理负载。嗯。

    图中的蓝色注释是可以预期改进的点。
    GraphQL caching ①導入の背景と目的

    本文摘要

    在本文中,我们分享了 GraphQL 缓存的背景和目的。
    如果您可以使用 CloudFront 来缓存“无论谁看到都相同(应该相同)的响应”,那么您不仅可以减少 GraphQL 服务器上的负载,还可以加快它的速度。

    在下一篇文章中,我想写一下 GraphQL 缓存是如何开发的。

    1. Akamai 的博客中使用了术语“GraphQL 缓存”。
      https://www.akamai.com/ja/blog/developers/graphql-caching
      缓存层不一定限于 CDN。例如,您可以将 ElastiCache 放在数据库前面以缓存查询结果。本文的兴趣在于缓存在 CDN 上。

    2. 横向扩展Aurora reader实例是处理引用处理负载的有效方法,但目前应用端并未设计为引用reader端点,因此无法使用该方法,因此包含在配置图中。我没有。

    3. 2022 年 4 月,Fargate 启用了快速扩展,但我们遇到了仍然出现错误的情况。
      https://aws.amazon.com/jp/about-aws/whats-new/2022/04/aws-fargate-delivers-scaling-applications/


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308628197.html

相关文章: