選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

存取您的 ElastiCache 叢集或複寫群組

焦點模式
存取您的 ElastiCache 叢集或複寫群組 - Amazon ElastiCache

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

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

Amazon ElastiCache 執行個體設計為透過 Amazon EC2 執行個體來存取。

若您在 Amazon Virtual Private Cloud (Amazon VPC) 中啟動 ElastiCache 執行個體,您可以從同一個 Amazon VPC 中的 Amazon EC2 執行個體存取您的 ElastiCache 執行個體。或者,您可以透過使用 VPC 對等互連,從不同 Amazon VPC 中的 Amazon EC2 存取 ElastiCache 執行個體。

如果您在 EC2 Classic 中啟動了 ElastiCache 執行個體,則可透過授權讓與執行個體相關聯的 Amazon EC2 安全群組存取快取安全群組,允許 EC2 執行個體存取您的叢集。根據預設,僅有啟動叢集的帳戶才能存取該叢集。

授權存取您的叢集或複寫群組

您在 EC2-VPC 中啟動了叢集

如果您將叢集啟動到 Amazon Virtual Private Cloud (Amazon VPC) 中,則只能從在同一個 Amazon VPC 中執行的 Amazon EC2 執行個體連接至 ElastiCache 叢集。在此情況下,您需要授權透過網路輸入至叢集。

注意

如果您有使用 Local Zones,請確定已啟用。如需詳細資訊,請參閱啟用 Local Zones。如此一來,您的 VPC 會擴展到該本地區域,且您的 VPC 會將該子網路視為任何其他可用區域中的任何子網路,並自動調整相關閘道、路由表和其他安全群組考量事項。

授權從 Amazon VPC 安全群組透過網路輸入至叢集
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/ec2/:// 開啟 Amazon EC2 主控台。

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

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

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

    1. 選擇編輯

    2. 選擇新增規則

    3. Type (類型) 欄中,選擇 Custom TCP rule (自訂 TCP 規則)

    4. Port range (連接埠範圍) 方塊中,輸入要用於叢集節點的連接埠號碼。此號碼必須與您啟動叢集時指定的號碼相同。Memcached 的預設連接埠是 11211 Valkey 和 Redis OSS 的預設連接埠是 6379

    5. Source (來源) 方塊中,選擇具有埠範圍 (0.0.0.0/0) 的 Anywhere (隨處),讓任何您在 Amazon VPC 內啟動的 Amazon EC2 執行個體都能連接至 ElastiCache 節點。

      重要

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

    6. 選擇 Save (儲存)。

將 Amazon EC2 執行個體啟動至 Amazon VPC 中時,該執行個體就能連接至您的 ElastiCache 叢集。

從外部存取 ElastiCache 資源 AWS

Amazon ElastiCache 是一項 AWS 服務,可提供雲端型記憶體內金鑰值存放區。此服務的設計僅限於從內部存取 AWS。但是,若 ElastiCache 叢集託管在 VPC 內部,您可以使用網路位址轉譯 (NAT) 執行個體來提供外部存取。

要求

您必須符合以下需求,才能從 AWS外部存取 ElastiCache 資源:

  • 叢集必須位於 VPC 內,並且必須透過網路位址轉譯 (NAT) 執行個體存取。此需求沒有任何例外。

  • NAT 執行個體必須在與叢集相同的 VPC 內啟動。

  • NAT 執行個體必須在與叢集不同的公有子網路內啟動。

  • 彈性 IP 地址 (EIP) 必須與 NAT 執行個體建立關聯。iptable 的網路埠轉遞功能會用於將 NAT 執行個體上的連接埠轉送至 VPC 內的快取節點連接埠。

考量事項

從 ElastiCache 外部存取您的 ElastiCache 資源時,應牢記以下幾點。

  • 用戶端會連線到 EIP 和 NAT 執行個體的快取連接埠。NAT 執行個體上的網路埠轉遞會將流量轉送至適當的快取叢集節點。

  • 若新增或取代叢集節點,iptable 規則便需要更新以反映此變更。

限制

此方法應僅用於測試及開發用途。基於下列限制,不建議用於生產用途:

  • NAT 執行個體的角色是用戶端與多個叢集間的代理。增加代理會影響快取叢集的效能。隨著您透過 NAT 執行個體存取的快取叢集增加,影響也會增加。

  • 從用戶端到 NAT 執行個體的流量未經過加密。因此,建議您避免透過 NAT 執行個體傳送敏感性資料。

  • NAT 執行個體會增加維持另一個執行個體的額外負荷。

  • NAT 執行個體會做為故障的單一窗口。如需在 VPC 上設定高可用性 NAT 方式的資訊,請參閱 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

  • 您是透過以下設定存取 Memcached 叢集:

    • IP 地址 - 10.0.1.230

    • 預設 Memcached 連接埠 - 11211

    • 安全群組 - *10\.0\.0\.55*

  • 您正在使用下列方式存取 Valkey 或 Redis OSS 叢集:

    • IP 地址 - 10.0.1.230

    • 預設連接埠 – 6379

    • 安全群組 - sg-bd56b7da

    • AWS 執行個體 IP 地址 – sg-bd56b7da

  • 您信任的用戶端 IP 地址為 198.51.100.27

  • 您的 NAT 執行個體具有彈性 IP 地址 203.0.113.73

  • 您的 NAT 執行個體具有安全群組 sg-ce56b7a9

