ElastiCache 最佳實務和快取策略 - Amazon ElastiCache

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

ElastiCache 最佳實務和快取策略

您可以在下方找到 Amazon 的建議最佳實務 ElastiCache。遵循這些內容可改善快取的效能和可靠性。

TLS 已啟用雙堆疊 ElastiCache 叢集

ElastiCache 叢集啟用 TLS 時,叢集探索函數 cluster slotscluster shardscluster nodes 代表 Redis)config get cluster Memcached 傳回主機名稱,而非 IPs。然後,會使用主機名稱來取代 IPs 連接至 ElastiCache 叢集,並執行交TLS握。這表示用戶端不會受到 IP 探索參數的影響。對於TLS已啟用的叢集,IP Discovery 參數不會影響偏好的 IP 通訊協定。相反地,使用的 IP 通訊協定將取決於用戶端在解析DNS主機名稱時偏好的 IP 通訊協定。

Java 用戶端

從同時支援 IPv4和 的 Java 環境連線時IPv6,Java 預設會偏好IPv4而不是向IPv6後相容。不過,IP 通訊協定偏好設定可透過JVM引數設定。若要偏好 IPv4, JVM接受 -Djava.net.preferIPv4Stack=true和 偏好IPv6設定 -Djava.net.preferIPv6Stack=true。設定-Djava.net.preferIPv4Stack=true表示 JVM將不再進行任何IPv6連線。對於 Valkey 或 Redis OSS,這包括對其他非 Valkey 和非 Redis OSS 應用程式的應用程式。

主機層級偏好

一般而言,如果用戶端或用戶端執行階段不提供設定 IP 通訊協定偏好設定的組態選項,則在執行DNS解析時,IP 通訊協定將取決於主機的組態。根據預設,大多數主機偏好IPv6偏好 IPv4,但此偏好可在主機層級設定。這將影響來自該主機的所有DNS請求,而不僅僅是對 ElastiCache 叢集的請求。

Linux 主機

針對 Linux,可以透過修改 gai.conf 檔案,設定 IP 通訊協定偏好設定。您可以在 /etc/gai.conf 下找到 gai.conf 檔案。若沒有指定的 gai.conf,則應在 /usr/share/doc/glibc-common-x.xx/gai.conf 之下提供一個範例,可以複製到 /etc/gai.conf,且預設組態應取消註解。若要更新連線到 ElastiCache 叢集IPv4時偏好的組態,請將包含叢集CIDR的範圍優先順序更新IPs為高於預設IPv6連線的優先順序。預設IPv6連線的優先順序為 40。例如,假設叢集位於具有 172.31.0.0:0/16 CIDR 的子網路中,下面的組態會導致用戶端偏好與該叢集的IPv4連線。

label ::1/128 0 label ::/0 1 label 2002::/16 2 label ::/96 3 label ::ffff:0:0/96 4 label fec0::/10 5 label fc00::/7 6 label 2001:0::/32 7 label ::ffff:172.31.0.0/112 8 # # This default differs from the tables given in RFC 3484 by handling # (now obsolete) site-local IPv6 addresses and Unique Local Addresses. # The reason for this difference is that these addresses are never # NATed while IPv4 site-local addresses most probably are. Given # the precedence of IPv6 over IPv4 (see below) on machines having only # site-local IPv4 and IPv6 addresses a lookup for a global address would # see the IPv6 be preferred. The result is a long delay because the # site-local IPv6 addresses cannot be used while the IPv4 address is # (at least for the foreseeable future) NATed. We also treat Teredo # tunnels special. # # precedence <mask> <value> # Add another rule to the RFC 3484 precedence table. See section 2.1 # and 10.3 in RFC 3484. The default is: # precedence ::1/128 50 precedence ::/0 40 precedence 2002::/16 30 precedence ::/96 20 precedence ::ffff:0:0/96 10 precedence ::ffff:172.31.0.0/112 100

若需更多 gai.conf 的相關資訊,請前往 Linux 主頁

Windows 主機

Windows 主機的程序十分類似。針對 Windows 主機,您可以執行 netsh interface ipv6 set prefix CIDR_CONTAINING_CLUSTER_IPS PRECEDENCE LABEL。此操作與在 Linux 主機上修改 gai.conf 檔案的效果相同。

這將更新偏好設定政策,以偏好在指定CIDR範圍內透過IPv4連線IPv6進行連線。例如,假設叢集位於執行 172.31.0.0:0/16 的子網路中CIDRnetsh interface ipv6 set prefix ::ffff:172.31.0.0:0/112 100 15,則會導致下列優先順序表,這會導致用戶端在連線至叢集IPv4時更喜歡。

C:\Users\Administrator>netsh interface ipv6 show prefixpolicies Querying active state... Precedence Label Prefix ---------- ----- -------------------------------- 100 15 ::ffff:172.31.0.0:0/112 20 4 ::ffff:0:0/96 50 0 ::1/128 40 1 ::/0 30 2 2002::/16 5 5 2001::/32 3 13 fc00::/7 1 11 fec0::/10 1 12 3ffe::/16 1 3 ::/96