![](/img/trans.png)
[英]Why can't an AWS lambda function inside a public subnet in a VPC connect to the internet?
[英]How to connect AWS Lambda function inside a VPC to public resources like DynamoDB?
我正在嘗試為ElasticCache啟用我的VPC lambda函數以訪問DynamoDB。 我知道,我需要設置一個NAT網關。 但是,我無法使其工作。 我的專用子網位於172.31。 。 范圍。
這些是我要執行的步驟:
- 創建IP范圍為10.0.0.0的公共子網。
- 在上述相同的IP范圍內創建一個公共VPC。
- 在公用VPC中創建公用Internet網關。
- 創建一個不是主路由表的公共路由表,並將公共子網附加到該表。 然后,將0.0.0.0/0的路由添加到上面創建的公共Internet網關。
- 在公共子網中創建NAT網關。 此NAT在10中獲得一個彈性IP和一個私有IP 。 。* 范圍。
現在,我有3個路由表,其中兩個用於我的公共子網(10.0.0.0),一個用於我的私有子網(172.31.0.0),這是我的私有VPC的一部分。
我的專用路由表的路由為0.0.0.0/0到我的專用Internet網關。
我想我需要更改此路由以指向我的公共NAT網關,但是我做不到,因為我的NAT的私有IP在10.0.0.0范圍內。 關於這一點,我感到困惑。 我嘗試在專用子網中創建NAT網關並將路由轉發給它,但它也無法正常工作。 我錯過了什么?
愚蠢,但是您是否有機會將默認VPC(172.31 ...)和您創建的VPC(10.0 ...)混在一起。 因此,如果您看到默認VPC的路由表,則實際上是默認子網的路由表,順便說一下!
我犯的錯誤是創建兩個VPC,一個用於私有子網,另一個用於公共子網。 除非啟用對等,否則AWS VPC無法相互通信。
起初,對於具有網絡背景的人來說,專用和公用子網的概念是模棱兩可的。 它實際上意味着的是邏輯子網,該子網將具有可從Internet(如Web服務器)訪問的資源以及諸如數據庫服務器(應受到Internet保護)的本地資源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.