Acessando seu ElastiCache cluster ou grupo de replicação - Amazon ElastiCache

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á.

Acessando seu ElastiCache cluster ou grupo de replicação

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 (AmazonVPC), você pode acessar sua ElastiCache instância a partir de uma EC2 instância da Amazon na mesma AmazonVPC. Ou, usando o VPC peering, você pode acessar sua ElastiCache instância de uma Amazon EC2 em outra AmazonVPC.

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 (AmazonVPC), você pode se conectar ao seu ElastiCache cluster somente a partir de uma EC2 instância da Amazon que esteja sendo executada na mesma AmazonVPC. 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, você VPC é estendido para essa zona local e você VPC tratará a sub-rede como qualquer sub-rede em qualquer outra zona de disponibilidade, e os gateways, tabelas de rotas e outras considerações de grupos de segurança relevantes serão ajustados automaticamente.

Para conceder a entrada de rede de um grupo de VPC segurança da Amazon para um cluster
  1. Faça login no AWS Management Console e abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em Network & Security, escolha Security Groups.

  3. Na lista de grupos de segurança, escolha o grupo de segurança para sua AmazonVPC. A menos que você tenha criado um grupo de segurança para ElastiCache uso, esse grupo de segurança será denominado padrão.

  4. Escolha a guia Inbound e faça o seguinte:

    1. Selecione a opção Editar.

    2. Escolha Adicionar regra.

    3. Na coluna Tipo, escolha TCPRegra personalizada.

    4. 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 para Memcached é 11211 A porta padrão para Valkey e Redis é. OSS 6379

    5. 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 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 do. 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 VPC de Segurança que será usado exclusivamente por ElastiCache. Para obter mais informações, consulte Grupos de segurança personalizados.

    6. Escolha Salvar.

Quando você executa uma EC2 instância da Amazon em sua AmazonVPC, 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 umVPC, 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 de Network Address Translation (NAT). Não existem exceções para esse requerimento.

  • A NAT instância deve ser executada da VPC mesma forma que o cluster.

  • A NAT instância deve ser executada em uma sub-rede pública separada do cluster.

  • Um endereço IP elástico (EIP) deve estar associado à NAT instância. O recurso de encaminhamento de portas do iptables é usado para encaminhar uma porta na NAT instância para a porta do nó de cache dentro do. VPC

Considerações

As considerações a seguir devem ser lembradas ao acessar seus ElastiCache recursos de fora ElastiCache.

  • Os clientes se conectam à EIP porta de cache da NAT instância. O encaminhamento de portas na NAT instância encaminha o tráfego para o nó de 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 NAT instância 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 NAT instância.

  • O tráfego dos clientes para a NAT instância não é criptografado. Portanto, você deve evitar o envio de dados confidenciais por meio da NAT instância.

  • A NAT instância adiciona a sobrecarga de manter outra instância.

  • A NAT instância serve como um único ponto de falha. Para obter informações sobre como configurar a alta disponibilidade NAT emVPC, consulte Alta disponibilidade para VPC NAT instâncias da Amazon: um exemplo.

Como acessar ElastiCache recursos de fora AWS

O procedimento a seguir demonstra como se conectar aos seus ElastiCache recursos usando uma NAT instância.

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 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 OSS cluster Valkey ou Redis 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 NAT instância tem o endereço IP elástico 203.0.113.73.

  • Sua NAT instância tem o grupo de segurança sg-ce56b7a9.

Para se conectar aos seus ElastiCache recursos usando uma NAT instância
  1. Crie uma NAT instância da VPC mesma forma que seu cluster de cache, mas em uma sub-rede pública.

    Por padrão, o VPC assistente iniciará um tipo de nó cache.m1.small. Você deve selecionar um tamanho de nó conforme as suas necessidades. Você deve usar EC2 NAT AMI para poder acessar ElastiCache de fora AWS.

    Para obter informações sobre como criar uma NAT instância, consulte NATInstâncias no Guia AWS VPC do usuário.

  2. Crie regras de grupo de segurança para o cluster e a NAT instância de cache.

    O grupo de segurança da NAT instância e a instância do cluster devem ter as seguintes regras:

    • Duas regras de entrada

      • Com o Memcached, a primeira regra é permitir TCP conexões de clientes confiáveis para cada porta de cache encaminhada da NAT instância (11211 - 11213).

      • Com o Valkey e o RedisOSS, a primeira regra é permitir TCP conexões de clientes confiáveis para cada porta de cache encaminhada da NAT instância (6379 - 6381).

      • Uma segunda regra para permitir o SSH acesso a clientes confiáveis.

      NATgrupo de segurança de instância - regras de entrada com Memcached
      Tipo Protocolo Intervalo de portas Origem
      TCPRegra personalizada TCP 11211-11213 198.51.100.27/32
      SSH TCP 22 198.51.100.27/32
      NATgrupo de segurança de instâncias — regras de entrada com Valkey ou Redis OSS
      Tipo Protocolo Intervalo de portas Origem
      TCPRegra personalizada 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 TCP conexões com a porta de cache (11211).

      NATgrupo de segurança da instância - regra de saída
      Tipo Protocolo Intervalo de portas Destination (Destino)
      TCPRegra personalizada TCP 11211 sg-ce56b7a9 (grupo de segurança da instância do cluster)
    • Com Valkey ou RedisOSS, uma regra de saída para permitir TCP conexões com a porta de cache (6379).

      NATgrupo de segurança da instância - regra de saída
      Tipo Protocolo Intervalo de portas Destination (Destino)
      TCPRegra personalizada 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 TCP conexões da NAT instância à porta de cache (11211).

      Grupo de segurança da instância do cluster: regra de entrada
      Tipo Protocolo Intervalo de portas Origem
      TCPRegra personalizada TCP 11211 sg-bd56b7da (Grupo de segurança) NAT
    • Com Valkey ou RedisOSS, uma regra de entrada para o grupo de segurança do cluster que permite TCP conexões da NAT instância à porta de cache (6379).

      Grupo de segurança da instância do cluster: regra de entrada
      Tipo Protocolo Intervalo de portas Origem
      TCPRegra personalizada TCP 6379 sg-bd56b7da (grupo de segurança do cluster)
  3. Valide as regras.

    • Confirme se o cliente confiável é capaz de SSH acessar a NAT instância.

    • Confirme se o cliente confiável é capaz de se conectar ao cluster a partir da NAT instância.

  4. Memcached

    Adicione uma regra iptables à NAT instância.

    Uma regra iptables deve ser adicionada à NAT tabela para cada nó no cluster para encaminhar a porta de cache da NAT instância para o 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 à NAT instância e à porta do cluster correspondente ao nó do cluster apropriado. Por exemplo, a cadeia de conexão para PHP pode ter a seguinte aparência:

    $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 à NAT instância.

    Uma regra iptables deve ser adicionada à NAT tabela para cada nó no cluster para encaminhar a porta de cache da NAT instância para o 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 OSS cluster Redis 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 à NAT instância e à porta do cluster correspondente ao nó do cluster apropriado. Por exemplo, a cadeia de conexão para PHP pode ter a seguinte aparência:

    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
  5. 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 da

Os tópicos a seguir podem ser de seu interesse.