我有一个基础设施,包括VPC中的以下服务(除了S3和Transcoder,显然):
方案如下:
问题在于,由于RDS不可公开访问,因此lambda需要与RDS位于同一个VPC中才能允许连接。这也导致lambda函数中的通用Internet连接丢失,这意味着它无法访问Elastic Transcoder(因为它从VPC的角度来看是 out of of-VPC )。现在,我遇到了与S3类似的问题,但是通过向指向S3的VPC添加端点来解决这个问题相当容易,但是,Elastic Transcoder(或任何其他服务)没有这样的选择。事实上。)
我不想创建一个NAT网关,因为它对于这样一个无意义的东西来说非常昂贵。
所以简单的问题是:如何解决Lambda可以同时与RDS和Elastic Transcoder通信的问题?
P.S。:lambda角色包含可以访问Elastic Transcoder的*Job
答案 0 :(得分:2)
对我有用的一个选项是将我的功能分成2:
第一个功能是在VPC之外,可以访问公共互联网,因此可以访问Elastic Transcoder和S3(在您的情况下)
第二个功能可以访问VPC ,完全可以从VPC资源中获取所需内容。
所以关键是第一个函数将使用aws-sdk
调用第二个函数来从VPC获取内容而不创建NAT网关!
P.S。在VPC内部创建许多功能可能会导致意外的性能意外。以下是Lambda + VPC
的更多信息