透過 共用您的服務 AWS PrivateLink - Amazon Virtual Private Cloud

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

透過 共用您的服務 AWS PrivateLink

您可以託管自己的 AWS PrivateLink 受電服務,稱為端點服務,並與其他 AWS 客戶共用。

概要

下圖顯示如何 AWS 與其他 AWS 客戶共用 中託管的服務,以及這些客戶如何連接到您的服務。作為服務提供者,您可以在 VPC 中建立 Network Load Balancer 作為服務前端。然後,您可以在建立 VPC 端點服務組態時選取此負載平衡器。您可以對特定 AWS 主體授予權限,以便他們連接到您的服務。作為服務消費者,客戶可建立界面 VPC 端點,它可在他們從其 VPC 中選取的子網與您的端點服務之間建立連線。負載平衡器會收到來自服務消費者的請求,並將它們傳送至託管您服務的目標。

服務消費者會連線至服務提供者託管的端點服務。

為了實現低延遲和高可用性,建議您在至少兩個可用區域提供您的服務。

DNS 主機名稱

當服務提供者建立 VPC 端點服務時, 會為服務 AWS 產生端點特定的 DNS 主機名稱。這些名稱具有下列語法:

endpoint_service_id.region.vpce.amazonaws.com

以下是 us-east-2 區域中 VPC 端點服務的 DNS 主機名稱範例:

vpce-svc-071afff70666e61e0.us-east-2.vpce.amazonaws.com

當服務消費者建立介面 VPC 端點時,我們會建立區域名稱和區域 DNS 名稱,服務消費者可使用它們與端點服務通訊。區域名稱具有下列語法:

endpoint_id.endpoint_service_id.service_region.vpce.amazonaws.com

分區名稱具有下列語法:

endpoint_id-endpoint_zone.endpoint_service_id.service_region.vpce.amazonaws.com

私有 DNS

服務提供者也可以關聯其端點服務的私有 DNS 名稱,以便服務消費者可以繼續使用其現有 DNS 名稱來存取服務。如果服務提供者將私有 DNS 名稱與其端點服務相關聯,則服務消費者可以為其介面端點啟用私有 DNS 名稱。如果服務提供者未啟用私有 DNS,服務消費者可能需要更新其應用程式,才能使用 VPC 端點服務的公有 DNS 名稱。如需詳細資訊,請參閱管理 DNS 名稱

子網路與可用區域

您的端點服務可在您為 Network Load Balancer 啟用的可用區域中使用。為了實現高可用性和彈性,我們建議您在至少兩個可用區域中啟用負載平衡器、在每個啟用的區域部署 EC2 執行個體,以及向負載平衡器目標群組註冊這些執行個體。

您可以啟用跨區域負載平衡,做為在多個可用區域中託管端點服務的替代方案。不過,如果託管端點服務的區域失敗,消費者將無法從兩個區域存取端點服務。此外,當您為 Network Load Balancer 啟用跨區域負載平衡時,會收取 EC2 資料傳輸費用。

取用者可以在端點服務可用的可用區域中建立介面 VPC 端點。我們在消費者為 VPC 端點設定的每個子網路中建立端點網路介面。我們會根據 VPC 端點的 IP 地址類型,從其子網路中將 IP 地址指派給每個端點網路介面。當請求使用 VPC 端點服務的 區域端點時,我們會選擇運作狀態良好的端點網路介面,使用循環配置演算法在不同可用區域中的網路介面之間進行切換。接著,我們會將流量解析為所選端點網路介面的 IP 地址。

如果 VPC 端點的使用案例最好將流量保持在相同的可用區域中,則取用者可以使用區域端點。

跨區域存取

服務提供者可以在一個區域中託管服務,並在一組支援的區域中提供此服務。服務消費者在建立端點時選取服務區域。

許可
  • 在預設情況下,IAM 實體沒有許可在多個區域中提供端點服務,或跨區域存取端點服務。若要授予跨區域存取所需的許可,IAM 管理員可以建立允許僅限vpce:AllowMultiRegion許可動作的 IAM 政策。

  • 若要控制 IAM 實體在建立端點服務時可指定為支援區域的區域,請使用 ec2:VpceSupportedRegion條件金鑰。

  • 若要控制 IAM 實體在建立 VPC 端點時可指定為服務區域的區域,請使用 ec2:VpceServiceRegion條件金鑰。