使用 NAT 執行個體連線到您的 ElastiCache 資源
  1. 在與您快取叢集相同的 VPC,但在不同的公有子網路內建立 NAT 執行個體。

    根據預設,VPC 精靈會啟動 cache.m1.small 節點類型。建議您根據需求選取節點大小。您必須使用 EC2 NAT AMI 才能從 AWS外部存取 ElastiCache。

    如需有關建立 NAT 執行個體的資訊,請參閱 AWS 《VPC 使用者指南》中的 NAT 執行個體

  2. 建立快取叢集和 NAT 執行個體的安全群組規則。

    NAT 執行個體安全群組和叢集執行個體應具有以下規則:

    • 兩個傳入規則

      • 使用 Memcached 時,第一個規則是允許從信任用戶端到從 NAT 執行個體轉送的每個快取連接埠的 TCP 連線 (11211 - 11213)。

      • 使用 Valkey 和 Redis OSS 時,第一個規則是允許從受信任用戶端到從 NAT 執行個體轉送的每個快取連接埠 (6379 - 6381) 的 TCP 連線。

      • 允許 SSH 存取信任用戶端的第二個規則。

      NAT 執行個體安全群組 - 使用 Memcached 的傳入規則
      Type 通訊協定 連接埠範圍 來源
      自訂 TCP 規則 TCP 11211-11213 198.51.100.27/32
      SSH TCP 22 198.51.100.27/32
      NAT 執行個體安全群組 - 使用 Valkey 或 Redis OSS 的傳入規則
      Type 通訊協定 連接埠範圍 來源
      自訂 TCP 規則 TCP 6379-6380 198.51.100.27/32
      SSH TCP 22 203.0.113.73/32
    • 使用 Memcached 時,允許 TCP 連線快取連接埠 (11211) 的傳出規則。

      NAT 執行個體安全群組 - 傳出規則
      Type 通訊協定 連接埠範圍 目的地
      自訂 TCP 規則 TCP 11211 sg-ce56b7a9 (叢集執行個體安全群組)
    • 使用 Valkey 或 Redis OSS 時,允許 TCP 連線快取連接埠 (6379) 的傳出規則。

      NAT 執行個體安全群組 - 傳出規則
      Type 通訊協定 連接埠範圍 目的地
      自訂 TCP 規則 TCP 6379 sg-ce56b7a9 (叢集執行個體安全群組)
    • 使用 Memcached 時,叢集安全群組的傳入規則,允許從 NAT 執行個體到快取連接埠 (11211) 的 TCP 連線。

      叢集執行個體安全群組 - 傳入規則
      Type 通訊協定 連接埠範圍 來源
      自訂 TCP 規則 TCP 11211 sg-bd56b7da (NAT 安全群組)
    • 使用 Valkey 或 Redis OSS 時,叢集安全群組的傳入規則,允許從 NAT 執行個體到快取連接埠 (6379) 的 TCP 連線。

      叢集執行個體安全群組 - 傳入規則
      Type 通訊協定 連接埠範圍 來源
      自訂 TCP 規則 TCP 6379 sg-bd56b7da (叢集安全群組)
  3. 驗證規則。

    • 確認信任的用戶端能夠透過 SSH 連線到 NAT 執行個體。

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

  4. Memcached

    將 iptable 規則新增至 NAT 執行個體。

    iptable 規則必須新增到叢集中每個節點的 NAT 表,才能將來自 NAT 執行個體的快取連接埠轉送到叢集節點。範例看起來與以下內容相似:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211

    叢集中每個節點的連接埠號碼必須是唯一的。例如,若搭配連接埠 11211 到 11213 使用一個三節點 Memcached 叢集,規則看起來會與以下內容相似:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11212 -j DNAT --to 10.0.1.231:11211 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11213 -j DNAT --to 10.0.1.232:11211

    確認信任的用戶端能夠連線到叢集。

    信任的用戶端應會連線到與 NAT 執行個體相關聯的 EIP,以及對應到適當叢集節點的叢集連接埠。例如,PHP 的連接字串看起來類似如下:

    $memcached->connect( '203.0.113.73', 11211 ); $memcached->connect( '203.0.113.73', 11212 ); $memcached->connect( '203.0.113.73', 11213 );

    telnet 用戶端也能用於驗證連線。例如:

    telnet 203.0.113.73 11211 telnet 203.0.113.73 11212 telnet 203.0.113.73 11213

    Valkey 或 Redis OSS

    將 iptable 規則新增至 NAT 執行個體。

    iptable 規則必須新增到叢集中每個節點的 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
  5. 儲存 iptable 組態。

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

    service iptables save

相關主題

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

在本頁面

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。