我有一個 Amazon Redshift 叢集,但無法連線它。我想知道如何解決此問題。
簡短描述
連線逾時錯誤通常會導致 Amazon Redshift 叢集發生問題。您會收到類似下列內容的錯誤訊息:
「無法連線到伺服器: 連線逾時
伺服器是否在主機「example.123456789.us-east-1.redshift.amazonaws.com」 (255.255.255.255) 上執行並接受
連接埠 5439 上的 TCP/IP 連線?」
若要解決此問題,請對位於公有或私有子網路中的叢集完成下列疑難排解步驟。
解決方法
我的叢集位於公有子網路中,但無法從網際網路存取
符合下列條件時可從網際網路存取 Redshift 叢集:
- 您已開啟可公開存取的叢集設定。
- 您已在公有子網路中佈建叢集。
- 叢集的安全群組包含傳入規則,允許來源 IP 地址或 CIDR 區塊至叢集的連接埠號碼的連線。
**注意:**在完成下列步驟之前,請確定 Amazon 虛擬私有雲端 (VPC) 已連線網際網路閘道。
在叢集中開啟可公開存取設定:
- 開啟 Amazon Redshift 主控台。
- 選擇叢集。
- 選取要立連線的叢集。
- 選擇動作。
- 選擇修改可公開存取的設定。
- 勾選開啟可公開存取方塊。
- (選用) 選取彈性 IP 地址。
- 選擇儲存變更。
我的叢集位於私有子網路中,我無法從本機電腦連線到它
您有兩個選項可將叢集連線到本機電腦:
- 將叢集的子網路設為公有。
- 使用 Amazon Redshift 查詢編輯器 v2。
將叢集的子網路設為公有
完成下列步驟:
- 開啟 Amazon Redshift 主控台。
- 選擇叢集。
- 選取要立連線的叢集。
- 選擇組態標籤以開啟叢集屬性頁面。
- 選擇檢視 VPC 以開啟 Amazon VPC 主控台。
- 在導覽窗格中,選擇路由表。
- 選取與叢集所在子網路關聯的路由表。
- 選擇編輯。
- 選擇新增路由。
對於 IPv4 流量:在目的地欄位中,輸入您要提供存取權的 CIDR 範圍。在目標 欄位中,選取網際網路閘道 ID。
對於 IPv6 流量:在目的地欄位中,輸入 :: /0。在目標 欄位中,選取網際網路閘道 ID。
- 選擇儲存。
使用 Amazon Redshift 查詢編輯器 v2
若要在不變更網路設定的情況下連線到 Redshift 叢集,請使用查詢編輯器 v2。遵循連線到 Amazon Redshift 資料庫中的指示進行操作。
我無法從位於不同 VPC 中的 Amazon EC2 執行個體存取我的叢集
在 VPC 之間建立 VPC 對等互連。這允許兩個 VPC 透過私有 IP 地址彼此通訊。
-
遵循建立和接受 VPC 對等互連的步驟進行操作。
**注意:**如果 VPC 位於相同的 AWS 帳戶中,請確保 IPv4 CIDR 區塊不會重疊。
-
更新兩個路由表。
-
更新您的安全群組以參考對等 VPC 群組。
-
在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上,使用聯網公用程式測試 VPC 對等互連。下列範例使用 SourceForge 網站上的 netcat:
nc -zv HOSTNAME PORT
如果 VPC 對等互連成功,您會收到類似下列範例的輸出:
$ nc -zv example.123456789.us-east-1.redshift.amazonaws.com 5439
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif en0
src xx.xxx.xxx.xx port 53396
dst xx.xxx.xxx.xxx port 5439
rank info not available
TCP aux info available
Connection to example.123456789.us-east-1.redshift.amazonaws.com port 5439 [tcp/*] succeeded!
相關資訊
授權存取叢集
管理 VPC 中的叢集
使用 VPC 對等互連
使用路由表