存取您的叢集或複寫群組 - Amazon ElastiCache (雷迪OSS斯)

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

存取您的叢集或複寫群組

您的 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 安全群組的網路輸入授與叢集
  1. 登錄 AWS Management Console 並在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格中,在 Network & Security (網路與安全) 下,選擇 Security Groups (安全群組)

  3. 從安全群組清單中,選擇 Amazon 的安全群組VPC。除非您建立了要 ElastiCache 使用的安全性群組,否則此安全性群組會命名為 default

  4. 選擇 Inbound (傳入) 標籤,然後執行下列動作:

    1. 選擇編輯

    2. 選擇新增規則

    3. 在「類型」欄中,選擇「自訂TCP規則」。

    4. Port range (連接埠範圍) 方塊中,輸入要用於叢集節點的連接埠號碼。此號碼必須與您啟動叢集時指定的號碼相同。 Redis 11211 的默認端口是OSS6379

    5. 在「來源」方塊中,選擇具有連接埠範圍 (0.0.0.0/0) 的任何位,以便您在 Amazon 內啟動的任何 Amazon EC2 執行個體都VPC可以連接到節點。 ElastiCache

      重要

      將 ElastiCache 叢集開放至 0.0.0.0/0 並不會將叢集公開給網際網路,因為它沒有公用 IP 位址,因此無法從外部存取叢集。VPC不過,預設安全群組可能會套用至客戶帳戶中的其他 Amazon EC2 執行個體,而且這些執行個體可能具有公用 IP 地址。如果他們正巧在預設連接埠上執行某些項目,就可能會意外公開該服務。因此,我們建議您建立僅供使用的VPC安全性群組 ElastiCache。如需詳細資訊,請參閱自訂安全群組

    6. 選擇 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 資源
  1. 在與快取叢集相VPC同但位於公有子網路中的NAT執行個體。

    依預設,VPC精靈會啟動快取 .m 1.small 節點類型。建議您根據需求選取節點大小。您必須使EC2NATAMI用才能 ElastiCache 從外部訪問 AWS。

    若要取得有關建立NAT執行個體的資訊,請參閱 AWS VPC使用指南中的NAT執行個體

  2. 為快取叢集和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 (叢集安全群組)
  3. 驗證規則。

    • 確認受信任的用戶端能夠存SSH取NAT執行個體。

    • 確認受信任的用戶端能夠從NAT執行個體連線到叢集。

  4. 將 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
  5. 確認信任的用戶端能夠連線到叢集。

    受信任的用戶端應連線至與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
  6. 儲存 iptable 組態。

    在測試及驗證過後儲存規則。如果您使用的是 Redhat 類型 Linux 發行版本 (例如 Amazon Linux),我們建議使用以下命令:

    service iptables save

相關主題

下列主題可能可以提供額外的資訊。