本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
存取您的叢集或複寫群組
您的 Amazon ElastiCache 執行個體專為透過 Amazon 執行個EC2體存取而設計。
如果您在 Amazon Virtual Private Cloud(AmazonVPC)中啟動了 ElastiCache實 ElastiCache 例,則可以從同一 Amazon 中的 Amazon EC2 實例訪問您的實例VPC。或者,通過使用VPC對等互連,您可以從不同的 Amazon Amazon 訪問您EC2的 ElastiCache 實例。VPC
如果您在 C EC2 lassic 中啟動 ElastiCache 執行個體,您可以透過授予與EC2執行個體關聯的 Amazon EC2 安全群組存取快取安全群組,以允許執行個體存取您的叢集。根據預設,僅有啟動叢集的帳戶才能存取該叢集。
授權存取您的叢集或複寫群組
您已將叢集啟動至 EC2-VPC
如果您將叢集啟動到 Amazon Virtual Private Cloud (AmazonVPC),則只能從在同一 Amazon 中執行的 Amazon EC2 執行個體連接到 ElastiCache叢集VPC。在此情況下,您需要授權透過網路輸入至叢集。
注意
如果您有使用 Local Zones,請確定已啟用。如需詳細資訊,請參閱啟用 Local Zones。通過這樣做,您VPC將擴展到該本地區域,並VPC將子網視為任何其他可用區域中的任何子網絡以及相關的網關,路由表和其他安全組考慮。將自動調整。
將 Amazon VPC 安全群組的網路輸入授與叢集
登錄 AWS Management Console 並在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格中,在 Network & Security (網路與安全) 下,選擇 Security Groups (安全群組)。
-
從安全群組清單中,選擇 Amazon 的安全群組VPC。除非您建立了要 ElastiCache 使用的安全性群組,否則此安全性群組會命名為 default。
-
選擇 Inbound (傳入) 標籤,然後執行下列動作:
-
選擇編輯。
-
選擇新增規則。
-
在「類型」欄中,選擇「自訂TCP規則」。
-
在 Port range (連接埠範圍) 方塊中,輸入要用於叢集節點的連接埠號碼。此號碼必須與您啟動叢集時指定的號碼相同。 Redis
11211
的默認端口是OSS。6379
-
在「來源」方塊中,選擇具有連接埠範圍 (0.0.0.0/0) 的任何位置,以便您在 Amazon 內啟動的任何 Amazon EC2 執行個體都VPC可以連接到節點。 ElastiCache
重要
將 ElastiCache 叢集開放至 0.0.0.0/0 並不會將叢集公開給網際網路,因為它沒有公用 IP 位址,因此無法從外部存取叢集。VPC不過,預設安全群組可能會套用至客戶帳戶中的其他 Amazon EC2 執行個體,而且這些執行個體可能具有公用 IP 地址。如果他們正巧在預設連接埠上執行某些項目,就可能會意外公開該服務。因此,我們建議您建立僅供使用的VPC安全性群組 ElastiCache。如需詳細資訊,請參閱自訂安全群組。
-
選擇 Save (儲存)。
-
當您在 Amazon 中啟動 Amazon EC2 執行個體時VPC,該執行個體將能夠連接到您的 ElastiCache 叢集。
從外部存取 ElastiCache 資源 AWS
Amazon ElastiCache 是一項提供雲端式記憶體內鍵值存放區的 AWS 服務。該服務旨在專門從內部訪問 AWS。但是,如果 ElastiCache 叢集託管在一個內部VPC,您可以使用網路位址轉譯 (NAT) 執行個體來提供外部存取。
要求
您必須符合下列要求,才能從外部存取 ElastiCache 資源 AWS:
-
叢集必須位於一個中,VPC並可透過網路位址轉譯 (NAT) 執行個體存取。此需求沒有任何例外。
-
NAT執行個體必須在與叢集相VPC同的位置啟動。
-
NAT執行個體必須在與叢集分開的公用子網路中啟動。
-
彈性 IP 位址 (EIP) 必須與執行個NAT體相關聯。iptables 的連接埠轉送功能可用來將NAT執行個體上的連接埠轉送至中的快取節點連接埠。VPC
考量事項
從外部存取 ElastiCache 資源時,應牢記下列考量事項 ElastiCache。
-
用戶端會連線至執行個體的EIP和快取連接NAT埠。NAT執行個體上的連接埠轉送會將流量轉送至適當的快取叢集節點。
-
若新增或取代叢集節點,iptable 規則便需要更新以反映此變更。
限制
此方法應僅用於測試及開發用途。基於下列限制,不建議用於生產用途:
-
NAT執行個體充當用戶端和多個叢集之間的 Proxy。增加代理會影響快取叢集的效能。影響會隨著您透過NAT執行個體存取的快取叢集數量而增加。
-
從用戶端到NAT執行個體的流量未加密。因此,您應避免透過NAT執行個體傳送敏感資料。
-
該NAT實例增加了維護另一個實例的開銷。
-
NAT執行個體做為單一失敗點。如需如何NAT在上設定高可用性的詳細資訊VPC,請參閱 Amazon VPC NAT 執行個體的高可用性:範例
。
如何從外部訪問 ElastiCache 資源 AWS
下列程序示範如何使用NAT執行個體連線至 ElastiCache 資源。
這些步驟假設下列事項:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379
接下來,你需要NAT在相反的方向:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.55
您也需要啟用 IP 轉送 (預設為停用):
sudo sed -i 's/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sudo sysctl --system
-
您正在使用以下命令訪問 Redis OSS 集群:
-
IP 地址 - 10.0.1.230
-
默認紅色OSS端口-6379
-
安全群組 - sg-bd56b7da
-
AWS 執行個體的 IP 位址:
-
-
您信任的用戶端 IP 地址為 198.51.100.27。
-
您的NAT執行個體擁有彈性 IP 位址 203. 0.113.73。
-
您的NAT執行個體具有安全性群組。
使用NAT執行個體連線至 ElastiCache 資源
-
在與快取叢集相VPC同但位於公有子網路中的NAT執行個體。
依預設,VPC精靈會啟動快取 .m 1.small 節點類型。建議您根據需求選取節點大小。您必須使EC2NATAMI用才能 ElastiCache 從外部訪問 AWS。
若要取得有關建立NAT執行個體的資訊,請參閱 AWS VPC使用指南中的NAT執行個體
-
為快取叢集和NAT執行個體建立安全群組規則。
NAT執行個體安全性群組和叢集執行個體應具有下列規則:
-
兩個傳入規則
-
一個允許從受信任的客戶端TCP連接到從NAT實例轉發的每個緩存端口(6379-6381)。
-
第二個允許SSH訪問受信任的客戶端。
NAT執行個體安全群組-輸入規則Type 通訊協定 連接埠範圍 來源 自訂TCP規則 TCP 6379-6380 198.51.100.27/32 SSH TCP 22 203.0.113.73/32 -
-
允許TCP連線至快取連接埠的輸出規則 (6379)。
NAT執行個體安全群組-輸出規則Type 通訊協定 連接埠範圍 目的地 自訂TCP規則 TCP 6379 sg-ce56b7a9 (叢集執行個體安全群組) -
叢集安全性群組的輸入規則,允許從NAT執行個體TCP連線至快取連接埠 (6379)。
叢集執行個體安全群組 - 傳入規則Type 通訊協定 連接埠範圍 來源 自訂TCP規則 TCP 6379 sg-bd56b7da (叢集安全群組)
-
-
驗證規則。
-
確認受信任的用戶端能夠存SSH取NAT執行個體。
-
確認受信任的用戶端能夠從NAT執行個體連線到叢集。
-
-
將 iptables 規則新增至執行個NAT體。
必須將 iptables 規則新增至叢集中每個節點的NAT表格,才能將快取連接埠從NAT執行個體轉送至叢集節點。範例看起來與以下內容相似:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379
叢集中每個節點的連接埠號碼必須是唯一的。例如,如果使用連接埠 6379-6381 使用三個節點 Redis OSS 叢集,則規則如下所示:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379
-
確認信任的用戶端能夠連線到叢集。
受信任的用戶端應連線至與NAT執行個體EIP相關聯的,以及對應於適當叢集節點的叢集連接埠。例如,的連接字串PHP可能如下所示:
redis->connect( '203.0.113.73', 6379 ); redis->connect( '203.0.113.73', 6380 ); redis->connect( '203.0.113.73', 6381 );
telnet 用戶端也能用於驗證連線。例如:
telnet 203.0.113.73 6379 telnet 203.0.113.73 6380 telnet 203.0.113.73 6381
-
儲存 iptable 組態。
在測試及驗證過後儲存規則。如果您使用的是 Redhat 類型 Linux 發行版本 (例如 Amazon Linux),我們建議使用以下命令:
service iptables save
相關主題
下列主題可能可以提供額外的資訊。