nternet 網關是一種橫向擴展、支持冗余且高度可用的 VPC 組件,可實現 VPC 中的實例與 Internet 之間的通信。因此它不會對網絡流量造成可用性風險或帶寬限制。
Internet 網關有兩個用途,一個是在 VPC 路由表中為 Internet 可路由流量提供目標,另一個是為已經分配了公有 IP 地址的實例執行網絡地址轉換 (NAT)。
啟用 Internet 訪問
要為 VPC 子網中的實例開啟 Internet 訪問,您必須執行以下操作:
-
將 Internet 網關連接到 VPC。
-
確保您的子網的路由表指向 Internet 網關。
-
確保您的子網中的實例具有公有 IP 地址或彈性 IP 地址。
-
確保您的網絡訪問控制和安全組規則允許相關流量在您的實例中流入和流出。
要使用 Internet 網關,子網的路由表必須包含將 Internet 綁定流量定向到該 Internet 網關的路由。您可以將路由范圍設定為路由表未知的所有目標 (0.0.0.0/0
),也可以將路由范圍設定為一個較小的 IP 地址范圍,例如,公司在 AWS 以外的公有終端節點的公有 IP 地址,或 VPC 以外的其他 Amazon EC2 實例的彈性 IP 地址。如果您的子網與包含指向 Internet 網關的路由的路由表相關聯,該子網就是所謂的公有子網。有關公有子網和私有子網的更多信息,請參閱VPC 和子網基礎知識。
要使公有子網中的實例能夠與 Internet 通信,該實例必須具有與實例上的私有 IP 地址相關聯的公有 IP 地址或彈性 IP 地址。實例只了解 VPC 和子網內定義的私有(內部)IP 地址空間。Internet 網關以邏輯方式代表您的實例提供一對一 NAT,這樣一來,當流量離開 VPC 子網並流向 Internet 時,回復地址字段將設置為實例的公有 IP 地址或彈性 IP 地址,而不是私有 IP 地址。相反,指定發往實例的公有 IP 地址或彈性 IP 地址的流量會先將其目標地址轉換為實例的私有 IP 地址,然后再傳輸到 VPC。
對默認和非默認 VPC 的 Internet 訪問
您的默認 VPC 帶有一個 Internet 網關,而且默認情況下,在默認子網內啟動的實例會獲得一個公有 IP 地址,除非您在啟動時指定了地址,或是您修改子網的公有 IP 地址屬性。因此,您在默認子網中啟動的實例可以自動與 Internet 通信。有關更多信息,請參閱 您的默認 VPC 和子網。
啟動至非默認子網中的實例不一定能夠與 Internet 通信,具體取決於您創建和配置 VPC 的方式。例如,如果您使用 VPC 向導創建 VPC,VPC 向導會根據您選擇的選項為 VPC 添加一個 Internet 網關並更新路由表,使您的實例就可以與 Internet 通信。有關使用 VPC 向導以創建有 Internet 網關的子網的更多信息,請參閱場景 1:帶單個公有子網的 VPC或場景 2:帶有公有子網和私有子網 (NAT) 的 VPC。默認情況下,在非默認子網中啟動的實例不會獲得公有 IP 地址(除非在啟動時特意分配一個,或是您修改子網的公有 IP 地址屬性),因此無法與 Internet 通信。有關在啟動時分配公有 IP 地址的詳細信息,請參閱在啟動時分配一個公有 IP 地址。有關如何修改子網公有 IP 尋址屬性的更多信息,請參閱修改您子網的公有 IP 尋址行為。
當您在 VPC 中添加新子網時,您必須為子網設置您需要的路由和安全性。
創建帶有 Internet 網關的 VPC
以下部分說明了如何手動創建一個公有子網來支持 Internet 訪問。
當您完成子網設置時,您的 VPC 便已如下圖所示配置。

