As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Suas ElastiCache instâncias da Amazon foram projetadas para serem acessadas por meio de uma EC2 instância da Amazon.
Se você lançou sua ElastiCache instância em uma Amazon Virtual Private Cloud (Amazon VPC), você pode acessar sua ElastiCache instância de uma instância da Amazon na EC2 mesma Amazon VPC. Ou, usando o emparelhamento de VPC, você pode acessar sua ElastiCache instância de uma Amazon EC2 em uma Amazon VPC diferente.
Se você lançou sua ElastiCache instância no EC2 Classic, você permite que a EC2 instância acesse seu cluster concedendo ao grupo de EC2 segurança da Amazon associado à instância acesso ao seu grupo de segurança de cache. Por padrão, o acesso a um cluster é restrito à conta que o executou.
Concessão de acesso ao cluster ou grupo de replicação
Você lançou seu cluster em EC2 -VPC
Se você lançou seu cluster em uma Amazon Virtual Private Cloud (Amazon VPC), você pode se conectar ao seu ElastiCache cluster somente a partir de uma EC2 instância da Amazon que esteja sendo executada na mesma Amazon VPC. Nesse caso, você precisará conceder entrada de rede ao cluster.
nota
Se você estiver usando Local Zones (Zonas locais), verifique se você as habilitou. Para obter mais informações, consulte Habilitar zonas locais. Ao fazer isso, sua VPC é estendida para essa zona local e sua VPC tratará a sub-rede como qualquer sub-rede em qualquer outra zona de disponibilidade, e gateways relevantes, tabelas de rota e outras considerações de grupos de segurança serão ajustados automaticamente.
Para conceder entrada na rede de um grupo de segurança da Amazon VPC para um cluster
Faça login no AWS Management Console e abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/
. -
No painel de navegação, em Network & Security, escolha Security Groups.
-
Na lista de grupos de segurança, escolha o de segurança para a sua Amazon VPC. A menos que você tenha criado um grupo de segurança para ElastiCache uso, esse grupo de segurança será denominado padrão.
-
Escolha a guia Inbound e faça o seguinte:
-
Selecione Editar.
-
Escolha Adicionar regra.
-
Na coluna Tipo, escolha Regra TCP personalizada.
-
Na caixa Port range, digite o número da porta para o nó do cluster. Esse número deve ser o mesmo que você especificou quando você executou o cluster. A porta padrão do Memcached é
11211
A porta padrão do Valkey e Redis OSS é6379
. -
Na caixa Fonte, escolha Qualquer lugar que tenha o intervalo de portas (0.0.0.0/0) para que qualquer EC2 instância da Amazon que você iniciar na sua Amazon VPC possa se conectar aos seus nós. ElastiCache
Importante
Abrir o ElastiCache cluster para 0.0.0.0/0 não o expõe à Internet porque ele não tem endereço IP público e, portanto, não pode ser acessado de fora da VPC. No entanto, o grupo de segurança padrão pode ser aplicado a outras EC2 instâncias da Amazon na conta do cliente, e essas instâncias podem ter um endereço IP público. Se eles estiverem executando algo na porta padrão, esse serviço poderá ser exposto involuntariamente. Portanto, recomendamos criar um grupo de segurança de VPC que será usado exclusivamente pelo ElastiCache. Para obter mais informações, consulte Grupos de segurança personalizados.
-
Escolha Salvar.
-
Quando você executa uma EC2 instância da Amazon em sua Amazon VPC, essa instância poderá se conectar ao seu ElastiCache cluster.
Acessando ElastiCache recursos de fora AWS
A Amazon ElastiCache é um AWS serviço que fornece armazenamento de valores-chave na memória baseado em nuvem. O serviço foi projetado para ser acessado exclusivamente de dentro AWS. No entanto, se o ElastiCache cluster estiver hospedado em uma VPC, você poderá usar uma instância de Network Address Translation (NAT) para fornecer acesso externo.
Requisitos
Os seguintes requisitos devem ser atendidos para que você possa acessar seus ElastiCache recursos de fora AWS:
-
O cluster deve residir em uma VPC e ser acessado por meio de uma instância NAT (Conversão de endereços de rede). Não existem exceções para esse requerimento.
-
A instância NAT deve ser executada na mesma VPC que o cluster.
-
A instância NAT deve ser iniciada em uma sub-rede pública separada do cluster.
-
Um endereço IP elástico (EIP) deve ser associado à instância NAT. O recurso de encaminhamento de porta de iptables é usado para encaminhar uma porta na instância NAT à porta do nó de cache na VPC.
Considerações
As seguintes considerações devem ser mantidas em mente ao acessar seus recursos do ElastiCache de fora do ElastiCache.
-
Os clientes se conectam ao EIP e à porta de cache da instância NAT. O encaminhamento de porta na instância NAT direciona o tráfego ao nó do cluster de cache apropriado.
-
Se um nó de cluster for adicionado ou substituído, as regras de iptables precisarão ser atualizadas para refletir essa alteração.
Limitações
Essa abordagem deve ser usada somente para fins de teste e desenvolvimento. Ela não é recomendada para uso em produção devido às seguintes limitações:
-
A instância NAT está atuando como um proxy entre clientes e vários clusters. A adição de um proxy afeta o desempenho do cluster de cache. O impacto aumenta com o número de clusters de cache que você está acessando por meio da instância NAT.
-
O tráfego dos clientes para a instância NAT não é criptografado. Portanto, você deve evitar o envio de dados confidenciais através da instância NAT.
-
A instância NAT acrescenta a sobrecarga de manter outra instância.
-
A instância NAT serve como um único ponto de falha. Para obter informações sobre como configurar o NAT de alta disponibilidade na VPC, consulte Alta disponibilidade para instâncias NAT da Amazon VPC: um exemplo
.
Como acessar ElastiCache recursos de fora AWS
O procedimento a seguir demonstra como se conectar aos seus ElastiCache recursos usando uma instância NAT.
Estas etapas assumem o seguinte:
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
Em seguida, você precisa da NAT na direção oposta:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.55
Você também precisa habilitar o encaminhamento de IP, que permanece desabilitado por padrão:
sudo sed -i 's/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sudo sysctl --system
-
Você está acessando um cluster Memcached com:
-
Endereço IP: 10.0.1.230
-
Porta Memcached padrão: 11211
-
Grupo de segurança: *10\.0\.0\.55*
-
-
Você está acessando um cluster do Valkey ou Redis OSS com:
-
Endereço IP: 10.0.1.230
-
Porta padrão: 6379
-
Grupo de segurança: sg-bd56b7da
-
AWS endereço IP da instância — sg-bd56b7da
-
-
Seu cliente confiável possui o endereço IP 198.51.100.27.
-
Sua instância NAT possui o endereço IP elástico 203.0.113.73.
-
Sua instância NAT tem o security group sg-ce56b7a9.
Para se conectar aos seus ElastiCache recursos usando uma instância NAT
-
Crie uma instância NAT na mesma VPC que o seu cluster de cache, mas em uma sub-rede pública.
Por padrão, o assistente da VPC iniciará um tipo de nó cache.m1.small. Você deve selecionar um tamanho de nó conforme as suas necessidades. Você deve usar o EC2 NAT AMI para poder acessar ElastiCache de fora AWS.
Para obter informações sobre como criar uma instância NAT, consulte Instâncias NAT no Guia do usuário da AWS VPC.
-
Crie regras de security group para o cluster de cache e a instância NAT.
O grupo de segurança da instância NAT e a instância do cluster devem ter as seguintes regras:
-
Duas regras de entrada
-
Com o Memcached, a primeira regra é permitir conexões TCP de clientes confiáveis com cada porta de cache reencaminhada da instância NAT (11211 a 11213).
-
Com Valkey e Redis OSS, a primeira regra é permitir conexões TCP de clientes confiáveis com cada porta de cache reencaminhada da instância NAT (6379 a 6381).
-
Uma segunda regra para permitir acesso SSH a clientes confiáveis.
Grupo de segurança da instância NAT: regras de entrada com o Memcached Tipo Protocolo Intervalo de portas Origem Regra personalizada de TCP TCP 11211-11213 198.51.100.27/32 SSH TCP 22 198.51.100.27/32 Grupo de segurança da instância NAT: regras de entrada com Valkey ou Redis OSS Tipo Protocolo Intervalo de portas Origem Regra personalizada de TCP TCP 6379-6380 198.51.100.27/32 SSH TCP 22 203.0.113.73/32 -
-
Com o Memcached, uma regra de saída para permitir conexões TCP para a porta de cache (11211).
Grupo de segurança da instância NAT: regra de saída Tipo Protocolo Intervalo de portas Destino Regra personalizada de TCP TCP 11211 sg-ce56b7a9 (grupo de segurança da instância do cluster) -
Com o Valkey ou Redis OSS, uma regra de saída para permitir conexões TCP para a porta de cache (6379).
Grupo de segurança da instância NAT: regra de saída Tipo Protocolo Intervalo de portas Destino Regra personalizada de TCP TCP 6379 sg-ce56b7a9 (grupo de segurança da instância do cluster) -
Com o Memcached, uma regra de entrada para o grupo de segurança do cluster que permite conexões TCP da instância NAT com a porta de cache (11211).
Grupo de segurança da instância do cluster: regra de entrada Tipo Protocolo Intervalo de portas Origem Regra personalizada de TCP TCP 11211 sg-bd56b7da (grupo de segurança NAT) -
Com o Valkey ou Redis OSS, uma regra de entrada para o grupo de segurança do cluster que permite conexões TCP da instância NAT com a porta de cache (6379).
Grupo de segurança da instância do cluster: regra de entrada Tipo Protocolo Intervalo de portas Origem Regra personalizada de TCP TCP 6379 sg-bd56b7da (grupo de segurança do cluster)
-
-
Valide as regras.
-
Confirme se o cliente confiável é capaz de fazer SSH para a instância NAT.
-
Confirme se o cliente confiável pode se conectar ao cluster a partir da instância NAT.
-
-
Memcached
Adicione uma regra iptables à instância NAT.
Uma regra iptables deve ser adicionada à tabela NAT para cada nó no cluster para encaminhar a porta de cache da instância NAT ao nó do cluster. Um exemplo pode ser o seguinte:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211
O número da porta deve ser exclusivo para cada nó no cluster. Por exemplo, se estiver trabalhando com um cluster Memcached de três nós usando as portas 11211 - 11213, as regras seriam as seguintes:
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
Confirme se o cliente confiável pode se conectar ao cluster.
O cliente confiável deve se conectar ao EIP associado à instância NAT e à porta de cluster correspondente ao nó de cluster apropriado. Por exemplo, a string de conexão para o PHP pode ser o seguinte:
$memcached->connect( '203.0.113.73', 11211 ); $memcached->connect( '203.0.113.73', 11212 ); $memcached->connect( '203.0.113.73', 11213 );
Um cliente telnet também pode ser usado para verificar a conexão. Por exemplo:
telnet 203.0.113.73 11211 telnet 203.0.113.73 11212 telnet 203.0.113.73 11213
Valkey ou Redis OSS
Adicione uma regra iptables à instância NAT.
Uma regra iptables deve ser adicionada à tabela NAT para cada nó no cluster para encaminhar a porta de cache da instância NAT ao nó do cluster. Um exemplo pode ser o seguinte:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379
O número da porta deve ser exclusivo para cada nó no cluster. Por exemplo, se estiver trabalhando com um cluster do Redis OSS de três nós usando as portas 6379 a 6381, as regras seriam as seguintes:
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
Confirme se o cliente confiável pode se conectar ao cluster.
O cliente confiável deve se conectar ao EIP associado à instância NAT e à porta de cluster correspondente ao nó de cluster apropriado. Por exemplo, a string de conexão para o PHP pode ser o seguinte:
redis->connect( '203.0.113.73', 6379 ); redis->connect( '203.0.113.73', 6380 ); redis->connect( '203.0.113.73', 6381 );
Um cliente telnet também pode ser usado para verificar a conexão. Por exemplo:
telnet 203.0.113.73 6379 telnet 203.0.113.73 6380 telnet 203.0.113.73 6381
-
Salve a configuração iptables.
Salve as regras depois de testá-las e verificá-las. Se você estiver usando uma distribuição Linux baseada no Redhat (como o Amazon Linux), execute o seguinte comando:
service iptables save
Tópicos relacionados
Os tópicos a seguir podem ser de seu interesse.