阿里云Elasticsearch(簡稱ES)實例部分功能受新網絡架構限制無法應用,可通過PrivateLink+負載均衡實現阿里云ES與云資源(ECS、ENI、ECI類型等)或某IP地址下的網絡資源打通,解決云ES網絡私網互通問題。本文分別介紹通過CLB和PrivateLink實現阿里云ES與阿里云服務器資源私網互通,及通過阿里云NLB和PrivateLink實現阿里云ES集群間私網互通,您也可按照PrivateLink和負載均衡支持的場景自行應用。
實例私網連接是解決新網絡架構下X-Pack Watcher、reindex、LDAP和AD(Active Directory)身份認證等功能受限的唯一方案。
2020年10月及之后創建的實例處于新網絡架構下,支持實例私網連接。2020年10月之前創建的實例(包括金融云和政務云)處于舊網絡架構下,不支持實例私網連接。
阿里云ES PrivateLink應用場景
ES訪問外部網絡下的服務資源的場景,例如Watcher報警、LDAP、Active Directory等場景。
可配置阿里云ES與阿里云ECS私網打通,將阿里云ECS作為業務服務器或代理服務器實現網絡轉發,實現原理如下所示。
應用的具體場景、功能如下:
功能
場景說明
相關文檔
Watcher
阿里云ES的X-Pack功能支持依據查詢條件監測系統信息,對外提供報警服務。
阿里云ES安全特性
阿里云ES的X-Pack功能支持多種集群級別安全特性配置,例如:LDAP、用戶認證等。
自定義插件訪問外部詞庫
自定義插件動態訪問外部網絡詞庫。
跨集群reindex
通過跨集群reindex將自建ES數據寫入到阿里云ES。
兩個阿里云ES跨集群reindex遷移場景。兩個ES實例分別部署在VPC_1和VPC_2中,在VPC_1下的阿里云ES_1上配置實例私網連接,將VPC_1下的終端節點與VPC_2下的終端節點服務連接,實現兩個ES實例的私網連接,實現原理如下所示。
應用的具體場景、功能如下:
功能
場景說明
相關文檔
reindex
通過跨集群reindex將一個阿里云ES數據寫入到另一個阿里云ES 。
名詞解釋
通過PrivateLink實現私網訪問,您需要創建終端節點服務和終端節點。
名詞 | 描述 |
終端節點服務 | 終端節點服務是可以被其他VPC通過創建終端節點建立私網連接的服務,需要您手動創建相關的服務資源。 |
終端節點 | 終端節點與終端節點服務相關聯,可以建立通過VPC私網訪問外部服務的網絡連接,阿里云ES配置實例私網連接將自動在ES所處的網絡環境下創建終端節點。 |
通過CLB和PrivateLink實現阿里云ES與ECS私網連接
前提條件
已在VPC_1下創建阿里云ES實例,且ES實例須為2020年10月及之后創建。創建阿里云ES實例,請參見創建阿里云ES實例。
已在用戶VPC_2下創建ECS實例,并部署了相關應用,詳細信息請參見自定義購買實例。
說明ECS實例即后端服務器,主要接收通過負載均衡實例所轉發的請求。創建ECS時需要選擇支持PrivateLink的地域和可用區。PrivateLink支持的地域,請參見支持私網連接的地域和可用區。
阿里云ES、ECS、負載均衡實例需部署在同一地域下的同可用區中。
步驟一:創建并配置負載均衡實例
創建支持PrivateLink功能的負載均衡實例。
在實例管理頁面,單擊創建傳統型負載均衡。
在負載均衡SLB購買頁面配置實例,地域選擇阿里云ES實例所在地域,實例類型選擇私網,然后單擊立即購買,購買CLB實例。
更多信息,請參見創建和管理CLB實例。
配置負載均衡實例。
在實例管理頁面,單擊目標實例操作列下的監聽配置向導。
在負載均衡業務配置向導頁面,按需配置監聽信息和后端服務器信息,并進行健康檢查和配置審核。
步驟二:創建終端節點服務
實例私網連接功能將自動在ES所處的網絡環境下創建終端節點,僅需您在ECS所處的環境下手動創建終端節點服務。
在頂部菜單欄處,選擇要創建終端節點服務的地域。
終端節點服務需要與負載均衡實例在同一地域。
單擊創建終端節點服務。
在創建終端節點服務頁面,服務資源選擇已創建的負載均衡實例,按需配置其他參數,單擊確定創建,創建終端節點服務。
更多詳細信息,請參見創建終端節點服務。
步驟三:配置阿里云ES私網連接
- 登錄阿里云Elasticsearch控制臺。
- 在左側導航欄,單擊Elasticsearch實例。
- 進入目標實例。
- 在頂部菜單欄處,選擇資源組和地域。
- 在Elasticsearch實例中單擊目標實例ID。
在左側導航欄,選擇 。
在集群網絡設置區域,單擊配置實例私網連接右側的修改。
在配置實例私網連接面板,單擊添加私網連接。
在彈出的對話框中,選擇已創建的終端節點服務,完成其他配置后單擊確認。
在終端節點的操作列,單擊允許連接。
終端節點與終端節點服務連接成功后,終端節點連接狀態會變為已連接,表明您已經打通了ES集群VPC_1與用戶VPC_2。
(可選)查看終端節點域名。
您可以獲取終端節點域名用于其他服務的配置,例如Watcher、單點登錄和LDAP等。
在配置實例私網連接面板中,單擊目標終端節點ID。
在終端節點連接頁簽,單擊目標終端節點ID前的圖標,可查看終端節點對應的域名。
通過NLB和PrivateLink實現阿里云ES實例間私網互通
以下介紹通過NLB掛載ES_2實例的域名IP,將阿里云ES_1實例通過私網連接到阿里云ES_2實例,該場景常應用于因網絡架構限制導致網絡無法互通的兩個阿里云ES實例。
兩個ES實例連通后,您可以將ES_2中的數據遷移到了ES_1實例中。
阿里云NLB支持IP掛載,更多信息,請參見NLB功能特性。
前提條件
已創建相同地域和可用區下的兩個阿里云ES實例。
創建ES時需要選擇支持PrivateLink的地域和可用區。PrivateLink支持的地域,請參見支持私網連接的地域和可用區。
步驟一:創建網絡型負載均衡服務NLB
網絡型負載均衡NLB(Network Load Balancer)實例可以接收來自客戶端的請求,并按照監聽規則將請求分發至后端服務器。使用NLB服務,您需要創建一個NLB實例,并在實例中添加監聽和后端服務器。
創建NLB實例。
在實例頁面,單擊創建網絡型負載均衡。
在購買頁面配置實例信息。
地域選擇阿里云ES_2實例所在地域,實例網絡類型選擇私網,可用區選擇阿里云ES_2實例所在的可用區。
更多信息,請參見創建和管理NLB實例。
創建NLB服務器組。
每個服務器組均用于將客戶端的請求路由到一個或多個后端服務器。NLB會通過健康檢查來判斷后端服務器的業務可用性。在為NLB實例添加監聽時需要指定服務器組,監聽會使用已配置的協議和端口檢查客戶端的連接請求,并將流量轉發至相應的服務器組。
在服務器組頁面,單擊創建服務器組。
在彈出的對話框中,配置服務器組。
服務器組類型選擇IP類型,自定義服務器組名稱,ES_2實例對應的VPC。
NLB上添加ES_2實例作為后端服務。
在已經創建的服務器組中添加ES_2實例私網IP地址和端口。
通過終端ping獲取ES_2實例私網IP地址。
在目標服務器組的操作列上,單擊編輯后端服務器。
在后端服務器頁簽下,單擊添加IP。
將獲取的ES_2實例私網IP地址添加到后端服務器IP地址中,單擊下一步。
添加操作使用的ES端口,例如reindex需要使用9200端口通信。
單擊確定。
添加監聽。
在實例頁面,在目標NLB實例的操作列單擊創建監聽。
監聽協議選擇TCP,監聽端口輸入9200,單擊下一步。
服務器組選擇IP類型,并選擇已添加的后端服務器組,單擊下一步。
單擊提交。
步驟二:創建終端節點服務
實例私網連接功能將自動在ES所處的環境下創建終端節點,僅需您在另一個ES所處的環境下手動創建終端節點服務。
單擊創建終端節點服務。
在創建終端節點服務頁面,配置終端節點服務。
部分參數說明如下。更多信息,請參見創建NLB實例。
配置
說明
所屬地域
選擇與ES相同的地域。
服務資源類型
選擇網絡型負載均衡NLB。
選擇服務資源
已創建的NLB實例。
服務付費者
兩者都可以選擇。
單擊確定創建。
創建成功后可以在服務資源區域,看到創建的終端節點服務已經和NLB綁定了。
步驟三:阿里云ES實例上配置私網連接
在阿里云ES_1實例上配置私網連接,系統將自動在ES_1實例所處的網絡環境下創建與終端節點服務相連接的終端節點。
- 登錄阿里云Elasticsearch控制臺。
- 在左側導航欄,單擊Elasticsearch實例。
- 進入目標實例。
- 在頂部菜單欄處,選擇資源組和地域。
- 在Elasticsearch實例中單擊目標實例ID。
在左側導航欄,選擇 。
在集群網絡設置區域,單擊配置實例私網連接右側的修改。
在配置實例私網連接面板,單擊添加私網連接。
在彈出的對話框中,選擇已創建的終端節點服務,完成其他配置后單擊確認。
在終端節點的操作列,單擊允許連接。
終端節點與終端節點服務連接成功后,終端節點連接狀態會變為已連接,表明您已經打通了ES_1實例和ES_2實例。
(可選)查看終端節點域名。
您可以獲取終端節點域名后添加到白名單,用于其他服務的配置,例如Watcher、單點登錄和LDAP等。
在配置實例私網連接面板中,單擊目標終端節點ID。
在終端節點連接頁簽,單擊目標終端節點ID前的圖標,可查看終端節點對應的域名。
(可選)步驟四:通過reindex測試ES實例間的連通性
通過reindex將阿里云ES_2實例中的索引遷移到阿里云ES_1實例中,驗證ES_2實例和ES_1實例的網絡連通性。
在ES_1實例的YML文件中配置reindex白名單。
在ES_1實例詳情頁的左側導航欄,選擇
。在YML文件配置區域的右上角,單擊修改配置。
reindex.remote.whitelist: ["終端節點域名:9200"]
ES_2實例中已經準備了待遷移數據,在ES_1實例中創建索引后進行reindex遷移。
POST _reindex { "source": { "remote": { "host": "http://ep-bp1i4db71e6adaa29718-cn-hangzhou-i.epsrv-bp1fm3v8kc2qr2td6lrm.cn-hangzhou.privatelink.aliyuncs.com:9200", "username": "賬號", "password": "密碼" }, "index": "myindex" }, "dest": { "index": "myindex2" } }
類別
參數
說明
source
host
privatelink終端節點服務訪問地址,必須包含支持協議、終端節點域名和端口信息,例如
https://終端節點域名:9200
。username
可選參數。阿里云Elasticsearch實例的默認用戶名為elastic。
password
用戶對應的密碼。阿里云Elasticsearch實例的elastic用戶的密碼在創建實例時設定,如果忘記可進行重置。重置密碼的注意事項及具體操作,請參見重置實例訪問密碼。
index
遠程集群中的源索引。
query
通過查詢語法,指定待遷移的數據。詳細信息,請參見Reindex API。
dest
index
本地集群中的目標索引。
在ES_1實例中查看是否成功將ES_2實例中的數據遷移到了ES_1實例中。