Amazon EC2 執行個體 IP 定址 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon EC2 執行個體 IP 定址

Amazon EC2 和 Amazon VPC 同時支援 IPv4 和 IPv6 定址通訊協定。Amazon VPC 預設會使用 IPv4 定址通訊協定;您無法停用此行為。當您建立 VPC 時,必須指定 IPv4 CIDR 區塊 (私有 IPv4 地址的範圍)。您可以選擇將 IPv6 CIDR 區塊指派給 VPC,並將 IPv6 地址從該區塊指派給子網中的執行個體。

私有 IPv4 地址

私有 IPv4 地址是無法透過網際網路存取的 IP 地址。您可以在相同 VPC 的執行個體之間使用私有 IPv4 地址進行通訊。如需私有 IPv4 地址標準和規格的詳細資訊,請參閱 RFC 1918。我們會使用 DHCP 將私有 IPv4 地址配置給執行個體。

注意

您可以建立具有可公開路由 CIDR 區塊的 VPC,而此 CIDR 區塊不在 RFC 1918 所指定的私有 IPv4 地址範圍內。不過,基於本文件的目的,我們會將私有 IPv4 地址 (或「私有 IP 地址」) 參照為 VPC 之 IPv4 CIDR 範圍內的 IP 地址。

VPC 子網可以是下列其中一個類型:

VPC 子網可以是下列其中一個類型:

  • 僅限 IPv4 子網:您只能在已獲指派 IPv4 地址的這些子網中建立資源。

  • 僅限 IPv6 子網:您只能在已獲指派 IPv6 地址的這些子網中建立資源。

  • IPv4 和 IPv6 子網:您可以在已獲指派 IPv4 和 IPv6 地址的這些子網中建立資源。

當您將 EC2 執行個體啟動至僅限 IPv4 或雙堆疊 (IPv4 和 IPv6) 子網時,此執行個體會從子網的 IPv4 地址範圍接收主要私有 IP 地址。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 IP 定址。如果您未在啟動執行個體時指定主要私有 IP 地址,我們會在子網的 IPv4 範圍中選取可用 IP 地址。每個執行個體皆會有獲指派之主要私有 IPv4 地址的預設網路介面 (eth0)。您也可以指定其他私有 IPv4 地址 (稱為次要私有 IPv4 地址)。與主要私有 IP 地址不同,輔助私有 IP 地址可從原執行個體重新指派至別的執行個體。如需詳細資訊,請參閱 適用於 EC2 執行個體的多個 IP 地址

私有 IPv4 地址,無論是主要或次要地址,在執行個體停止和啟動時或休眠和啟動時都會維持與網路介面的關聯,而會在執行個體終止時予以釋出。

公有 IPv4 地址

公有 IP 地址是可從網際網路存取的 IPv4 地址。您可以使用公有地址,在執行個體與網際網路之間通訊。

當您在預設 VPC 中啟動執行個體時,預設會將公有 IP 地址指派給它。當您將執行個體啟動到非預設 VPC 時,子網的屬性可判定啟動到該子網的執行個體是否接收公有 IPv4 地址集區中的公有 IP 地址。根據預設,我們不會將公有 IP 地址指派給非預設子網中啟動的執行個體。

您可以控制您的執行個體是否接收公有 IP 地址,如下所示:

公有 IP 地址會從 Amazon 的公有 IPv4 地址集區指派給您的執行個體,而且與您的 AWS 帳戶不相關聯。取消公有 IP 地址與您執行個體的關聯後,會將之釋出回公有 IPv4 地址集區,且您將無法重複使用之。

在某些情況下,我們會從您的執行個體釋出公有 IP 位址,或指派新的 IP 位址:

  • 當您的執行個體停止、休眠或終止時,我們會釋出其公有 IP 地址。啟動您已停止或休眠的執行個體時,其會收到新的公有 IP 地址。

  • 當您將彈性 IP 地址與執行個體建立關聯時,我們會釋出該執行個體的公有 IP 地址。當您取消彈性 IP 地址與執行個體的關聯時,執行個體收到新的公有 IP 地址。

  • 如果釋放 VPC 中執行個體的公有 IP 地址,若有多個網路介面連接至執行個體,則不會收到新的公有 IP 地址。

  • 當您的執行個體具有與彈性 IP 地址相關聯的次要私有 IP 地址時,如果釋放該執行個體的公有 IP 地址,則執行個體不會接收新的公有 IP 地址。

如果您需要可建立和取消與執行個體之關聯的持久性公有 IP 地址,請改用彈性 IP 地址。

如果您使用動態 DNS 將現有 DNS 名稱映射至新執行個體的公有 IP 地址,則最多可能需要 24 個小時,IP 地址才會傳播到整個網際網路。因此,已終止的執行個體還會持續收到請求,而新的執行個體可能尚未開始接收流量。若要解決此問題,請使用彈性 IP 地址。您可以配置自己的彈性 IP 地址,並建立地址與您執行個體的關聯。如需更多詳細資訊,請參閱 彈性 IP 地址

