Criação de um cluster do ElastiCache baseado em nós para Redis OSS
Estas são as ações únicas que você deve realizar para começar a criar um cluster baseado em nós do ElastiCache para Redis OSS.
Para obter mais informações sobre como configurar o ElastiCache, consulte Configuração do ElastiCache.
Tópicos
Etapa 1: criar um grupo de sub-redes
Antes de criar seu cluster, crie primeiro um grupo de sub-redes. Um grupo de sub-redes de cache é uma coleção de sub-redes que você pode querer designar aos seus clusters em uma VPC. Ao executar um cluster em uma VPC, é necessário selecionar um grupo de sub-redes de cache. Em seguida, o ElastiCache usa esse grupo de sub-rede de cache para atribuir endereços IP dentro dessa sub-rede a cada nó de cache do cluster.
Quando você criar um novo grupo de sub-redes, observe o número de endereços IP disponíveis. Se a sub-rede tiver muito poucos endereços IP livres, talvez haja um limite no que diz respeito ao número de nós adicionais que é possível acrescentar ao cluster. Para resolver esse problema, você pode atribuir uma ou mais sub-redes a um grupo de sub-redes para ter um número suficiente de endereços IP na zona de disponibilidade do seu cluster. Depois disso, você pode adicionar mais nós ao seu cluster.
Os procedimentos a seguir mostram como criar um grupo de sub-rede chamado mysubnetgroup (console) e a AWS CLI.
O procedimento a seguir mostra como criar um grupo de sub-redes (console).
Como criar um grupo de sub-redes (console)
-
Faça login no Console de Gerenciamento da AWS e abra o console do ElastiCache em https://console.aws.amazon.com/elasticache/
. -
Na lista de navegação, escolha Subnet Groups (Grupos de sub-redes).
-
Selecione Create Subnet Group (Criar grupo de sub-redes).
-
No assistente Create Subnet Group (Criar grupo de sub-redes), faça o seguinte. Quando estiver satisfeito com todas as configurações, clique em Yes, Create (Sim, criar).
-
Na caixa Name (Nome), digite um nome para o seu grupo de sub-redes.
-
Na caixa Description (Descrição), digite uma descrição para seu grupo de sub-redes.
-
Na caixa VPC ID (ID da VPC_, escolha a Amazon VPC que você criou.
-
Nas listas Availability Zone (Zona de disponibilidade) e Subnet ID (ID da sub-rede), escolha a zona de disponibilidade ou a Local Zone (Zona local) e o ID da sub-rede privada, e depois escolha Add (Adicionar).
-
-
Na mensagem de confirmação exibida, escolha Close (Fechar).
Seu novo grupo de sub-rede aparece na lista Subnet Groups (Grupos de sub-redes) do console do ElastiCache. Na parte inferior da janela, você pode escolher o grupo de sub-redes para ver detalhes, como todas as sub-redes associadas a esse grupo.
No prompt de comando, use o comando create-cache-subnet-group para criar um grupo de sub-redes.
Para Linux, macOS ou Unix:
aws elasticache create-cache-subnet-group \ --cache-subnet-group-namemysubnetgroup\ --cache-subnet-group-description"Testing"\ --subnet-idssubnet-53df9c3a
Para Windows:
aws elasticache create-cache-subnet-group ^ --cache-subnet-group-namemysubnetgroup^ --cache-subnet-group-description"Testing"^ --subnet-idssubnet-53df9c3a
Esse comando deve produzir um resultado semelhante ao seguinte:
{
"CacheSubnetGroup": {
"VpcId": "vpc-37c3cd17",
"CacheSubnetGroupDescription": "Testing",
"Subnets": [
{
"SubnetIdentifier": "subnet-53df9c3a",
"SubnetAvailabilityZone": {
"Name": "us-west-2a"
}
}
],
"CacheSubnetGroupName": "mysubnetgroup"
}
}Para obter mais informações, consulte o AWS CLI tópico create-cache-subnet-group.
Etapa 2: criar um cluster
Antes de criar um cluster para uso em produção, é óbvio que você precisa considerar como configurar o cluster para atender às suas necessidades de negócios. Esses problemas são abordados na seção Preparação de um cluster no ElastiCache. Para os propósitos deste exercício de introdução, você criará um cluster com o modo cluster desabilitado e poderá aceitar os valores de configuração padrão onde eles se aplicam.
O cluster que você criará estará ativo, e não em execução em uma sandbox. Você pagará as taxas de utilização padrão do ElastiCache pela instância até que a exclua. As cobranças totais serão mínimas (geralmente menos de um dólar) se você concluir o exercício descrito aqui em uma única sessão e excluir seu cluster quando terminar. Para obter mais informações sobre taxas de uso do ElastiCache, consulte Amazon ElastiCache
Seu cluster é iniciado em uma nuvem privada virtual (VPC) com base no serviço da Amazon VPC.
Criação de um cluster do Redis OSS (modo cluster desabilitado) (console)
Para criar um cluster do Redis OSS (modo de cluster desabilitado) usando o console do ElastiCache
-
Faça login no Console de gerenciamento da AWS e abra o console do Amazon ElastiCache em https://console.aws.amazon.com/elasticache/
. -
Na lista localizada no canto superior direito, escolha a região da AWS na qual você deseja executar esse cluster.
-
No painel de navegação, escolha Get started (Conceitos básicos).
Escolha Create VPC (Criar VPC) e siga as etapas em Creating a Virtual Private Cloud (VPC) (Criação de uma nuvem privada virtual (VPC)).
Na página do painel do ElastiCache, escolha cache Valkey ou cache Redis OSS. Para este exercício, escolheremos o cache Redis OSS e, em seguida, Criar cache Redis OSS.
-
Em Cluster settings (Configurações do cluster), faça o seguinte:
Selecione Configure and create a new cluster (Configurar e criar um novo cluster).
Em Cluster mode (Modo cluster), escolha Disabled (Desabilitado).
-
Para o Cluster info (Informações sobre o cluster), insira um valor para Name (Nome).
-
(Opcional) Insira um valor para Description (Descrição).
Em Location (Local):
Assim que o status do seu cluster for available (disponível), você poderá conceder acesso ao Amazon EC2 a ele, conectar-se a ele e começar a usá-lo. Para obter mais informações, consulte Etapa 3. Autorizar o acesso ao cluster e Etapa 4: Conectar-se ao nó de um cluster.
Importante
Assim que seu cluster se tornar disponível, você será cobrado por cada hora ou hora parcial em que ele estiver ativo, mesmo que você não o esteja usando ativamente. Para interromper as cobranças aplicáveis para esse cluster, você deve excluí-lo. Consulte Exclusão de um cluster no ElastiCache.
exemplo
O código da CLI a seguir cria um cluster Redis OSS (modo cluster desabilitado) sem réplicas.
Para Linux, macOS ou Unix:
aws elasticache create-cache-cluster \ --cache-cluster-idmy-cluster\ --cache-node-typecache.r4.large\ --engineredis\ --num-cache-nodes1\ --snapshot-arnsarn:aws:s3:::my_bucket/snapshot.rdb
Para Windows:
aws elasticache create-cache-cluster ^ --cache-cluster-idmy-cluster^ --cache-node-typecache.r4.large^ --engineredis^ --num-cache-nodes1^ --snapshot-arnsarn:aws:s3:::my_bucket/snapshot.rdb
Para trabalhar com o modo de cluster habilitado, consulte os seguintes tópicos:
Para usar o console, consulte Criação de um cluster do Valkey ou Redis OSS (modo cluster habilitado) (console).
Para usar a AWS CLI, consulte Criação de um cluster do Valkey ou Redis OSS (modo cluster habilitado) (AWS CLI).
Etapa 3: autorizar o acesso ao cluster
Esta seção supõe que você esteja familiarizado com a execução e a conexão com instâncias do Amazon EC2. Para obter mais informações, consulte o Guia de conceitos básicos do Amazon EC2.
Todos os clusters do ElastiCache foram criados para serem acessados a partir de uma instância do Amazon EC2. O cenário mais comum é acessar um cluster do ElastiCache a partir de uma instância do Amazon EC2 na mesma Amazon Virtual Private Cloud (Amazon VPC), o que será o caso para esse exercício.
Por padrão, o acesso de rede ao seu cluster é limitado à conta que foi usada para criá-lo. Antes de poder se conectar a um cluster a partir de uma instância do EC2, você deve autorizar a instância do EC2 para acessar o cluster. As etapas necessárias dependem de se você iniciou seu cluster no EC2-VPC ou no EC2-Classic.
O caso de uso mais comum é quando uma aplicação implantada em uma instância do EC2 precisa se conectar a um cluster na mesma VPC. A maneira mais simples de gerenciar o acesso entre instâncias do EC2 e clusters na mesma VPC é fazer o seguinte:
-
Crie um grupo de segurança de VPC para o seu cluster. Esse security group pode ser usado para restringir o acesso às instâncias do cluster. Por exemplo, é possível criar uma regra personalizada para esse grupo de segurança que permite o acesso TCP usando a porta atribuída ao cluster quando você o criou e um endereço IP que será usado para acessar o cluster.
A porta padrão dos clusters e grupos de replicação Redis OSS é
6379.Importante
Os grupos de segurança do Amazon ElastiCache apenas são aplicáveis a clusters que não estejam sendo executados em um ambiente Amazon Virtual Private Cloud (VPC). Se você estiver executando em uma Amazon Virtual Private Cloud, os Grupos de segurança não estarão disponíveis no painel de navegação do console.
Se você estiver executando seus nós do ElastiCache em uma Amazon VPC, controlará o acesso aos seus clusters com grupos de segurança da Amazon VPC, que são diferentes de grupos de segurança do ElastiCache. Para obter mais informações sobre como usar o ElastiCache em uma Amazon VPC, consulte Segurança do Amazon VPCs e do ElastiCache
-
Crie um grupo de segurança de VPC para suas instâncias do EC2 (servidores Web e de aplicativos). Esse grupo de segurança pode, se necessário, permitir o acesso à instância do EC2 da Internet através da tabela de rotas da VPC. Por exemplo, você pode definir regras nesse grupo de segurança para permitir o acesso TCP à instância do EC2 pela porta 22.
-
Crie regras personalizadas no security group para o seu cluster que permitam conexões do security group que você criou para suas instâncias do EC2. Isso permitiria que qualquer membro de grupo de segurança acessasse os clusters.
nota
Se você estiver planejando usar Uso de zonas locais com o ElastiCache, verifique se você as habilitou. Quando você criar um grupo de sub-redes nessa região local, sua VPC será estendida para essa zona local e sua VPC tratará a sub-rede como qualquer sub-rede em qualquer outra zona de disponibilidade. Todos os gateways e tabelas de rotas relevantes serão ajustados automaticamente.
Para criar uma regra em um grupo de segurança de VPC que permita conexões de outro grupo de segurança
-
Faça login no Console de Gerenciamento da AWS e abra o console da Amazon VPC em https://console.aws.amazon.com/vpc
. -
No painel de navegação, escolha Security Groups (Grupos de segurança).
-
Selecione ou crie um security group que você usará para suas instâncias de cluster. Em Regras de entrada, selecione Editar regras de entrada e escolha Adicionar regra. Esse grupo de segurança permitirá o acesso a membros de outro grupo de segurança.
-
Em Tipo, escolha Regra TCP personalizada.
-
Para Port Range, especifique a porta que você usou quando criou seu cluster.
A porta padrão dos clusters e grupos de replicação Redis OSS é
6379. -
Na caixa Source, comece a digitar o ID do grupo de segurança. Na lista, selecione o grupo de segurança que você usará para o suas instâncias do Amazon EC2.
-
-
Escolha Save quando terminar.
Depois de habilitar o acesso, você agora estará pronto para se conectar ao nó, conforme discutido na próxima seção.
Para obter informações sobre como acessar seu cluster do ElastiCache de uma Amazon VPC diferente, uma região da AWS diferente ou até mesmo sua rede corporativa, consulte:
Etapa 4: conexão ao nó do cluster
Antes de continuar, conclua Etapa 3: autorizar o acesso ao cluster.
Esta seção supõe que você tenha criado uma instância do Amazon EC2 e possa conectar-se a ela. Para obter instruções sobre como fazer isso, consulte o Guia de conceitos básicos do Amazon EC2.
Uma instância do Amazon EC2 pode se conectar a um nó de cluster apenas se você tiver a autorizado a fazê-lo.
Localize seus endpoints de nó
Quando seu cluster estiver no estado available (disponível) e você tiver autorizado o acesso a ele, será possível fazer login em uma instância do Amazon EC2 e se conectar a ela. Para isso, primeiro você deve determinar o endpoint.
Localização de endpoints de um cluster do Valkey ou do Redis OSS (modo cluster desabilitado) (console)
Se o cluster do Redis OSS (modo cluster desabilitado) tiver apenas um nó, o endpoint desse nó será usado para tanto para leituras quanto para gravações. Se cluster tiver vários nós, haverá três tipos de endpoints: o endpoint primário, o endpoint leitor e os endpoints de nó.
O endpoint primário é um nome DNS que sempre é resolvido para o nó primário no cluster. O endpoint primário é imune às alterações no seu cluster, como promover uma réplica de leitura para a função primária. Para atividades de gravação, recomendamos que suas aplicações se conectem ao endpoint primário.
Um endpoint de leitor divide uniformemente as conexões de entrada no endpoint entre todas as réplicas de leitura em um cluster do ElastiCache para Redis OSS. Fatores adicionais, como quando o aplicativo cria as conexões ou como o aplicativo (re)usa as conexões determinarão a distribuição do tráfego. Os endpoints de leitor acompanham as alterações do cluster em tempo real à medida que réplicas são adicionadas ou removidas. Você pode colocar várias réplicas de leitura do seu cluster do ElastiCache para Redis OSS em diferentes zonas de disponibilidade da AWS (AZ) para garantir a alta disponibilidade dos endpoints leitores.
nota
Um endpoint leitor não é um balanceador de carga. É um registro DNS que vai resolver para um endereço IP de um dos nós de réplica em uma forma round robin.
Para atividades de leitura, os aplicativos também podem se conectar a qualquer nó no cluster. Ao contrário do endpoint primário, endpoints de nó são resolvidos para endpoints específicos. Se você fizer uma alteração no cluster, como adicionar ou excluir uma réplica, deverá atualizar os endpoints de nó no seu aplicativo.
Para localizar um endpoint de um cluster do Redis OSS (modo cluster desabilitado) (console)
-
Faça login no Console de gerenciamento da AWS e abra o console do ElastiCache em https://console.aws.amazon.com/elasticache/
. -
No painel de navegação, escolha Caches do Redis OSS.
A tela de clusters aparecerá com uma lista que vai incluir todos os caches com tecnologia sem servidor do Valkey ou Redis OSS, clusters do Redis OSS (modo de cluster desabilitado) e do Redis OSS (modo de cluster habilitado). Selecione o cluster que você criou na seção Criação de um cluster do Redis OSS (modo cluster desabilitado) (console).
-
Para encontrar os endpoints Primário e/ou Leitor do cluster, escolha o nome do cluster (e não o botão de opção).
Endpoints primários e leitores para um cluster do Redis OSS (modo cluster desabilitado)
Se houver apenas um nó no cluster, não haverá um endpoint primário, e você poderá continuar na próxima etapa.
-
Se o cluster do Redis OSS (modo cluster desabilitado) tiver nós de réplica, você poderá encontrar seus endpoints dos nós de réplica escolhendo o nome do cluster e escolhendo a guia Nós.
A tela de nós aparece com cada nó do cluster, primário e réplicas, listados com seu respectivo endpoint.
Endpoint de nó para um cluster do Redis OSS (modo cluster desabilitado)
-
Como copiar um endpoint para a área de transferência:
-
Um endpoint por vez, localize o endpoint que você deseja copiar.
-
Escolha o ícone de cópia diretamente na frente do endpoint.
O endpoint agora é copiado para a área de transferência. Para obter informações sobre como usar o endpoint para se conectar a um nó, consulte Conexão a nós.
-
Um endpoint primário do Redis OSS (modo cluster desabilitado) se assemelha ao seguinte. Há uma diferença, dependendo de a criptografia em trânsito estar ou não habilitada.
Criptografia em trânsito não habilitada
clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
Criptografia em trânsito habilitada
master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port
master.ncit.ameaqx.use1.cache.amazonaws.com:6379
Para explorar mais sobre como ocalizar os endpoints, consulte os tópicos relevantes para o tipo de mecanismo e de cluster que você está executando.
Agora que você tem o endpoint necessário, você pode fazer login em uma instância do EC2 e se conectar ao cluster ou ao grupo de replicação. No exemplo a seguir, você usa o utilitário valkey-cli para se conectar a um cluster. A versão mais recente da valkey-cli também oferece suporte a SSL/TLS para conexão com clusters habilitados para criptografia e autenticação.
O exemplo a seguir usa instâncias do Amazon EC2 executando o Amazon Linux e o Amazon Linux 2. Para obter detalhes sobre como instalar e compilar a valkey-cli com outras distribuições Linux, consulte a documentação do seu sistema operacional específico.
nota
Este processo abrange o teste de uma conexão usando o utilitário valkey-cli somente para uso não planejado. Para obter uma lista dos clientes compatíveis, consulte a Documentação do Valkey
Conexão a um cluster não criptografado com modo cluster desabilitado
Execute o seguinte comando para se conectar ao cluster e substitua
primary-endpointeport-numberpelo endpoint do seu cluster e pelo número da porta. (A porta padrão para o Valkey e Redis OSS é 6379.)src/valkey-cli -hprimary-endpoint-pport numberO resultado em um prompt de comando é semelhante ao seguinte:
primary-endpoint:port numberAgora você pode executar comandos do Valkey e Redis OSS.
set x Hello OK get x "Hello"
Conectar a um cluster não criptografado com modo cluster habilitado
Execute o seguinte comando para se conectar ao cluster e substitua
configuration-endpointeport-numberpelo endpoint do seu cluster e pelo número da porta. (A porta padrão para o Valkey e Redis OSS é 6379.)src/valkey-cli -hconfiguration-endpoint-c -pport numbernota
No comando anterior, a opção -c habilita o modo cluster em seguida aos redirecionamentos -ASK e -MOVED
. O resultado em um prompt de comando é semelhante ao seguinte:
configuration-endpoint:port numberAgora você pode executar comandos do Valkey e Redis OSS. Observe que o redirecionamento ocorre porque você o habilitou usando a opção -c. Se o redirecionamento não estiver habilitado, o comando retornará o erro MOVED. Para obter mais informações sobre o erro MOVED, consulte Especificação do cluster
. set x Hi -> Redirected to slot [16287] located at 172.31.28.122:6379 OK set y Hello OK get y "Hello" set z Bye -> Redirected to slot [8157] located at 172.31.9.201:6379 OK get z "Bye" get x -> Redirected to slot [16287] located at 172.31.28.122:6379 "Hi"
Conexão a um cluster com criptografia/autenticação habilitada
Por padrão, a valkey-cli usa uma conexão TCP não criptografada ao se conectar ao Valkey e Redis OSS. A opção BUILD_TLS=yes habilita o SSL/TLS no momento da compilação da valkey-cli, conforme mostrado na seção Baixar e configurar o acesso à linha de comando. A ativação do AUTH é opcional. No entanto, você deve habilitar a criptografia em trânsito para habilitar o AUTH. Para obter mais detalhes sobre criptografia e autenticação do ElastiCache, consulte Criptografia em trânsito (TLS) do ElastiCache.
nota
Você pode usar a opção --tls com a valkey-cli para se conectar a clusters criptografados com modo cluster habilitado e desabilitado. Se um cluster tiver um conjunto de tokens AUTH, você poderá usar a opção -a para fornecer uma senha do AUTH.
Nos exemplos a seguir, substitua cluster-endpoit e port-number pelo endpoint do seu cluster e seu número de porta. (A porta padrão para o Redis OSS é 6379.)
Conexão a clusters criptografados com modo cluster desabilitado
O exemplo a seguir conecta a um cluster habilitado para criptografia e autenticação:
src/valkey-cli -hcluster-endpoint--tls -ayour-password-pport number
O exemplo a seguir conecta a um cluster somente habilitado para criptografia:
src/valkey-cli -hcluster-endpoint--tls -pport number
Conexão a clusters criptografados com modo cluster habilitado
O exemplo a seguir conecta a um cluster habilitado para criptografia e autenticação:
src/valkey-cli -c -hcluster-endpoint--tls -ayour-password-pport number
O exemplo a seguir conecta a um cluster somente habilitado para criptografia:
src/valkey-cli -c -hcluster-endpoint--tls -pport number
Depois de se conectar ao cluster, você poderá executar os comandos do Valkey ou Redis OSS, conforme mostrado nos exemplos anteriores para clusters não criptografados.
Uma alternativa ao valkey-cli ou ao Redis-cli
Se o cluster não estiver habilitado para o modo cluster e você precisar fazer uma conexão com o cluster para um teste curto, mas sem passar pela compilação da valkey-cli ou redis-cli, você pode usar telnet ou openssl. Nos exemplos de comandos a seguir, substitua cluster-endpoit e port-number pelo endpoint do seu cluster e seu número de porta. (A porta padrão para o Redis OSS é 6379.)
O exemplo a seguir conecta a um cluster habilitado para criptografia e/ou autenticação com modo cluster desabilitado:
openssl s_client -connectcluster-endpoint:port number
Se o cluster tiver uma senha definida, conecte-se primeiro ao cluster. Após a conexão, autentique o cluster usando o seguinte comando, depois pressione a tecla Enter. No exemplo a seguir, substitua your-password pela senha do seu cluster.
Authyour-password
O exemplo a seguir conecta a um cluster com modo cluster desabilitado que não tenha criptografia ou autenticação habilitada:
telnetcluster-endpointport number
Para se conectar ao cluster a partir de uma instância do EC2 do Windows usando a CLI do Valkey ou Redis OSS, é necessário fazer download do pacote valkey-cli e usar valkey-cli.exe para se conectar ao cluster do Valkey ou Redis OSS de uma instância do EC2 do Windows.
No exemplo a seguir, use o utilitário valkey-cli para se conectar a um cluster que não está habilitado para criptografia e que está executando o Valkey ou Redis OSS. Para obter mais informações sobre o Valkey e os comandos disponíveis, consulte Comandos do Valkey
Para se conectar a um cluster do Valkey ou Redis OSS não habilitado para criptografia usando o valkey-cli
-
Conexão à sua instância do Amazon EC2 com o utilitário de conexão de sua escolha. Para obter instruções sobre como se conectar a uma instância do Amazon EC2, consulte o Guia de conceitos básicos do Amazon EC2.
Copie e cole o link https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip
em um navegador da Internet para baixar o arquivo zip para o cliente Redis OSS da versão disponível no GitHub https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504 Extraia o arquivo zip para a pasta/caminho desejado.
Abra o prompt de comando, mude para o diretório do Valkey e execute o comando
c:\Valkey>valkey-cli -h.Valkey_Cluster_Endpoint-p 6379Por exemplo:
c:\Valkey>valkey-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379-
Execute os comandos Valkey ou Redis OSS.
Agora, você está conectado ao cluster e pode executar comandos Valkey ou Redis OSS como os seguintes.
set a "hello"// Set key "a" with a string value and no expiration OKget a// Get value for key "a" "hello"get b// Get value for key "b" results in miss (nil)set b "Good-bye" EX 5// Set key "b" with a string value and a 5 second expiration "Good-bye"get b// Get value for key "b" "Good-bye" // wait >= 5 secondsget b(nil) // key has expired, nothing returnedquit// Exit from valkey-cli