告别高昂出站费用:LoongCollector + CDN 打造跨云低成本可观测数据实时采集链路
作者:林润骑(太业) 在多云战略日益普及的今天,企业往往需要在不同云平台部署业务系统,同时又希望将可观测数据统一采集到单一平台进行分析和管理。然而,跨云数据传输的高昂成本成为了企业实施统一可观测性战略的主要障碍。 我们发现,CloudFront 等 CDN 产品的出站流量价格更低,随用量增加还享有阶梯折扣。通过将 CDN 作为数据传输的“跳板”,可以大幅降低跨云传输成本。 基于这一发现,阿里云可观测团队设计了 LoongCollector + CDN 的跨云低成本采集方案: 本方案可将跨云数据传输成本显著降低,让企业以更低的代价实现统一可观测平台的愿景。 日志服务 SLS 对外提供公网域名,用户可以直接通过公网将数据发送到 SLS,且 SLS 不收取入站流量费用。 痛点 SLS 传输加速利用全球分布的云机房,将全球各地用户对日志服务的访问,经过智能路由解析至就近的接入点,使用优化后的网络及协议极大地提升访问速度。 痛点 双重成本:除了源云平台的出站流量费用之外,还需要承担 DCDN 的加速费用,整体成本进一步增加。 ▍方案三:跨云专线打通 通过云服务提供商的专线服务(如 AWS Direct Connect、阿里云高速通道等)建立跨云专用网络连接。 痛点 EC2 每月有 100GB 的出站免费额度,但是 CloudFront 的出站和公网访问源站的价格要比 EC2 的价格更低。更重要的是,CDN 产品通常提供分级定价和批量折扣,随着使用量增加,单位成本会进一步降低。通过 CDN 的加速链路,将 SLS 服务设置成源站的方式,我们可以复用 CDN 的转发链路,实现以下优势: CloudFront 区域数据传输到源站的价格: CloudFront 请求次数价格(每月前 100 万次免费): EC2 出公网价格: 以美国地域为例:10TB 的数据,通过 CloudFront 传输,成本比 EC2 直接公网传输可以节约 70%。 本方案以 CloudFront 为例,整体的采集方案如图所示: AWS EC2(LoongCollector) a. 从本地/应用采集日志或数据 b. 按 SLS 写入协议组包(HTTP POST) c. 将数据发送到目标 SLS CloudFront a. 接收 LoongCollector 的请求(HTTP/HTTPS) b. 按行为规则转发到源站(此处源站为阿里云 SLS 的写入端) SLS(阿里云日志服务) SLS ConfigServer(管控端) A. 管控链路(Control Plane)——直连公网 特点:请求量小、数据量小、对带宽不敏感。 典型动作包括: 选择直连公网的原因: B. 数据链路(Data Plane)——通过 CloudFront 转发到 SLS 特点:持续写入、对稳定性/连通性敏感,可能存在跨境网络波动。 这里以采集数据到 SLS 上海地域的 Project 为例。 注意事项: 行为配置 注意事项: CloudFront 的域名验证 直接 Curl CloudFront 域名,如果有如下返回,则说明已配置成功。 关键配置说明: 使用 HTTPS 协议发送数据 关键配置说明: LoongCollector 资源参数配置 LoongCollector 是部署在 EC2 或者节点上,因此需要预估单机采集的日志的原始数据量,调整资源参数,具体可以参考帮助文档:https://help.aliyun.com/zh/sls/select-a-network-type PS:LoongCollector 进行数据发送的时候,默认采用 LZ4 进行压缩,针对日志数据,可以有 5 ~ 10 倍的压缩效果。 测试场景: 可以看到在同地域场景下,CloudFront 的访问质量跟直接公网访问基本持平,HTTP 的访问延迟还是略低一些。 本文介绍的跨云低成本可观测数据实时采集方案,通过 CDN + LoongCollector 的组合,实现了: LoongCollector 作为新一代统一可观测 Agent,将持续致力于为用户提供高性能、低成本、易使用的跨云数据采集解决方案,助力企业构建统一的可观测平台。 参考资料: [1] LoongCollector 官方文档 https://github.com/alibaba/loongcollector [2] AWS CloudFront 官方文档 https://docs.aws.amazon.com/cloudfront/ [3] 阿里云 SLS 官方文档背景
现有方案 & 痛点

方案一:纯公网
方案二:纯公网 + SLS 加速域名
跨云低成本采集方案



整体方案

架构概览
链路分层:管控链路 & 数据链路
CloudFront 详细配置
源配置




{"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"XXX"}}
LoongCollector 详细配置
使用 HTTP 协议发送数据
# /usr/local/ilogtail/ilogtail_config.json
{
"primary_region" : "cn-shanghai",
"config_servers" :
[
"https://logtail.cn-shanghai.log.aliyuncs.com"
],
"data_servers" :
[
{
"region" : "cn-shanghai",
"disable_subdomain" : true,
"endpoint_list": [
"http://xxx.cloudfront.net"
]
}
],
...
}# /usr/local/ilogtail/ilogtail_config.json
{
"primary_region" : "cn-shanghai",
"config_servers" :
[
"https://logtail.cn-shanghai.log.aliyuncs.com"
],
"data_servers" :
[
{
"region" : "cn-shanghai",
"disable_subdomain" : true,
"endpoint_list": [
"https://xxx.cloudfront.net"
]
}
],
"enable_host_ip_replace": false,
...
}
网络质量测试结果

限制说明
总结与展望
方案总结