考量事項
  • 服務提供者必須先選擇加入 區域,才能將其新增為端點服務的支援區域。

  • 您的端點服務必須可從其主機區域存取。您無法從一組支援的區域中移除主機區域。對於備援,您可以在多個區域中部署端點服務,並為每個端點服務啟用跨區域存取。

  • 服務消費者必須先選擇加入 區域,才能選擇它做為端點的服務區域。我們建議服務消費者盡可能使用區域內連線存取服務,而不是跨區域連線。區域內連線可提供更低的延遲和更低的成本。

  • 如果服務提供者從一組支援的區域中移除區域,服務消費者在建立新的端點時,無法選取該區域做為服務區域。請注意,這不會影響從使用此區域做為服務區域的現有端點存取端點服務。

  • 為了實現高可用性,供應商和消費者都應該使用至少兩個可用區域。請注意,跨區域存取不需要提供者和消費者使用相同的可用區域。

  • 透過跨區域存取, AWS PrivateLink 管理可用區域之間的容錯移轉。它不會管理跨區域的容錯移轉。

  • 具有易用 DNS 名稱 AWS Marketplace 的服務不支援跨區域存取。

  • Network Load Balancer 不支援跨區域存取,其具有針對 TCP 閒置逾時設定的自訂值。

  • UDP 分割不支援跨區域存取。

IP 地址類型

服務提供者可以透過 IPv4、IPv6、或者同時使用 IPv4 和 IPv6 向服務消費者提供其服務端點,即使其後端伺服器僅支援 IPv4。如果您啟用雙堆疊支援,現有消費者可以繼續使用 IPv4 存取您的服務,而新客戶可以選擇使用 IPv6 存取您的服務。

如果介面 VPC 端點支援 IPv4,則端點網路介面具有 IPv4 地址。如果介面 VPC 端點支援 IPv6,則端點網路介面具有 IPv6 地址。無法從網際網路連線端點網路介面的 IPv6 地址。如果您使用 IPv6 地址描述端點網路介面,請注意 denyAllIgwTraffic 已啟用。

為端點服務啟用 IPv6 的要求
  • 端點服務的 VPC 和子網必須具有相關聯的 IPv6 CIDR 區塊。

  • 端點服務的所有 Network Load Balancer 都必須使用雙堆疊 IP 地址類型。目標不需要支援 IPv6 流量。如果服務處理來自代理通訊協定第 2 版標頭的來源 IP 地址,則它必須處理 IPv6 地址。

為介面端點啟用 IPv6 的要求
  • 端點服務必須支援 IPv6 請求。

  • 介面端點的 IP 地址類型必須與介面端點的子網相容,如下所述:

    • IPv4 - 將 IPv4 地址指派給您的端點網路介面。只有當所有選取的子網都具有 IPv4 地址範圍時,才支援此選項。

    • IPv6 - 將 IPv6 地址指派給您的端點網路介面。只有當所有選取的子網都是 IPv6 子網時,才支援此選項。

    • Dualstack - 將 IPv4 和 IPv6 地址指派給您的端點網路介面。只有當所有選取的子網都具有 IPv4 和 IPv6 地址範圍時,才支援此選項。

介面端點的 DNS 記錄 IP 地址類型

介面端點支援的 DNS 記錄 IP 地址類型會決定我們建立的 DNS 記錄。介面端點的 DNS 記錄 IP 地址類型必須與介面端點的 IP 地址類型相容,如下所述:

  • IPv4 - 建立私有名稱、區域名稱和分區 DNS 名稱的 A 記錄。IP 地址類型必須為 IPv4 或者 Dualstack

  • IPv6 - 建立私有名稱、區域名稱和分區 DNS 名稱的 AAAA 記錄。IP 地址類型必須為 IPv6 或者 Dualstack

  • Dualstack - 建立私有名稱、區域名稱和分區 DNS 名稱的 A 和 AAAA 記錄。IP 地址類型必須為 Dualstack