注意
  • AWS 所有公用 IPv4 位址的費用,包括與執行中執行個體和彈性 IP 位址相關聯的公用 IPv4 位址。如需詳細資訊,請參閱 Amazon VPC 定價頁面中的公有 IPv4 地址

  • 透過公有 NAT IP 地址存取其他執行個體的執行個體,會根據其是否位在相同的區域,而收取地區或網際網路資料傳輸的費用。

公用 IPv4 位址最佳化

AWS 所有公用 IPv4 位址的費用,包括與執行中執行個體和彈性 IP 位址相關聯的公用 IPv4 位址。如需詳細資訊,請參閱 Amazon VPC 定價頁面中的公有 IPv4 地址

下列清單包含您可以採取的動作來最佳化您使用的公用 IPv4 位址數目:

  • 使用彈性負載平衡器負載平衡 EC2 執行個體的流量,並在指派給執行個體的主 ENI 上停用自動指派公有 IP。負載平衡器使用單一公用 IPv4 位址,因此可減少公用 IPv4 位址計數。您可能還想要合併現有的負載平衡器,以進一步減少公用 IPv4 位址計數。

  • 如果使用 NAT 閘道的唯一原因是將 SSH Connect 到私有子網路中的 EC2 執行個體進行維護或緊急情況,請考慮改用 EC2 執行個體連接端點。使用 EC2 執行個體 Connect 端點,您可以從網際網路連接到執行個體,而不需要執行個體擁有公有 IPv4 地址。

  • 如果 EC2 執行個體位於已分配公有 IP 地址的公有子網路中,請考慮將執行個體移至私有子網路、移除公有 IP 地址,並使用公有 NAT 閘道允許從 EC2 執行個體進行存取。使用 NAT 閘道需要考量成本。使用此計算方法來決定 NAT 閘道是否符合成本效益。您可以建立「Number of public IPv4 addresses帳 AWS 單成本與用量報表」來取得此計算所需的資料。

    NAT gateway per hour + NAT gateway public IPs + NAT gateway transfer / Existing public IP cost

    其中:

    • NAT gateway per hour = $0.045 * 730 hours in a month * Number of Availability Zones the NAT gateways are in

    • NAT gateway public IPs = $0.005 * 730 hours in a month * Number of IPs associated with your NAT gateways

    • NAT gateway transfer = $0.045 * Number of GBs that will go through the NAT gateway in a month

    • Existing public IP cost = $0.005 * 730 hours in a month * Number of public IPv4 addresses

    如果總數小於 1,則 NAT 閘道會比公用 IPv4 位址便宜。

  • 用於私下連線AWS PrivateLink至 AWS 由其他 AWS 帳戶託管的服務或服務,而非使用公用 IPv4 位址和網際網路閘道。

  • 您自己的 IP 地址範圍(BYOIP)帶到公共 IPv4 地址 AWS並使用該範圍,而不是使用亞馬遜擁有的公共 IPv4 地址。

  • 針對啟動至子網路的執行個體,關閉自動指派公用 IPv4 位址。建立子網路時,VPC 通常預設會停用此選項,但您應該檢查現有的子網路以確保已停用。

  • 如果您的 EC2 執行個體不需要公有 IPv4 地址,請檢查連接到執行個體的網路界面是否已停用自動指派公用 IP

  • 在私有子網路中 AWS Global Accelerator為 EC2 執行個體設定加速器端點,讓網際網路流量直接流向 VPC 中的端點,而不需要公有 IP 位址。您也可以將自己的位址帶到加速器的靜態 IP 位址, AWS Global Accelerator並使用您自己的 IPv4 位址。

彈性 IP 地址 (IPv4)

彈性 IP 地址是您可以配置給您帳戶的公有 IPv4 地址。您可以根據需要將其關聯,並將其與執行個體取消關聯。在您選擇釋放之前,它會分配給您的帳戶。如需彈性 IP 地址和其使用方式的詳細資訊,請參閱彈性 IP 地址

我們不支援 IPv6 的彈性 IP 地址。

IPv6 地址

您可以選擇建立 IPv6 CIDR 區塊與 VPC 的關聯,並建立 IPv6 CIDR 區塊與子網的關聯。VPC 的 IPv6 CIDR 區塊會自動從 Amazon 的 IPv6 地址集區指派;您無法自行選擇範圍。如需詳細資訊,請參閱 Amazon VPC 使用者指南 中的下列主題:

