O recurso Cluster On/Off do Couchbase Capella permite que os usuários pausem e retomem seus clusters sem problemas, sem excluir permanentemente os dados, ajudando a otimizar as despesas com a nuvem e a melhorar a eficiência operacional.
Neste blog, exploraremos como esse recurso funciona e como você pode automatizá-lo usando o Terraform.
Os usuários têm duas opções para gerenciar a disponibilidade do cluster:
-
- On-Demand On/Off - Pause e retome manualmente os clusters conforme necessário.
- Ativação/desativação programada - Automatize a pausa/retomada de clusters em datas e fusos horários específicos.
Desligar (pausar) um cluster
-
- Interrompe todos os serviços do cluster.
- Persiste os dados, a configuração e os metadados.
- Libera recursos de computação para reduzir custos, mantendo o armazenamento intacto.
Ativação (retomada) de um cluster
-
- Restaura o cluster de um estado pausado.
- Reinicia os serviços e torna os dados acessíveis novamente.
- Permite que os clientes se reconectem e retomem as operações sem problemas.
Por que usar o recurso de ligar/desligar o cluster?
- Economiza custos computacionais e otimiza com base no uso:
- Quando um cluster é desligado, os recursos de computação (por exemplo, CPU, RAM) não são cobrados, reduzindo significativamente os custos de infraestrutura.
- Quando um cluster está desativado, você paga apenas o valor desativado (principalmente custos de armazenamento e gerenciamento).
- Ajuda a alinhar os custos com o uso real, em vez de pagar por recursos ociosos.
- Reduz a sobrecarga operacional:
- Elimina a necessidade de provisionamento e desmontagem manual do cluster.
- Os usuários podem retomar facilmente um cluster pausado sem reconfigurar ou reimplantar recursos.
- Persistência dos dados e desenvolvimento/testes econômicos:
- Os dados, o esquema (buckets, escopos, coleções), os índices, os usuários, as listas de permissões e os backups permanecem intactos quando um cluster é pausado.
- Garante que não haja perda de configuração ao retomar as operações.
- Os desenvolvedores podem pausar ambientes de não produção fora do horário de trabalho. Isso evita custos desnecessários em pipelines de CI/CD, ambientes de preparação ou UAT.
Otimização de custos
Uma das maneiras mais simples e eficazes de reduzir os custos operacionais é desligar os clusters quando eles não estiverem em uso. Vamos considerar o caso de uso de um cluster da AWS com 3 nós (dados, índice e consulta) usando um Plano Developer Pro em Couchbase Capella, com a configuração de 2 vCPUs, 16 GB de RAM, tamanho do disco de 50 GB, tipo de disco GP3, e IOPS 3000.
Quando esse cluster é mantido on-line 24 horas por dia, 7 dias por semana, ele incorre em um custo mensal de computação de $1,497.60 sob o modelo pay-as-you-go. No entanto, muitos clusters de desenvolvimento são necessários apenas durante o horário de trabalho. Simplesmente desligando o cluster por 12 horas por dia, por exemplo, durante a noite, as equipes podem economizar $705.60 por mês, totalizando 47% redução nos custos de computação. Isso é um forte argumento para automatizar o tempo de inatividade do cluster para otimizar os gastos com a nuvem sem afetar a produtividade do desenvolvedor.
Em ambientes com vários clusters ou ambientes de desenvolvimento que não exigem disponibilidade 24 horas por dia, ao programar o tempo de inatividade para clusters não essenciais, as equipes podem realocar seus orçamentos com mais eficiência, investindo em áreas que afetam diretamente os resultados comerciais.
Primeiros passos: implantar uma programação on/off usando o provedor Terraform
O Capella Terraform Provider permite que os usuários gerenciem as implementações do Capella de forma programática, automatizando a orquestração de recursos. Vamos examinar um tutorial simples para implementar um cronograma On/Off no Capella por meio do provedor Terraform.
Para saber mais sobre como desativar ou ativar o cluster sob demanda usando o Terraform, Consulte os exemplos e o LEIAME fornecidos em este repositório. Há uma visão geral passo a passo de como ativar/desativar o cluster sob demanda.
Além do recurso de ligar/desligar o cluster, um Serviço de Aplicativo também pode ser ligado/desligado sob demanda. Consulte o seguinte documentação e o provedor Terraform exemplos para obter mais informações.
O que você aprenderá
-
- As etapas para configurar os arquivos e entender os comandos necessários para executar os scripts do Terraform.
- Um tutorial passo a passo sobre a implementação de uma programação de ativação/desativação de cluster no Capella usando o provedor.
Pré-requisitos
Antes de começar, verifique se você tem:
-
- Versão do Terraform >= 1.5.2
- Versão Go >= 1.2.0
- Conta paga Capella
- Cluster Capella - Você pode criar um cluster do Couchbase usando o provedor, o IU da Capellaou o API de gerenciamento da Capella e usar o organization_id, project_id e cluster_id para criar a programação de ligar/desligar.
- Authentication APIKey - Você pode criar a chave de API usando o IU da Capella ou o API de gerenciamento da Capella. Você deve criar uma chave de API que tenha o conjunto certo de funções associadas a ela, dependendo do escopo dos recursos gerenciados pelo provedor.
Para obter informações sobre como configurar a autorização e a autenticação, consulte o guia Terraform repositório e isso blog postar.
Etapa 1: Configuração
Criar as variáveis
- Crie um arquivo chamado variables.tf e adicione as seguintes definições de variáveis. Usaremos essas variáveis em nosso arquivo de configuração.
123456789101112131415variável "organization_id" {descrição = "ID da Organização Capella"}variável "project_id" {descrição = "Nome do projeto para o projeto criado via Terraform"}variável "cluster_id" {descrição = "ID do cluster Capella"}variável "auth_token" {descrição = "Chave da API de autenticação"} - Crie um arquivo chamado terraform.template.tfvars e adicione as seguintes linhas. Aqui, especificamos os valores das principais variáveis associadas à implantação.
1234auth_token = ""organization_id = ""project_id = ""ID do cluster = "" - Crie um arquivo chamado capella.tf e adicione a seguinte configuração para criar o agendamento de ativação/desativação para um cluster Capella existente em um projeto:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889terraformação {provedores necessários {couchbase-capela = {fonte = "registry.terraform.io/couchbasecloud/couchbase-capella"}}}# Configurar o provedor Capella do Couchbase usando variáveis predefinidasprovedor "couchbase-capella" {authentication_token = var.autenticação_token}# Criar uma programação de ativação e desativação para o clusterrecurso "couchbase-capella_cluster_onoff_schedule" "new_cluster_onoff_schedule"{organization_id = var.organization_idprojeto_id = var.project_idagrupamento_id = var.ID do clusterfuso horário = "EUA/Pacífico"dias = [{dia = "segunda-feira"estado = "personalizado"de = {hora = 12minuto = 30}para = {hora = 14minuto = 30}},{dia = "Terça-feira"estado = "personalizado"de = {hora = 12}para = {hora = 19minuto = 30}},{dia = "wednesday" (quarta-feira)estado = "on" (ligado)},{dia = "quinta-feira"estado = "personalizado"de = {hora = 12minuto = 30}},{dia = "sexta-feira"estado = "personalizado"de = {}para = {hora = 12minuto = 30}},{dia = "sábado"estado = "personalizado"de = {hora = 12minuto = 30}para = {hora = 14}},{dia = "sunday" (domingo)estado = "off" (desligado)}]}# Armazena os detalhes da programação onoff do cluster em uma variável de saída.# Pode ser visualizado com o comando `terraform output cluster_onoff_schedule`.saída "cluster_onoff_schedule" {valor = couchbase-capella_cluster_onoff_schedule.new_cluster_onoff_cronograma}
Etapa 2: Implantar e gerenciar o cronograma
Inicializar o provedor do Terraform
O Terraform deve ser inicializado na primeira vez que você usar o provedor:
1 |
terraformação inicial |
Revisar o plano do Terraform
Use o seguinte comando para revisar os recursos que serão implantados:
1 |
terraformação plano -var-arquivo terraformação.modelo.tfvars |
Você deverá ver uma saída semelhante à seguinte ao criar uma programação de ativação/desativação para um cluster existente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
Terraform usado o selecionado provedores para gerar o seguintes execução plano. Recursos ações são indicado com o seguintes símbolos: + criar Terraform vontade executar o seguintes ações: # couchbase-capella_cluster_onoff_schedule.new_cluster_onoff_schedule será criado + recurso "couchbase-capella_cluster_onoff_schedule" "new_cluster_onoff_schedule" { + agrupamento_id = "1cd2a882-ddc2-497a-a9f9-60bd8da5488f" + dias = [ + { + dia = "segunda-feira" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" + para = { + hora = 14 + minuto = 30 } }, + { + dia = "Terça-feira" + de = { + hora = 12 + minuto = 0 } + estado = "personalizado" + para = { + hora = 19 + minuto = 30 } }, + { + dia = "wednesday" (quarta-feira) + estado = "on" (ligado) }, + { + dia = "quinta-feira" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" }, + { + dia = "sexta-feira" + de = { + hora = 0 + minuto = 0 } + estado = "personalizado" + para = { + hora = 12 + minuto = 30 } }, + { + dia = "sábado" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" + para = { + hora = 14 + minuto = 0 } }, + { + dia = "sunday" (domingo) + estado = "off" (desligado) }, ] + organization_id = "7a99d00c-f55b-4b39-bc72-1b4cc68ba894" + projeto_id = "9f837bbd-d1f3-476d-ac62-ba65a6548215" + fuso horário = "EUA/Pacífico" } Plano: 1 para adicionar, 0 para mudança, 0 para destruir. Mudanças para Saídas: + cluster_onoff_schedule = { + agrupamento_id = "1cd2a882-ddc2-497a-a9f9-60bd8da5488f" + dias = [ + { + dia = "segunda-feira" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" + para = { + hora = 14 + minuto = 30 } }, + { + dia = "Terça-feira" + de = { + hora = 12 + minuto = 0 } + estado = "personalizado" + para = { + hora = 19 + minuto = 30 } }, + { + dia = "wednesday" (quarta-feira) + de = nulo + estado = "on" (ligado) + para = nulo }, + { + dia = "quinta-feira" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" + para = nulo }, + { + dia = "sexta-feira" + de = { + hora = 0 + minuto = 0 } + estado = "personalizado" + para = { + hora = 12 + minuto = 30 } }, + { + dia = "sábado" + de = { + hora = 12 + minuto = 30 } + estado = "personalizado" + para = { + hora = 14 + minuto = 0 } }, + { + dia = "sunday" (domingo) + de = nulo + estado = "off" (desligado) + para = nulo }, ] + organization_id = "7a99d00c-f55b-4b39-bc72-1b4cc68ba894" + projeto_id = "9f837bbd-d1f3-476d-ac62-ba65a6548215" + fuso horário = "EUA/Pacífico" } |
Executar o plano do Terraform
Implante os recursos do Couchbase Capella usando o seguinte comando:
1 |
terraformação aplicar -var-arquivo terraformação.modelo.tfvars |
Digite "sim" se o plano parecer bom.
Observação: Levará alguns minutos para implantar os recursos se você estiver criando um projeto, implantando um cluster e criando um cronograma de ativação/desativação para ele.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
Fazer você querer para executar esses ações? Terraform vontade executar o ações descrito acima. Somente 'sim' vontade ser aceito para aprovar. Entrar a valor: sim couchbase-capella_cluster_onoff_schedule.new_cluster_onoff_schedule: Criação de... couchbase-capella_cluster_onoff_schedule.new_cluster_onoff_schedule: Criação completo após 0s Aplicar completo! Recursos: 1 adicionado, 0 alterado, 0 destruído. Saídas: cluster_onoff_schedule = { "cluster_id" = "1cd2a882-ddc2-497a-a9f9-60bd8da5488f" "dias" = Lista de usuários([ { "dia" = "segunda-feira" "de" = { "hora" = 12 "minuto" = 30 } "estado" = "personalizado" "para" = { "hora" = 14 "minuto" = 30 } }, { "dia" = "Terça-feira" "de" = { "hora" = 12 "minuto" = 0 } "estado" = "personalizado" "para" = { "hora" = 19 "minuto" = 30 } }, { "dia" = "wednesday" (quarta-feira) "de" = nulo /* objeto */ "estado" = "on" (ligado) "para" = nulo /* objeto */ }, { "dia" = "quinta-feira" "de" = { "hora" = 12 "minuto" = 30 } "estado" = "personalizado" "para" = nulo /* objeto */ }, { "dia" = "sexta-feira" "de" = { "hora" = 0 "minuto" = 0 } "estado" = "personalizado" "para" = { "hora" = 12 "minuto" = 30 } }, { "dia" = "sábado" "de" = { "hora" = 12 "minuto" = 30 } "estado" = "personalizado" "para" = { "hora" = 14 "minuto" = 0 } }, { "dia" = "sunday" (domingo) "de" = nulo /* objeto */ "estado" = "off" (desligado) "para" = nulo /* objeto */ }, ]) "organization_id" = "7a99d00c-f55b-4b39-bc72-1b4cc68ba894" "project_id" = "9f837bbd-d1f3-476d-ac62-ba65a6548215" "timezone" = "EUA/Pacífico" } |
A aparência seria a seguinte na interface do usuário do Capella:
Destruir a programação
1 |
terraformação destruir -var-arquivo terraformação.modelo.tfvars |
Referências
-
- Confira Programação de ativação/desativação do cluster usando o Terraform Provider.
- Confira o Ativação e desativação do cluster sob demanda usando o Terraform Provider.
- Confira o Ativação e desativação do serviço de aplicativo sob demanda usando o Terraform Provider.
- Documentos oficiais do Couchbase para ligar/desligar o cluster sob demanda - ref
- Documentos oficiais do Couchbase sobre a programação de ativação/desativação do cluster ref
- Documentos oficiais do Couchbase para o cronograma de ativação/desativação do serviço de aplicativo ref