創建子網
為您的 VPC 添加子網
-
打開 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/。
-
在導航窗格中,選擇 Subnets,然后選擇 Create Subnet。
-
在 Create Subnet 對話框中,選擇 VPC,選擇可用區,指定子網的 CIDR 范圍,然后選擇 Yes, Create。
有關子網的更多信息,請參閱您的 VPC 和子網。
連接 Internet 網關
創建 Internet 網關,並將其連接至您的 VPC
-
打開 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/。
-
在導航窗格中,選擇 Internet Gateways,然后選擇 Create Internet Gateway。
-
在 Create Internet Gateway 對話框中,您可以選擇命名您的 Internet 網關,然后選擇 Yes, Create。
-
選擇您剛剛創建的 Internet 網關,然后選擇 Attach to VPC。
-
在 Attach to VPC 對話框中,從列表中選擇您的 VPC,然后選擇 Yes, Attach。
創建自定義路由表
當您創建子網時,我們會自動將其與 VPC 的主路由表關聯。主路由表在默認情況下不會包含通往 Internet 網關的路徑。以下步驟為您演示如何創建自定義路由表,使其中有可以將目標為 VPC 外的數據流發送到 Internet 網關的路由,以及如何將自定義路由表與您的子網相關聯。
創建自定義路由表
-
打開 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/。
-
在導航窗格中,選擇 Route Tables,然后選擇 Create Route Table。
-
在 Create Route Table 對話框中,可以選擇命名您的路由表,選擇您的 VPC,然后選擇 Yes, Create。
-
選擇您剛剛創建的自定義路由表。詳細信息窗格中會顯示選項卡,以供您使用其路徑、關聯和路線傳播。
-
在 Routes 選項卡中,選擇 Edit,在 Destination 框中指定
0.0.0.0/0
,從 Target 列表中選擇 Internet 網關 ID,然后選擇 Save。 -
在 Subnet Associations 選項卡上,選擇 Edit,選中子網的 Associate 復選框,然后選擇Save。
有關路由表的更多信息,請參見路由表。
更新安全組規則
您的 VPC 帶有默認的安全組。您在 VPC 中啟動的每項實例都會自動與其默認安全組關聯。默認安全組的默認設置不允許來自 Internet 的任何入站數據流量,但允許通往 Internet 的所有出站數據流量。因此,為使您的實例能夠與 Internet 通信,您需要創建允許公用實例訪問 Internet 的新安全組。
創建新的安全組,並將其與您的實例關聯
-
打開 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/。
-
在導航窗格中,選擇 Security Groups,然后選擇 Create Security Group。
-
在“Create Security Group”對話框中,為您的安全組指定名稱和描述。從 VPC 列表中選擇您的 VPC 的 ID,然后選擇 Yes, Create。
-
選擇安全組。詳細信息窗格內會顯示此安全組的詳細信息,以及可供您使用入站規則和出站規則的選項卡。
-
在 Inbound Rules 選項卡上,選擇 Edit。選擇 Add Rule,然后填寫所需信息。例如,從Type (類型) 列表中選擇 HTTP 或 HTTPS,然后為 Source (源) 輸入
0.0.0.0/0
。完成此操作后,選擇 Save。 -
打開 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/。
-
在導航窗格中,選擇 Instances。
-
依次選擇實例、Actions、Networking 和 Change Security Groups。
-
在 Change Security Groups (更改安全組) 對話框中,清除當前所選安全組的復選框,然后選中一個新的復選框。選擇 Assign Security Groups。
有關安全組的更多信息,請參閱 您的 VPC 的安全組。
添加彈性 IP 地址
當您在子網中啟動實例之后,若您希望可以從 Internet 中訪問該實例,則必須為其分配一個 Internet.
Note
如果您在啟動過程中向您的實例分配了公有 IP 地址,則您的實例可從 Internet 進行訪問,您無需向它分配彈性 IP 地址。想要了解更多有關您實例的 IP 尋址的信息,請參閱 您的 VPC 中的 IP 地址。
使用控制台分配彈性 IP 地址並將其分配給一個實例
-
打開 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/。
-
在導航窗格中,選擇 Elastic IPs。
-
選擇 Allocate New Address。
-
選擇 Yes, Allocate。
Note
如果您的賬戶支持 EC2-Classic,請首先從 Network platform 列表中選擇 EC2-VPC。
-
從列表中選擇彈性 IP 地址,選擇 Actions,然后選擇 Associate Address。
-
在 Associate Address (關聯地址) 對話框的 Associate with (關聯對象) 列表中選擇 Instance (實例) 或 Network Interface (網絡接口),然后選擇實例或網絡接口 ID。從 Private IP address 列表中選擇要與彈性 IP 地址關聯的私有 IP 地址,然后選擇 Yes, Associate。
有關彈性 IP 地址的更多信息,請參閱彈性 IP 地址。
將 Internet 網關與您的 VPC 斷開
如果您不再需要通過 Internet 訪問在非默認 VPC 中啟動的實例,則可將 Internet 網關與 VPC 斷開。如果該 VPC 的某些實例具有關聯的彈性 IP 地址,則無法斷開 Internet 網關。
斷開 Internet 網關
-
打開 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/。
-
在導航窗格中,選擇 Elastic IPs。
-
依次選擇 IP 地址、Actions 和 Disassociate Address。選擇 Yes, Disassociate。
-
在導航窗格中,選擇 Internet Gateways。
-
選擇相應的 Internet 網關,然后選擇 Detach from VPC。
-
在 Detach from VPC 對話框中,選擇 Yes, Detach。
刪除 Internet 網關
若您不再需要某一 Internet 網關,則可將其刪除。您無法刪除仍與 VPC 關聯的 Internet 網關。
刪除 Internet 網關
-
打開 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/。
-
在導航窗格中,選擇 Internet Gateways。
-
選擇相應的 Internet 網關,然后選擇 Delete。
-
在 Delete Internet Gateway 對話框中,選擇 Yes, Delete。
API 和命令概覽
您可以使用命令行或 API 執行此頁面上所說明的任務。有關命令行接口的更多信息以及可用 API 操作的列表,請參閱訪問 Amazon VPC。
創建 Internet 網關
-
create-internet-gateway (AWS CLI)
-
New-EC2InternetGateway (適用於 Windows PowerShell 的 AWS 工具)
將 Internet 網關附加到 VPC
-
attach-internet-gateway (AWS CLI)
-
Add-EC2InternetGateway (適用於 Windows PowerShell 的 AWS 工具)
說明 Internet 網關
-
describe-internet-gateways (AWS CLI)
-
Get-EC2InternetGateway (適用於 Windows PowerShell 的 AWS 工具)
從 VPC 斷開 Internet 網關
-
detach-internet-gateway (AWS CLI)
-
Dismount-EC2InternetGateway (適用於 Windows PowerShell 的 AWS 工具)
刪除 Internet 網關
-
delete-internet-gateway (AWS CLI)
-
Remove-EC2InternetGateway (適用於 Windows PowerShell 的 AWS 工具)