IPv6 地址是全域不重複的地址,可設定為維持在私有不公開的狀態,或可透過網際網路來連線。如果建立 IPv6 CIDR 區塊與 VPC 和子網的關聯,以及符合下列其中一項,則您的執行個體會收到 IPv6 地址:

  • 在啟動期間,您的子網會設定為自動將 IPv6 地址指派給執行個體。如需詳細資訊,請參閱修改子網的 IPv6 定址屬性

  • 在啟動期間,您將 IPv6 地址指派給您的執行個體。

  • 在啟動之後,您將 IPv6 地址指派給執行個體的主要網路介面。

  • 在啟動之後,您將 IPv6 地址指派給相同子網中的網路介面,並將網路介面連接至執行個體。

當您的執行個體在啟動期間收到 IPv6 地址時,會建立該地址與執行個體之主要網路介面 (eth0) 的關聯。您可以透過下列方式,管理執行個體主要網路介面 (eth0) 的 IPv6 位址:

  • 從網路介面指派和取消指派 IPv6 位址 您可指派給網路介面的 IPv6 地址數目以及您可連接至執行個體的網路介面數目,會根據執行個體類型而不同。如需詳細資訊,請參閱 每個執行個體類型每網路介面的 IP 地址

  • 啟用主要 IPv6 位址。主要 IPv6 位址可讓您避免中斷傳送至執行個體或 ENI 的流量。如需詳細資訊,請參閱 建立網路介面管理 IP 地址

IPv6 地址會在您停止和啟動或休眠和啟動執行個體時持續保留,並在您終止執行個體時予以釋放。若 IPv6 地址已經指派給另一個網路介面,您無法重新指派該 IPv6 地址 (您必須先將之取消指派)。

您可以藉由控制您子網路的路由,或是使用安全群組和網路 ACL 規則,控制是否可透過執行個體的 IPv6 位址連線至執行個體。如需更多資訊,請參閱《Amazon VPC 使用者指南》中的「網路間流量隱私權」。

如需預留 IPv6 地址範圍的詳細資訊,請參閱 IANA IPv6 Special-Purpose Address RegistryRFC4291

使用執行個體的 IPv4 地址

您可以在啟動執行個體時,將公有 IPv4 地址指派給該執行個體。您可以在主控台中透過 Instances (執行個體) 頁面或 Network Interfaces (網路介面) 頁面檢視您執行個體的 IPv4 地址。

檢視 IPv4 地址

您可以使用 Amazon EC2 主控台檢視執行個體的公有和私有 IPv4 地址。您也可以使用執行個體中繼資料,來從執行個體內判定執行個體的公有 IPv4 和私有 IPv4 地址。如需詳細資訊,請參閱 使用執行個體中繼資料

公有 IPv4 地址會顯示為主控台中網路介面的屬性,但會透過 NAT 映射至主要私有 IPv4 地址。因此,如果您檢查執行個體上網路介面的屬性 (例如,透過 ifconfig (Linux) 或 ipconfig (Windows)),則不會顯示公有 IPv4 地址。若要從執行個體判定執行個體的公有 IPv4 地址,請使用執行個體中繼資料。

使用命令行檢視執行個體的 IPv4 地址

您可以使用下列其中一個命令。如需關於這些命令列介面的詳細資訊,請參閱 存取 Amazon EC2

