Acesso ao seu cluster ou grupo de replicação do ElastiCache - 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á.

Acesso ao seu cluster ou grupo de replicação do ElastiCache

Suas instâncias do Amazon ElastiCache são projetadas para acesso por meio de uma instância do Amazon EC2.

Se você iniciou sua instância do ElastiCache em uma Amazon Virtual Private Cloud (Amazon VPC), poderá acessar sua instância do ElastiCache a partir de uma instância do Amazon EC2 na mesma Amazon VPC. Ou, usando o emparelhamento da VPC, você pode acessar sua instância do ElastiCache de um Amazon EC2 em uma Amazon VPC diferente.

Se você iniciou sua instância do ElastiCache no EC2-Classic, você permitirá que a instância do EC2 acesse seu cluster, concedendo ao grupo de segurança do Amazon EC2 associado acesso de instância ao seu grupo de segurança do 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ê iniciou seu cluster em EC2-VPC

Se você iniciou seu cluster em uma Amazon Virtual Private Cloud (Amazon VPC), poderá se conectar ao seu cluster do ElastiCache somente a partir de uma instância do Amazon EC2 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
  1. Faça login no AWS Management Console e abra o console do Amazon EC2 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 de segurança para a sua Amazon VPC. A menos que você tenha criado um grupo de segurança para uso com o ElastiCache, esse grupo de segurança será chamado de default.

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

    5. Na caixa Source (Fonte), escolha Anywhere (Qualquer lugar), que tem o intervalo de porta (0.0.0.0/0) para que qualquer instância do Amazon EC2 que você inicie na sua Amazon VPC possa se conectar aos seus nós do ElastiCache.

      Importante

      Abrir o cluster do ElastiCache para 0.0.0.0/0 não expõe o cluster à Internet, pois ele não possui um 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 instâncias do Amazon EC2 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.

    6. Escolha Salvar.

Quando você ativa uma instância do Amazon EC2 na sua Amazon VPC, essa instância poderá se conectar ao seu cluster do ElastiCache.

Acesso a recursos do ElastiCache de fora da AWS

O Amazon ElastiCache é um serviço da AWS que oferece armazenamento de chave-valor na memória com base na nuvem. O serviço foi projetado para ser acessado exclusivamente pela AWS. No entanto, se o cluster do ElastiCache estiver hospedado dentro de uma VPC, será possível usar uma instância da conversão de endereços de rede (NAT) para oferecer acesso externo.

Requisitos

Os seguintes requisitos devem ser atendidos para você acessar os recursos do ElastiCache fora da 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 considerações a seguir devem ser mantidas em mente durante o acesso aos recursos do ElastiCache por 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 recursos do ElastiCache por fora da AWS

O procedimento a seguir demonstra como se conectar aos recursos do ElastiCache 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

    • Endereço IP da instância da AWS: 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 recursos do ElastiCache usando uma instância NAT
  1. 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 a AMI NAT EC2 para conseguir acessar o ElastiCache por fora da AWS.

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

  2. 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 Destination (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 Destination (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)
  3. 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.

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