View a markdown version of this page

端對端設定自訂網域名稱 - Amazon Managed Streaming for Apache Kafka

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

端對端設定自訂網域名稱

本主題會逐步解說自訂網域名稱的叢集端組態。網路層 (Network Load Balancer、DNS 和 TLS 憑證) 是您擁有的先決條件,詳細資訊請參閱 AWS 大數據部落格上的設定 Amazon MSK 叢集的自訂網域名稱。建立聯網後,下列步驟會涵蓋叢集端設定。

套用組態之前,請先驗證聯網

當您套用 時custom.advertised.listeners,您的自訂網域名稱會取代覆寫接聽程式的預設地址。您的聯網層必須就地並經過驗證,才能套用組態。如果用戶端無法解析自訂網域,則會失去連線。

步驟 1:將自訂網域新增至您的 Amazon MSK 組態

建立或更新包含 custom.advertised.listeners 屬性的 Amazon MSK 組態,以符合您在 Network Load Balancer 上佈建的主機名稱和連接埠。對於連接埠為 9001–9003 的 Network Load Balancer 前方的三個代理程式 IAM 叢集,請將 屬性放入檔案中。

custom.advertised.listeners=CLIENT_IAM://b-{broker_id}.example.com:9000+{broker_id}

然後建立組態,將檔案做為伺服器屬性傳遞。

aws kafka create-configuration \ --name "custom-domain-iam" \ --description "Custom advertised listeners for CLIENT_IAM" \ --server-properties fileb://custom-domain-config.txt

使用 fileb://(而非 file://),讓 將檔案 AWS CLI 讀取為位元組,並對檔案進行 base64 編碼。由於{broker_id}大括號,內嵌傳遞值是脆弱的。將{broker_id}常值保留在 檔案中,因為 Amazon MSK 會在套用時解析每個代理程式。回應會傳回LatestRevision.Revision您在下一個步驟中使用的組態 Arn和 。

步驟 2:套用組態

使用 主控台UpdateClusterConfiguration、 AWS CLI AWS CloudFormation、 AWS CDK 或 Terraform,將組態套用至您的叢集。這是您已用於代理程式組態變更的相同工作流程。

aws kafka update-cluster-configuration \ --cluster-arn your-cluster-arn \ --configuration-info arn=configuration-arn,revision=revision \ --current-version current-cluster-version

使用 DescribeCluster操作來尋找叢集的目前版本。叢集版本不是簡單的整數。

Amazon MSK 會在套用任何內容之前同步驗證組態,因此格式不正確的值永遠不會到達您的代理程式。Amazon MSK 拒絕 HTTP 400 錯誤的無效組態。如需錯誤範例,請參閱 自訂網域名稱組態錯誤。修正回報的問題並重新套用。

步驟 3:追蹤推展

aws kafka describe-cluster-operation-v2 \ --cluster-operation-arn operation-arn

接受組態後,Amazon MSK 會透過滾動重新啟動來套用組態。等待操作報告 UPDATE_COMPLETE。如果報告 UPDATE_FAILED,代理程式就無法套用變更。推展停止在該代理程式,其餘代理程式會保留其先前的組態,而且您可以修正組態並重新套用以復原。

步驟 4:驗證

透過列出使用接聽程式身分驗證設定的用戶端主題,確認用戶端可以透過自訂網域連線。

如果您可以透過自訂網域端點列出主題,用戶端會透過您的自訂網域成功連線。如果 操作已回報UPDATE_COMPLETE但用戶端無法連線,則叢集端組態是正確的,但您的聯網層可能需要注意。請檢查以下內容:

  • 網路路徑:確認用戶端正在使用的代理程式和連接埠存在 Network Load Balancer 接聽程式、目標群組和安全群組規則,以及可以從用戶端網路存取 Network Load Balancer。

  • DNS 解析:確認自訂網域從 Apache Kafka 用戶端執行的每個網路解析至 Network Load Balancer。

  • 憑證:確認 Network Load Balancer 的 TLS 憑證涵蓋已解析的代理程式主機名稱 (透過通用名稱或主體替代名稱),以及用戶端信任 CA (私有 CA 的根和中繼)。

擴展和代理程式替換

當您擴展叢集或在自動修復期間取代代理程式時,Amazon MSK 會自動將組態套用至新的代理程式。Amazon MSK {broker_id}會解析代理程式的 ID,叢集端不需要手動步驟。

注意

新增任何新代理程式對應的 Network Load Balancer 接聽程式、目標群組和 DNS 記錄。網路層不會自動擴展。

移除自訂網域

若要還原至預設 Amazon MSK 產生的地址,請從 Amazon MSK 組態中移除 custom.advertised.listeners 屬性,並使用 套用更新後的組態UpdateClusterConfiguration。Amazon MSK 會執行滾動重新啟動,代理程式會還原為公告其原始地址。在移除自訂網域組態之前,請確定您的用戶端可以到達原始 Amazon MSK 產生的地址。