使用執行個體中繼資料判定執行個體的 IPv4 地址
  1. 連線到您的執行個體。如需詳細資訊,請參閱 Connect 至您的 EC2 執行個體

  2. 使用下列命令存取私人 IP 位址。

    IMDSv2
    [ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/local-ipv4
    IMDSv1
    [ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/local-ipv4
    Tools for Windows PowerShell
    PS C:\> Invoke-RestMethod http://169.254.169.254/latest/meta-data/local-ipv4
  3. 使用下列命令存取公用 IP 位址。如果建立彈性 IP 地址與執行個體的關聯,傳回的值即為彈性 IP 地址的值。

    IMDSv2
    [ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-ipv4
    IMDSv1
    [ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/public-ipv4
    Tools for Windows PowerShell
    PS C:\> Invoke-RestMethod http://169.254.169.254/latest/meta-data/public-ipv4

在啟動執行個體期間指派公有 IPv4 地址

每一個子網都會有一個屬性,以判定是否將公有 IP 地址指派至啟動到該子網的執行個體。非預設子網預設會將此屬性設定為 false,而預設子網會將此屬性設定為 true。當您啟動執行個體時,也可以使用公有 IPv4 定址功能控制是否將公有 IPv4 地址指派至執行個體;您可以覆寫子網之 IP 定址屬性的預設行為。公有 IPv4 地址會從 Amazon 的公有 IPv4 地址集區指派,並會指派給具有裝置索引 eth0 的網路介面。此功能取決於啟動執行個體時的特定條件。

考量事項
若要在使用主控台啟動執行個體期間指派公有 IPv4 地址

遵循程序啟動執行個體,當您設定 Network Settings (網路設定) 時,選擇選項以 Auto-assign Public IP (自動指派公有 IP)。

使用命令列啟用或停用公有 IP 定址功能

您可以使用下列其中一個命令。如需關於這些命令列介面的詳細資訊,請參閱 存取 Amazon EC2

  • 使用 --associate-public-ip-address--no-associate-public-ip-address 選項並搭配 run-instances 命令 (AWS CLI)

  • 透過New-EC2Instance指令使用-AssociatePublicIp參數 (AWS Tools for Windows PowerShell)

使用執行個體的 IPv6 地址

您可以檢視指派給執行個體的 IPv6 地址、將公有 IPv6 地址指派給執行個體,或從執行個體取消指派 IPv6 地址。您可以在主控台中透過 Instances (執行個體) 頁面或 Network Interfaces (網路介面) 頁面檢視這些地址。

檢視 IPv6 地址

您可以使用 Amazon EC2 主控台和執行個體中繼資料來檢視執行個體的 IPv6 地址。 AWS CLI

使用主控台檢視執行個體的 IPv6 地址
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選取實例。

  4. Networking (聯網) 標籤上,找出 IPv6 addresses (IPv6 地址)

使用命令行檢視執行個體的 IPv6 地址

您可以使用下列其中一個命令。如需關於這些命令列介面的詳細資訊,請參閱 存取 Amazon EC2

使用執行個體中繼資料檢視執行個體的 IPv6 地址
  1. 連線到您的 執行個體。如需詳細資訊,請參閱 Connect 至您的 EC2 執行個體

  2. 從中取得執行個體的 MAC 位址http://169.254.169.254/latest/meta-data/network/interfaces/macs/

  3. 使用下列命令來檢視 IPv6 位址。

    IMDSv2
    [ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s
    IMDSv1
    [ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s
    Tools for Windows PowerShell
    PS C:\> Invoke-RestMethod http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s

將 IPv6 地址指派給執行個體

如果已建立 VPC 和子網與 IPv6 CIDR 區塊的關聯,您可以在啟動期間或之後將 IPv6 地址指派給執行個體。IPv6 地址會從子網的 IPv6 地址範圍指派,並會指派給具有裝置索引 eth0 的網路介面。

若要在啟動執行個體期間指派公有 IPv6 地址

遵循程序啟動執行個體,當您設定 Network Settings (網路設定) 時,選擇選項以 Auto-assign IPv6 IP (自動指派 IPv6 IP)。

在啟動之後指派 IPv6 地址
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選取執行個體,然後選取 Actions (動作)Networking (聯網)Manage IP addresses (管理 IP 地址)

  4. 展開網路介面。在 IPv6 addresses (IPv6 地址) 下選擇 Assign new IP address (指派新 IP 地址)。輸入子網範圍中的 IPv6 地址,或將欄位保留空白,讓 Amazon 為您選擇 IPv6 地址。

  5. 選擇 Save (儲存)。

使用命令列指派 IPv6 地址

您可以使用下列其中一個命令。如需關於這些命令列介面的詳細資訊,請參閱 存取 Amazon EC2

從執行個體取消指派 IPv6 地址

您可以隨時從執行個體取消指派 IPv6 地址。

使用主控台從執行個體取消指派 IPv6 地址
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選取執行個體,然後選取 Actions (動作)Networking (聯網)Manage IP addresses (管理 IP 地址)

  4. 展開網路介面。在 IPv6 addresses (IPv6 地址) 下,選擇 IPv6 地址旁的 Unassign (取消指派)

  5. 選擇 Save (儲存)。

使用命令列從執行個體取消指派 IPv6 地址。

您可以使用下列其中一個命令。如需關於這些命令列介面的詳細資訊,請參閱 存取 Amazon EC2

EC2 執行個體主機名稱

建立 EC2 執行個體時, AWS 會為該執行個體建立主機名稱。如需主機名稱類型及其佈建方式的詳細資訊 AWS,請參閱Amazon EC2 執行個體主機名稱類型。Amazon 所提供的 DNS 伺服器可將 Amazon 提供的主機名稱解析為 IPv4 和 IPv6 地址。Amazon DNS 伺服器位於 VPC 網路範圍基礎加 2。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的 VPC 的 DNS 屬性

Link-local 地址是眾所周知不可路由的 IP 地址。Amazon EC2 使用來自 Link-local 地址空間的地址來提供只能從 EC2 執行個體存取的服務。這些服務不在執行個體上執行,而是在基礎主機上執行。當您存取這些服務的 Link-local 地址時,您正在與 Xen 虛擬化管理程序或 Nitro 控制器進行通訊。

Link-local 地址範圍
  • IPv4 – 169.254.0.0/16 (169.254.0.0 至 169.254.255.255)

  • IPv6 – fe80::/10

使用 link-local 地址存取的服務