`

aws lambda vpc的一点感想

阅读更多

aws vpc是在公有云内建立的一个私有云网络,目的是出于安全考虑。lambda缺省是在公有云上面运行,不过,现在也支持了在vpc内部运行,不过运行的效率会变低,会出现网络延迟,所以对于web service这样的程序的话,还是不要在vpc内部运行lambda,如果对于延迟和性能不敏感的场景,还是可以采用的。

那么,lambda在vpc内运行和不在vpc内运行有什么不同呢?一点个人理解,仅供参考。
1。lambda本身其实也在一个vpc内运行,只是这个vpc和aws用户的vpc不是同一个,而且我怀疑不是固定的vpc,这取决于内部的技术实现,对于云用户来说可以不用关注。因为lambda属于serverless的概念,所以只要你的程序能跑起来就ok了。
2。前面说的公有lambda,它有什么弊端呢
1》不在我们自己的vpc内运行,所以我们无法控制,包括安全性我们也无能为力,只能相信aws的技术实力
2》如果我们的lambda程序想要访问我们自己vpc 内部的服务,比如db,就比较麻烦了,因为我们的db部署在ec2内,而且不对公网开放ip的,这样从公网的lambda是无法连接我们vpc内部的db服务的。

那么,如果想从lambda程序访问我们vpc的内部服务的话,只能把lambda本身也拉进我们自己的vpc里面来,这样同一个网络内部访问就没有任何问题了。

也是基于以上这种应用场景,lambda也开始支持指定vpc了。其实不止是指定vpc,还包括subnet,security group,概括起来就是eni,elastic network interface,也就是相当于attach上一个虚拟网卡,这个eni属于aws用户的default vpc。也就是相当于把公有lambda从它自己的vpc里面detach,然后再attach到你的default vpc里面,然后指定个eni虚拟网卡,让lambda跟你的vpc 里面的别的ec2虚拟主机同属于一个私有网络,这样就可能互相连接访问了。

前面主要是从功能上来说明,貌似一切问题都解决了,但是只有一点,就是一开始提到的lambda 函数调用延迟的问题,这个跟aws lambda内部的技术实现有很大关系。
1》这个eni虚拟网卡的attach是动态的,不是绑定一次就一劳永逸了。类似于timeout的机制,如果过一定的时间没有调用lambda函数,eni会被detach,下次再调用还要再attach网卡。
2》lambda天生就是公共服务,你的lambda 函数每次调用的时候可能都不在同一个虚拟机上,包括vpc,IP地址都不是固定的,虽然你把lambda绑定到了你自己的vpc里面,但是每次lambda 函数调用的时候,都是动态选择虚拟机或者叫server来执行你的代码的,所以每次都可能存在动态现用现绑定vpc,eni的动作,这就是造成latency的原因。

综上所述,如果对于性能和响应时间要求较高的场景,必须用公有lambda,也就是不指定vpc。其它场景如果不需要访问vpc内部资源的话,也没有必要绑定vpc。除非需要访问内部资源,对响应时间又没有过高要求的场景下,可以考虑绑定vpc。

 

0
0
分享到:
评论

相关推荐

    AWS Lambda 中文开发者手册

    在代码中,开发者可以设置环境变量来配置函数的行为,也可以在VPC中配置Lambda函数,以便函数能够访问到私有网络资源。 在监控和故障排除方面,AWS Lambda 提供了丰富的日志记录和监控功能。开发者可以通过Amazon ...

    容器与AWS Lambda技术架构概述.pdf

    《容器与AWS Lambda技术架构概述》 在当前的云计算领域,技术创新不断推动着行业的进步,其中,AWS Lambda和容器技术的结合是极具代表性的解决方案。本文将深入探讨这两种技术架构的特点,以及它们如何共同塑造未来...

    亚马逊 aws Lambda demo

    亚马逊AWS Lambda是一个无服务器计算平台,它允许开发者运行代码而无需预先配置或管理服务器。Lambda以其按需自动扩展和仅付费使用的特点,极大地简化了应用程序的部署和维护。在这个"亚马逊AWS Lambda demo"中,...

    AWS Lambda 开发者User Guide

    在配置Lambda函数的章节中,文档讨论了如何配置函数来访问AWS服务和其他非AWS服务,包括如何访问私有服务或资源以及VPC支持的相关设置。AWS Lambda执行模型进一步解释了函数的调用方式,包括不同的调用类型和事件源...

    cpp-AWSLambda运行时API的C实现

    在这个“cpp-AWSLambda运行时API的C实现”项目中,我们聚焦于使用C++来实现AWS Lambda运行时API。C++是一种强大的、通用的编程语言,尤其适合系统级编程和高性能计算。通过使用C++,开发者可以利用其底层控制能力,...

    Serverless 架构 无服务器应用与AWS Lambda.rar

    AWS Lambda是亚马逊Web服务(AWS)提供的一个核心Serverless计算服务,它允许开发者运行代码而无需预先配置或管理服务器。本篇文章将深入探讨Serverless架构的概念、优势、工作原理以及AWS Lambda的具体应用。 一、...

    Go-运行标准Go代码在AWSLambda平台中

    标题 "Go-运行标准Go代码在AWSLambda平台中" 指向了使用Go语言在亚马逊AWS Lambda服务上部署无服务器应用的主题。AWS Lambda是一种计算服务,它允许开发者运行代码而无需预先配置或管理服务器。这里,我们关注的是...

    Go-在Go中创建您的AWSLambda函数代码

    在本文中,我们将深入探讨如何使用Go语言在Amazon Web Services(AWS)上创建Lambda函数。AWS Lambda是一种无服务器计算服务,允许开发者运行代码而无需预置或管理服务器。使用Go来编写Lambda函数可以充分利用Go语言...

    高清彩版 Mastering.Aws.Lambda

    ### AWS Lambda核心知识点详解 #### 一、AWS Lambda概述 **高清彩版《Mastering AWS Lambda》** 这本书深入探讨了如何利用AWS Lambda构建和部署无服务器应用。AWS Lambda是一项由亚马逊网络服务(Amazon Web ...

    learn-aws-lambda, 了解如何使用 AWS Lambda轻松创建无限可伸缩的Web服务.zip

    learn-aws-lambda, 了解如何使用 AWS Lambda轻松创建无限可伸缩的Web服务 知识库 了解在 LESS 时间和成本范围内使用 AWS Lambda创建可以扩展的微型服务比基于服务器的应用程序运行的成本高 。 电子邮件内容什么是 ...

    开源项目-aws-aws-lambda-go.zip

    【aws-lambda-go开源项目详解】 AWS Lambda 是亚马逊云服务(Amazon Web Services)提供的一种无服务器计算服务,它允许开发者运行代码而无需预先配置或管理服务器。Lambda 可以自动处理执行代码所需的计算资源,并...

    lambda, AWS Lambda函数的创作工具.zip

    lambda, AWS Lambda函数的创作工具.zip

    AWS Lambda - A Guide to Serverless Microservices

    This book will focus on AWS Lambda from the viewpoint of an AWS user who has not yet used the service.

    Laravel开发-laravel-aws-lambda

    当我们把Laravel与AWS Lambda结合时,我们可以创建一种新型的、基于事件驱动的应用架构,这被称为“Laravel on AWS Lambda”。 **Laravel 开发** Laravel的核心特性包括其直观的MVC(模型-视图-控制器)架构、强大...

    基于AWSLambda持续集成工具LambCI.zip

    LambCI 是一款持续集成系统,在AWS Lambda上构建,并且集成了 Slack 。目前已经支持大部分主流语言了,比如:C,Java,Python, Nodejs,Go,Rust,Ruby 等等。类似 Jenkins, Travis 和 CircleCI。使用效果图:特性:...

    高清彩版 AWS Lambda

    高清彩版 AWS Lambda

    AWS Lambda In Action Chapter2

    AWS Lambda是亚马逊网络服务(AWS)提供的一种计算服务,属于无服务器架构的核心产品之一。AWS Lambda 允许用户运行代码,而无需管理或提供服务器。Lambda 函数是事件驱动的,这意味着它们可以由 AWS 服务的特定事件...

    chrome-aws-lambda:适用于AWS Lambda和Google Cloud Functions的Chromium Binary

    chrome-aws-lambda 适用于AWS Lambda和Google Cloud功能的Chromium Binary安装npm install chrome-aws-lambda --save-prod 这将附带适当的二进制文件,用于的最新稳定版本(通常会在几天内更新)。 您还需要安装相应...

    AWS Lambda In Action Chapter1

    亚马逊网络服务(AWS)中的Lambda服务是云计算领域中的一项重要创新,它允许开发者专注于编写代码,而无需担心服务器管理等底层基础设施问题。AWS Lambda是一个计算服务,它运行代码并为应用程序管理计算资源,提供...

Global site tag (gtag.js) - Google Analytics