亚马逊AWS官方博客

基于 Amazon Lambda 的无服务器视频转码方案

在 re:Invent 2020 上,Amazon Lambda推出了大函数支持。Amazon Lambda客户可以设置Lambda函数的最大内存为 10,240 MB(10GB),与之前最大内存3,008MB的限制相比增加了3倍多。Lambda函数配置更大的内存有助于更快的执行大规模内存密集型操作,比如批处理、提取、转换、加载(ETL)作业和处理媒体音视频文件等。 由于Lambda函数根据配置的内存大小按比例分配CPU能力,因此客户现在可以访问多达6个vCPU。这有助于更快地执行机器学习、建模、基因组学和高性能计算(HPC)应用程序等计算密集型应用程序。在这篇博文中,我们将介绍基于无服务器架构的视频转码方案的设计,并展示其在大内存Lambda函数中的性能。 简介 视频转码是一项计算密集型任务。 在 c5.large实例上,将1小时长的1080p h264视频转码为720p h264视频可能需要计算将近2小时。Lambda函数的最大超时时间为15分钟,貌似单个Lambda函数似乎不太适合作为视频转码的计算平台。 但是,因为客户特别喜欢Lambda函数的快速扩展、按使用量付费且无需自己管理服务器的特性,多个客户自己找到了使用 Lambda函数来运行并行视频转码系统的创新方法。2017年,Revvel 为Verizon构建了无服务器视频转码系统,可以在不到10分钟的时间内完成一个两小时的视频转码任务[1]。 同样在2017年,斯坦福大学的Sadjad Fouladi设计了一个名为ExCamera的系统,可以对视频进行低延迟编辑、转换和编码。ExCamera通过并行运行5000个Lambda可以在2分36秒内将时长为14分48秒的4k原始视频@20dB编码到VP8编解码器[2]。2020年6月,来自A Cloud Guru的Peter Sbarski使用Lambda函数、Step Functions工作流和EFS文件系统构建了一个无服务器视频转码演示。Peter演示了该系统可以在3分钟内完成1GB MKV 的视频转码 [3]。 这些成功案例证明基于Lambda函数的无服务器视频转码不仅可行,而且很实用。本篇博客让我们来给大家介绍一个简单的无服务器视频转码方案。 基于无服务器视频转码解决方案 无服务器视频转码是一种典型的并行视频转码系统: 将输入视频分成小到可以在15分钟内处理完的视频片段,并行处理每个视频片段,并将处理后的视频片段合并成一个完整的输出视频。它由4个lambda函数、1个Step Functions 工作流和用于输入和输出视频的 S3 存储桶组成。Lambda是无服务器计算平台,Amazon Step Functions工作流负责协调多个视频转码Lambda函数的执行。Amazon S3用于长期存储视频文件。整个解决方案无需用户管理任何EC2实例。 解决方案是这样工作的: 用户通过命令行或者Web控制台将一个视频上传到输入S3桶,S3调用TriggerWorkflow lambda函数。TriggerWorkflow lambda函数启动Step Function工作流以对输入视频文件进行转码。工作流包括3个步骤: 控制器函数分析输入的需要转码的原始视频文件,通过分析原始视频文件生成下一步操作所需要的控制数据,例如输入视频将被分成多少个视频片段,每个视频片段的时长,每个视频片段的开始位置。 Step Functions工作流启动并发Transcoder lambda函数并传入每个视频片段的开始时间和持续时间。每个转码器将从S3读取其分配的输入视频片段并将其转码并将结果保存到S3桶。 当所有Transcoder lambda函数完成后,Step Functions 启动MergeVideo Lambda函数。MergeVideo Lambda函数将从S3中读取所有转码后的视频片段,将它们合并为一个完整的视频,最终上传到S3输出桶。 FFmpeg Layer […]

Read More

在多账户场景下将 Amazon WAF 安全自动化解决方案与 Amazon Firewall Manager 结合使用

Amazon WAF安全自动化解决方案[1]可用于自动部署一系列Amazon WAF(Web应用程序防火墙) 规则。除了最基本的策略,这一解决方案还包含了通过对Amazon Application Load Balancer (ALB) 和WAF日志进行分析而自动生成的WAF策略,从而对Web应用程序的请求进行更精细的控制,自动化解决方案简化了Amazon WAF的配置过程,帮助用户更好地进行Web应用安全防护。

Read More