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á.
O que é Timestream for InfluxDB?
O Amazon Timestream for InfluxDB é um mecanismo gerenciado de banco de dados de séries temporais que facilita que desenvolvedores DevOps e equipes de aplicativos executem bancos de dados do InfluxDB para aplicativos de séries temporais em tempo real usando código aberto. AWS APIs Com o Amazon Timestream para InfluxDB, é fácil configurar, operar e escalar cargas de trabalho de séries temporais que podem responder a consultas com tempo de resposta de consulta de um dígito em milissegundos.
O Amazon Timestream para InfluxDB oferece acesso aos recursos da conhecida versão de código aberto do InfluxDB em sua ramificação 2.x. Isso significa que o código, os aplicativos e as ferramentas que você já usa hoje com seus bancos de dados de código aberto do InfluxDB existentes devem funcionar perfeitamente com o Amazon Timestream for InfluxDB. O Amazon Timestream for InfluxDB pode fazer backup automático do seu banco de dados e manter seu software de banco de dados atualizado com a versão mais recente. Além disso, o Amazon Timestream para InfluxDB facilita o uso da replicação para aprimorar a disponibilidade do banco de dados e melhorar a durabilidade dos dados. Como em todos os AWS serviços, não são necessários investimentos iniciais e você paga apenas pelos recursos que usa.
Instâncias de banco de dados
Uma instância de banco de dados é um ambiente de banco de dados isolado em execução na nuvem. É o alicerce básico do Amazon Timestream para o InfluxDB. Uma instância de banco de dados pode conter vários bancos de dados criados pelo usuário (ou organizações e buckets, no caso de bancos de dados InfluxDb 2.x) e pode ser acessada usando as mesmas ferramentas e aplicativos de cliente que você pode usar para acessar uma instância autônoma autogerenciada do InfluxDB. As instâncias de banco de dados são simples de criar e modificar com as ferramentas de linha de AWS comando, as operações do Amazon Timestream API InfluxDB ou o. AWS Management Console
nota
O Amazon Timestream para InfluxDB oferece suporte ao acesso a bancos de dados usando as operações do Influx e a interface do usuário do API Influx. O Amazon Timestream para InfluxDB não permite acesso direto ao host.
Você pode ter até 40 Amazon Timestream para instâncias do InfluxDB.
Cada instância de banco de dados tem um nome de instância de banco de dados. Esse nome fornecido pelo cliente identifica exclusivamente a instância de banco de dados ao interagir com o Amazon Timestream para InfluxDB e comandos. API AWS CLI O nome da instância de banco de dados deve ser exclusivo para esse cliente em uma AWS região.
O nome da instância de banco de dados faz parte do DNS nome do host alocado à sua instância pelo Timestream para o InfluxDB. Por exemplo, se você especificar influxdb1 como o nome da instância de banco de dados, o Timestream alocará automaticamente um endpoint para sua instância. DNS Um exemplo de endpoint éinfluxdb1-3ksj4dla5nfjhi.us-east-1.timestream-influxdb.amazonaws.com
, onde influxdb1
está o nome da sua instância.
No endpoint de exemploinfluxdb1-3ksj4dla5nfjhi.us-east-1.timestream-influxdb.amazonaws.com
, a string 3ksj4dla5nfjhi
é um identificador de conta exclusivo gerado por AWS. O identificador 3ksj4dla5nfjhi
no exemplo não muda para a conta especificada em uma determinada região. Portanto, todas as suas instâncias de banco de dados criadas por essa conta compartilham o mesmo identificador fixo. Considere as seguintes características do identificador fixo:
-
Atualmente, o Timestream for InfluxDB não oferece suporte à renomeação de instâncias de banco de dados.
-
Se você excluir e recriar uma instância de banco de dados com o mesmo identificador de instância de banco de dados, o endpoint será o mesmo.
-
Se você usar a mesma conta para criar uma instância de banco de dados em uma região diferente, o identificador gerado internamente será diferente porque a região é diferente, como em
influxdb2.4a3j5du5ks7md2.us-west-1.timestream-influxdb.amazonaws.com
.
Cada instância de banco de dados suporta apenas um Timestream para o mecanismo de banco de dados InfluxDB.
Ao criar uma instância de banco de dados, o InfluxDB exige que um nome de organização seja especificado. Uma instância de banco de dados pode hospedar várias organizações e vários buckets associados a cada organização.
O Amazon Timestream para InfluxDB permite que você crie uma conta de usuário principal e uma senha para sua instância de banco de dados como parte do processo de criação. Esse usuário principal tem permissões para criar organizações, buckets e realizar operações de leitura, gravação, exclusão e upsert em seus dados. Você também poderá acessar o InfluxUI e recuperar seu token de operador em seu primeiro login. A partir daí, você também poderá gerenciar todos os seus tokens de acesso. Você deve definir a senha do usuário principal ao criar uma instância de banco de dados, mas pode alterá-la a qualquer momento usando o InfluxAPI, o Influx ou o CLI InfluxUI.
Classes da instância de banco de dados
A classe de instância de banco de dados determina a capacidade computacional e de memória de uma instância de banco de dados fi UbfkyxDB
Amazon Timestream. A classe de instância de banco de dados da qual você precisa depende dos requisitos de memória e potência de processamento.
Uma classe de instância de banco de dados consiste no tipo de classe e no tamanho de instância de banco de dados. Por exemplo, db.influx
é um tipo de classe de instância de banco de dados otimizado para memória, adequado aos requisitos de memória de alto desempenho relacionados à execução InfluxDb de cargas de trabalho. Dentro do tipo de classe de db.influx
instância, db.influx.2xlarge
está uma classe de instância de banco de dados. O tamanho dessa classe é 2xlarge.
Para obter mais informações sobre preços de classes de instância, consulte os preços do Amazon Timestream
Tipos de classe de instância de banco de dados
O Amazon Timestream para InfluxDB oferece suporte a classes de instância de banco de dados para o seguinte caso de uso otimizado para casos de uso do InfluxDB.
-
db.influx
—Essas classes de instância são ideais para executar cargas de trabalho com uso intenso de memória em bancos de dados InfluxDB de código aberto
Especificações de hardware para classes de instância de banco de dados
A terminologia a seguir descreve as especificações de hardware para classes de instâncias de banco de dados:
-
v CPU
O número de unidades de processamento central virtual (CPUs). Um virtual CPU é uma unidade de capacidade que você pode usar para comparar classes de instâncias de banco de dados.
-
Memória (GiB)
ORAM, em gibibytes, alocado para a instância de banco de dados. Freqüentemente, há uma proporção consistente entre memória e CPU v. Como exemplo, veja a classe de instância db.influx, que tem uma CPU relação memória/v semelhante à classe de instância EC2 r7g.
-
Otimizado para influxo
A instância de banco de dados usa uma pilha de configuração otimizada e fornece capacidade adicional dedicada para E/S do Amazon EBS. Essa otimização proporciona a melhor performance para seus volumes do EBS ao minimizar a contenção entre a E/S e outro tráfego de sua instância.
-
Largura de banda da rede
A velocidade da rede em relação a outras classes de instância de banco de dados. Na tabela a seguir, você pode encontrar detalhes de hardware sobre as classes de instância Amazon Timestream para InfluxDB.
Classe de instâncias | v CPU | Memória (GiB) | Tipo de armazenamento | Largura de banda da rede (Gbps) |
---|---|---|---|---|
db.influx.medium | 1 | 8 | Influxo incluído IOPS | 10 |
db.influx.large | 2 | 16 | Influxo incluído IOPS | 10 |
db.influx.xlarge | 4 | 32 | Influxo incluído IOPS | 10 |
db.influx.2xlarge | 8 | 64 | Influxo incluído IOPS | 10 |
db.influx.4xlarge | 16 | 128 | Influxo incluído IOPS | 10 |
db.influx.8xlarge | 32 | 256 | Influxo incluído IOPS | 12 |
db.influx.12xlarge | 48 | 384 | Influxo incluído IOPS | 20 |
db.influx.16xlarge | 64 | 512 | Influxo incluído IOPS | 25 |
Armazenamento de instâncias do InfluxDB
As instâncias de banco de dados do Amazon Timestream for InfluxDB usam volumes incluídos do IOPS Influx para bancos de dados e armazenamento de logs.
Em alguns casos, a carga de trabalho do banco de dados pode não conseguir atingir 100% do IOPS que você provisionou. Para ter mais informações, consulte Fatores que afetam a performance do armazenamento. Para obter mais informações sobre os preços de armazenamento do Timestream for InfluxDB, consulte os preços do Amazon Timestream.
Amazon Timestream para tipos de armazenamento do InfluxDB
O Amazon Timestream para InfluxDB fornece suporte para um tipo de armazenamento, incluído no Influx. IOPS Você pode criar Timestream para instâncias do InfluxDB com até 16 tebibytes (TiB) de armazenamento.
Aqui está uma breve descrição do tipo de armazenamento disponível:
-
Armazenamento incluído no Influx IO: o desempenho do armazenamento é a combinação de operações de E/S por segundo (IOPS) e a rapidez com que o volume de armazenamento pode realizar leituras e gravações (taxa de transferência de armazenamento). Nos volumes de armazenamento IOPS incluídos no Influx, o Amazon Timestream for InfluxDB fornece 3 níveis de armazenamento que vêm pré-configurados IOPS com a taxa de transferência ideal necessária para diferentes tipos de cargas de trabalho.
Dimensionamento de instâncias do InfluxDB
A configuração ideal de uma instância Timestream for InfluxDB depende de muitos fatores que incluem taxa de ingestão, tamanhos de lotes, cardinalidade de séries temporais, consultas simultâneas e tipos de consulta. Em um esforço para fornecer recomendações de dimensionamento, estamos nos concentrando em uma carga de trabalho exemplar com as seguintes características:
-
Os dados são coletados e gravados por uma frota de agentes do Telegraf que coletam sistemaCPU, memória, disco, E/S etc. de um data center.
Cada solicitação de gravação contém 5000 linhas.
-
Os tipos de consultas executadas no sistema são categorizados como consultas de “complexidade moderada”. Essa categoria de consultas apresenta as seguintes características:
-
Tenha várias funções e uma ou duas expressões regulares
-
Também pode agrupar por cláusulas ou experimentar um intervalo de tempo de várias semanas.
-
Normalmente, leva de algumas centenas de milissegundos a alguns milhares de milissegundos para ser executado.
-
CPUfavorece principalmente o desempenho da consulta.
-
Classe de instância | Tipo de armazenamento | Escreve (linhas por segundo) | Leituras (consultas por segundo) |
---|---|---|---|
db.influx.large | Influx IO incluído: 3K | ~50.000 | <10 |
db.influx.2xlarge | Influx IO incluído: 3K | ~150.000 | <25 |
db.influx.4xlarge | Influx IO incluído: 3K | ~200.000 | ~25 |
db.influx.4xlarge | Influx IO incluído: 12K | ~250.000 | ~35 |
db.influx.8xlarge | Influx IO incluído: 12K | ~500.000 | ~50 |
db.influx.12xlarge | Influx IO incluído: 12K | <750.000 | <100 |
Regiões da AWS e zonas de disponibilidade
Os recursos de computação em nuvem da Amazon são hospedados em vários locais no mundo todo. Esses locais são compostos por Regiões da AWS e. Cada AWS região é uma área geográfica separada. Cada AWS região tem vários locais isolados, conhecidos como zonas de disponibilidade.
nota
Para obter informações sobre como encontrar o para uma AWS região, consulte Regiões e zonas no Guia EC2 do usuário da Amazon.
O Amazon Timestream for InfluxDB permite que você coloque recursos, como instâncias de banco de dados e dados em vários locais.
A Amazon opera state-of-the-art data centers de alta disponibilidade. Embora sejam raras, podem ocorrer falhas que afetam a disponibilidade das instâncias de banco de dados que estiverem no mesmo local. Se você hospeda todas as instâncias de banco de dados em um único local afetado por essa falha, nenhuma delas estará disponível.
É importante lembrar que cada AWS região é completamente independente. Qualquer atividade do Amazon Timestream para InfluxDB que você iniciar (por exemplo, criar instâncias de banco de dados ou listar instâncias de banco de dados disponíveis) é executada somente em sua região padrão atual. AWS A região da AWS padrão pode ser alterada no console ou definindo a variável de ambiente AWS_DEFAULT_REGION
. Ou ele pode ser substituído usando o --region
parâmetro com o AWS Command Line Interface ()AWS CLI. Para obter mais informações, consulte Configurando o AWS Command Line Interface, especificamente as seções sobre variáveis de ambiente e opções de linha de comando.
Para criar ou trabalhar com uma instância de banco de dados Amazon Timestream para InfluxDB em uma região AWS específica, use o endpoint de serviço regional correspondente.
AWS Disponibilidade da região
A tabela a seguir mostra as AWS regiões em que o Amazon Timestream for InfluxDB está disponível atualmente e o endpoint para cada região.
AWS Nome da região | Região | Endpoint | Protocolo |
---|---|---|---|
Leste dos EUA (Norte da Virgínia) | us-east-1 | timestream-influxdb.us-east-1.amazonaws.com | HTTPS |
Leste dos EUA (Ohio) | us-east-2 | timestream-influxdb.us-east-2.amazonaws.com | HTTPS |
Oeste dos EUA (Oregon) | us-west-2 | timestream-influxdb.us-west-2.amazonaws.com | HTTPS |
Ásia-Pacífico (Mumbai) | ap-south-1 | timestream-influxdb.ap-south-1.amazonaws.com | HTTPS |
Ásia-Pacífico (Singapura) | ap-southeast-1 | timestream-influxdb.ap-southeast-1.amazonaws.com | HTTPS |
Ásia-Pacífico (Sydney) | ap-southeast-2 | timestream-influxdb.ap-southeast-2.amazonaws.com | HTTPS |
Ásia-Pacífico (Tóquio) | ap-northeast-1 | timestream-influxdb.ap-northeast-1.amazonaws.com | HTTPS |
Europa (Frankfurt) | eu-central-1 | timestream-influxdb.eu-central-1.amazonaws.com | HTTPS |
Europa (Irlanda) | eu-west-1 | timestream-influxdb.eu-west-1.amazonaws.com | HTTPS |
Europa (Estocolmo) | eu-north-1 | timestream-influxdb.eu-north-1.amazonaws.com | HTTPS |
Canadá (Central) | ca-central-1 | timestream-influxdb.ca-central-1.amazonaws.com | HTTPS |
Europa (Londres) | eu-west-2 | timestream-influxdb.eu-west-2.amazonaws.com | HTTPS |
Europa (Paris) | eu-west-3 | timestream-influxdb.eu-west-3.amazonaws.com | HTTPS |
AWS Design de regiões
Cada AWS região foi projetada para ser isolada das outras AWS regiões. Esse design proporciona o máximo de tolerância a falhas e estabilidade possível.
Ao visualizar seus recursos, você vê somente os recursos vinculados à AWS região que você especificou. Isso ocorre porque AWS as regiões estão isoladas umas das outras e não replicamos automaticamente os recursos entre AWS regiões.
AWS Zonas de disponibilidade
Quando você cria uma instância de banco de dados, o Amazon Timestream for InfluxDB escolhe uma para você aleatoriamente com base na configuração da sua sub-rede. Uma zona de disponibilidade é representada por um código de AWS região seguido por um identificador de letra (por exemplo,us-east-1a
).
Use o EC2 comando describe-availability
-zones Amazon da seguinte forma para descrever as que estão habilitadas para sua conta dentro da região especificada.
aws ec2 describe-availability-zones --region region-name
Por exemplo, para descrever a região Leste dos EUA (Norte da Virgínia) (us-east-1) que está habilitada para sua conta, execute o seguinte comando:
aws ec2 describe-availability-zones --region
us-east-1
Você não pode escolher para as instâncias de banco de dados primária e secundária em uma implantação de banco de dados Multi-AZ. O Amazon Timestream para InfluxDB os escolhe aleatoriamente para você. Para ter mais informações sobre implantações Multi-AZ, consulte Configurando e gerenciando uma implantação Multi-AZ.
Cobrança de instâncias de banco de dados para Amazon Timestream para InfluxDB
As instâncias do Amazon Timestream para InfluxDB são cobradas com base nos seguintes componentes:
-
Horas da instância de banco de dados (por hora) — Com base na classe da instância de banco de dados, por exemplo, db.influx.large. A definição de preço está listada em uma base por hora, mas é calculada em segundos e mostra o tempo no formato decimal. O uso do Amazon Timestream para InfluxDB é cobrado em incrementos de 1 segundo, com um mínimo de 10 minutos. Para obter mais informações, consulte Classes de Classes da instância de banco de dados instância de banco de dados.
-
Armazenamento (por GiB por mês) — Capacidade de armazenamento que você provisionou para sua instância de banco de dados. Para obter mais informações, consulte Armazenamento de instâncias do InfluxDB.
-
Transferência de dados (por GB) — Transferência de dados para dentro e para fora da sua instância de banco de dados de ou para a Internet e outras AWS regiões.
Para obter informações sobre preços do Amazon Timestream para InfluxDB, consulte a página de preços do Amazon Timestream
Configurando o Amazon Timestream para o InfluxDB
Antes de usar o Amazon Timestream para InfluxDB pela primeira vez, conclua as seguintes tarefas:
Se você já tem uma AWS conta, conheça os requisitos do Amazon Timestream para InfluxDB e prefira usar os padrões para e Amazon. IAM VPC Começando com o Timestream for InfluxDB
Cadastre-se para uma AWS conta
Se você não tiver uma AWS conta, conclua as etapas a seguir para criar uma.
Para se inscrever em uma AWS conta
-
Acesse a página de AWS login
. -
Escolha Criar uma nova conta e siga as instruções.
nota
Parte do procedimento de inscrição envolve receber uma chamada telefônica e inserir um código de verificação no teclado do telefone.
Quando você se inscreve AWS em uma conta, um usuário raiz da AWS conta é criado. O usuário root tem acesso a todos os AWS serviços e recursos da conta. Como prática recomendada de segurança, atribua acesso administrativo a um usuário administrativo e use somente o usuário raiz para realizar as tarefas que exigem acesso do usuário raiz.
AWS envia um e-mail de confirmação após a conclusão do processo de inscrição. A qualquer momento, você pode visualizar a atividade atual da sua conta e gerenciar sua conta acessando https://aws.amazon.com/e
Gerenciamento de usuários
Criar um usuário administrativo
Criar um usuário administrador
Depois de se inscrever AWS em uma conta, crie um usuário administrativo para não usar o usuário root nas tarefas diárias.
Proteja o usuário root da sua AWS conta
Faça login AWS Management Console como proprietário da conta escolhendo Usuário raiz e inserindo o endereço de e-mail AWS da sua conta. Na próxima página, insira sua senha. Para obter ajuda para fazer login usando o usuário root, consulte Como fazer login como usuário root no Guia do usuário AWS de login
Ative a autenticação multifator (MFA) para seu usuário root. Para obter instruções, consulte Habilitar um MFA dispositivo virtual para o usuário raiz da sua AWS conta (console) no Guia IAM do usuário.
Conceder acesso programático
Os usuários precisam de acesso programático se quiserem interagir com pessoas AWS fora do AWS Management Console. A forma de conceder acesso programático depende do tipo de usuário que está acessando a AWS.
Para conceder acesso programático aos usuários, escolha uma das seguintes opções:
Qual usuário precisa de acesso programático? | Para | Por |
---|---|---|
Identidade da força de trabalho (usuários gerenciados no IAM Identity Center) | Use credenciais temporárias para assinar solicitações programáticas para o AWS CLI AWS SDKs, ou. AWS APIs | Seguindo as instruções da interface que você deseja usar.* Para o AWS CLI, consulte Configurando o IAM Identity AWS CLI Center para usar noAWS CLI Guia do usuário .* Para AWS SDKs, ferramentas e AWS APIs, consulte noAWS SDKsGuia de referência de ferramentas e ferramentas. |
IAM | Use credenciais temporárias para assinar solicitações programáticas para o AWS CLISDKs, e. APIs | Siga as instruções em Uso de credenciais temporárias com AWS recursos no Guia do IAM usuário. |
IAM | (Não recomendado) Use credenciais de longo prazo para assinar solicitações programáticas para AWS CLISDKs, e. APIs | Siga as instruções da interface que deseja utilizar. Para o AWS CLI, consulte Autenticação usando credenciais IAM de usuário no Guia do AWS Command Line Interface usuário. Para ferramentas AWS SDKs e ferramentas, consulteAutenticar usando credenciais de longo prazo noAWS SDKsGuia de referência de ferramentas e ferramentas .Para AWS APIs, consulteGerenciando chaves de acesso para IAM usuários noIAMGuia do usuário. |
Determinar requisitos
O alicerce básico do Amazon Timestream para InfluxDB é a instância de banco de dados. Em uma instância de banco de dados, você cria seus buckets. Uma instância de banco de dados fornece um endereço de rede chamado de endpoint. Seus aplicativos usam o endpoint para se conectar à instância de banco de dados. Você também acessará seu InfluxUI usando esse mesmo endpoint do seu navegador. Ao criar uma instância de banco de dados, você especifica detalhes como armazenamento, memória, mecanismo e versão do banco de dados, configuração de rede e segurança. Você controla o acesso de rede a uma instância de banco de dados por meio de um grupo de segurança.
Antes de criar uma instância de banco de dados e um grupo de segurança, você precisa conhecer as necessidades de sua instância de banco de dados e de sua rede. Veja aqui alguns fatores importantes a considerar:
-
Requisitos de recursos — Quais são os requisitos de memória e processador para seu aplicativo ou serviço? Você usa essas configurações para ajudá-lo a determinar que classe de instância de banco de dados deve usar. Para especificações sobre classes de instância de banco de dados, consulte Classes de instância de banco de dados.
-
VPCe grupo de segurança — Sua instância de banco de dados provavelmente estará em uma nuvem privada virtual (VPC). Para se conectar à sua instância de banco de dados, você precisa definir regras de grupo de segurança. Essas regras são configuradas de forma diferente, dependendo do tipo de VPC uso e de como você o usa. Por exemplo, você pode usar: um padrão VPC ou definido pelo usuárioVPC.
A lista a seguir descreve as regras para cada VPC opção:
-
Padrão VPC — Se sua AWS conta tiver um padrão VPC na AWS região atual, ela VPC está configurada para oferecer suporte a instâncias de banco de dados. Se você especificar o padrão VPC ao criar a instância de banco de dados, certifique-se de criar um grupo de VPC segurança que autorize conexões do aplicativo ou serviço com a instância de banco de dados Amazon Timestream for InfluxDB. Use a opção Grupo de Segurança no VPC console ou no AWS CLI para criar grupos VPC de segurança. Para obter mais informações, consulte Etapa 3: Criar um grupo VPC de segurança.
-
-
Definido pelo usuário VPC — Se você quiser especificar um definido pelo usuário VPC ao criar uma instância de banco de dados, esteja ciente do seguinte:
-
Certifique-se de criar um grupo de VPC segurança que autorize conexões do aplicativo ou serviço com a instância de banco de dados Amazon Timestream for InfluxDB. Use a opção Grupo de Segurança no VPC console ou no AWS CLI para criar grupos VPC de segurança. Para obter informações, consulte Etapa 3: Criar um grupo VPC de segurança.
-
Eles VPC devem atender a certos requisitos para hospedar instâncias de banco de dados, como ter pelo menos duas sub-redes, cada uma em uma zona de disponibilidade separada. Para obter informações, consulte Amazon VPC e Amazon Timestream para InfluxDB.
-
-
Alta disponibilidade — Você precisa de suporte de failover? No Amazon Timestream para InfluxDB, uma implantação Multi-AZ cria uma instância de banco de dados primária e uma instância de banco de dados secundária em espera em outra zona de disponibilidade para suporte a failover. Para manter a alta disponibilidade, recomendamos as implantações multi-AZ para cargas de trabalho de produção. Para fins de desenvolvimento e teste, você pode usar uma implantação que não seja multi-AZ. Para obter mais informações, consulte Implantações de instâncias de banco de dados multi-AZ.
-
IAMpolíticas — Sua AWS conta tem políticas que concedem as permissões necessárias para realizar operações do Amazon Timestream para InfluxDB? Se você estiver se conectando AWS usando IAM credenciais, sua IAM conta deve ter IAM políticas que concedam as permissões necessárias para realizar as operações do plano de controle do Amazon Timestream para o InfluxDB. Para obter mais informações, consulte Identity and Access Management para Amazon Timestream para InfluxDB.
-
Portas abertas — Qual porta TCP /IP seu banco de dados escuta? O firewall de algumas empresas pode bloquear conexões com a porta padrão para o seu mecanismo de banco de dados. O padrão para Timestream for InfluxDB é 8086.
-
AWS Região — Em qual AWS região você deseja seu banco de dados? Ter o banco de dados próximo do aplicativo ou do serviço Web pode reduzir a latência da rede. Para obter mais informações, consulte Regiões da AWS e zonas de disponibilidade .
-
Subsistema de disco de banco de dados — Quais são seus requisitos de armazenamento? O Amazon Timestream for InfluxDB fornece três configurações para o tipo de armazenamento incluído no Influx: IOPS
-
Influx Io incluído: 3k () IOPS SSD
-
Influx Io incluído: 12k () IOPS SSD
-
Influx Io incluído 16k () IOPS SSD
Para obter mais informações sobre o Amazon Timestream para armazenamento do InfluxDB, consulte Amazon Timestream para armazenamento de instâncias de banco de dados do InfluxDB. Quando você tiver as informações necessárias para criar o grupo de segurança e a instância de banco de dados, continue na próxima etapa.
-
Forneça acesso à sua instância de banco de dados no seu VPC criando um grupo de segurança
VPCgrupos de segurança fornecem acesso às instâncias de banco de dados em VPC a. Eles atuam como um firewall para a instância de banco de dados associada, controlando o tráfego de entrada e de saída no nível da instância de banco de dados. As instâncias de bancos de dados são criadas por padrão com um firewall e um grupo de segurança padrão que protege a instância de banco de dados.
Para conseguir se conectar à sua instância de banco de dados, você deve adicionar regras a um grupo de segurança que permita que você se conecte. Use suas informações de rede e configuração para criar regras e permitir acesso à sua instância de banco de dados.
Por exemplo, suponha que você tenha um aplicativo que acessa um banco de dados na sua instância de banco de dados em umVPC. Nesse caso, você deve adicionar uma TCP regra personalizada que especifique o intervalo de portas e os endereços IP que seu aplicativo usa para acessar o banco de dados. Se você tiver um aplicativo em uma EC2 instância da Amazon, poderá usar o grupo de segurança que você configurou para a EC2 instância da Amazon.
Criação de um grupo de segurança para VPC acesso
Para criar um grupo VPC de segurança, faça login no AWS Management Console e escolha VPC.
nota
Verifique se você está no VPC console, não no console Amazon Timesteam para InfluxDB.
-
No canto superior direito do AWS Management Console, escolha a AWS região em que você deseja criar seu grupo de VPC segurança e instância de banco de dados. Na lista de VPC recursos da Amazon para essa AWS região, você deve ver pelo menos uma VPC e várias sub-redes. Caso contrário, você não tem um padrão VPC nessa AWS região. .
-
No painel de navegação, escolha Grupos de segurança.
-
Escolha Create grupo de segurança (Criar grupo de segurança).
-
Na seção Detalhes básicos da página do grupo de segurança, insira o nome e a Descrição do grupo de segurança. Para VPC, escolha aquela em VPC que você deseja criar sua instância de banco de dados.
-
Em Inbound rules (Regras de entrada), escolha Add rule (Adicionar regra).
-
Em Tipo, escolha Personalizado TCP.
-
Em Source, escolha um nome de grupo de segurança ou insira o intervalo de endereços IP (CIDRvalor) de onde você acessa a instância de banco de dados. Se você selecionar My IP (Meu IP), isso concederá acesso à instância de banco de dados do endereço IP detectado no navegador.
Em Source, escolha um nome de grupo de segurança ou digite o intervalo de endereços IP (CIDRvalor) de onde você acessa a instância de banco de dados. Se você selecionar My IP (Meu IP), isso concederá acesso à instância de banco de dados do endereço IP detectado no navegador.
-
-
(Opcional) Em Outbound rules (Regras de saída), adicione regras para o tráfego de saída. Por padrão, todo tráfego de saída é permitido.
-
Escolha Create grupo de segurança (Criar grupo de segurança).
Você pode usar esse grupo VPC de segurança como o grupo de segurança da sua instância de banco de dados ao criá-la.
nota
Se você usar um padrão VPC, um grupo de sub-redes padrão abrangendo todas as sub-redes será criado para você. VPC Ao criar uma instância de banco de dados, você pode escolher o eiifccntf padrão VPC e escolher o padrão para o grupo de sub-redes de banco de dados.
Assim que completar os requisitos de configuração, você poderá criar uma instância de banco de dados usando seus requisitos e grupo de segurança. Para isso, siga as declarações em Criar uma instância de banco de dados.
Melhores práticas de segurança para Timestream for InfluxDB
Otimize gravações no InfluxDB
Como qualquer outro banco de dados de séries temporais, o InfluxDB foi criado para poder ingerir e processar dados em tempo real. Para manter o melhor desempenho do sistema, recomendamos as seguintes otimizações ao gravar dados no InfluxDB:
Gravações em lote: ao gravar dados no InfluxDB, grave dados em lotes para minimizar a sobrecarga da rede relacionada a cada solicitação de gravação. O tamanho ideal do lote é de 5.000 linhas de protocolo de linha por solicitação de gravação. Para escrever várias linhas em uma solicitação, cada linha do protocolo de linha deve ser delimitada por uma nova linha (\n).
Classifique as tags por chave: antes de gravar pontos de dados no InfluxDB, classifique as tags por chave em ordem lexicográfica.
measurement,tagC=therefore,tagE=am,tagA=i,tagD=i,tagB=think fieldKey=fieldValue 1562020262 # Optimized line protocol example with tags sorted by key measurement,tagA=i,tagB=think,tagC=therefore,tagD=i,tagE=am fieldKey=fieldValue 1562020262
Use a maior precisão de tempo possível: — O InfluxDB grava dados com precisão de nanossegundos, no entanto, se seus dados não forem coletados em nanossegundos, não há necessidade de gravar com essa precisão. Para um melhor desempenho, use a maior precisão possível para registros de data e hora. Você pode especificar a precisão de gravação quando:
Ao usar o, SDK você pode especificar o WritePrecision ao definir o atributo de hora do seu ponto. Para obter mais informações sobre as bibliotecas de cliente do InfluxDB, consulte a documentação do InfluxDB
. Ao usar o Telegraf, você configura a precisão do tempo na configuração do agente Telegraf. A precisão é especificada como um intervalo com uma unidade inteira + (por exemplo, 0s,10ms,2us,4s). As unidades de tempo válidas são “ns”, “us”, “ms” e “s”.
[agent] interval ="10s" metric_batch_size="5000" precision = "0s"
Use a compressão gzip: — Use a compressão gzip para acelerar as gravações no InfluxDB e reduzir a largura de banda da rede. Os benchmarks mostraram uma melhoria de velocidade de até 5x quando os dados são compactados.
Ao usar o Telegraf, na configuração do plug-in de saída InfluxDB_v2 em seu telegraf.conf, defina a opção content_encoding como gzip:
[[outputs.influxdb_v2]] urls = ["http://localhost:8086"] # ... content_encoding = "gzip"
Ao usar bibliotecas de cliente, cada biblioteca cliente do InfluxDB
fornece opções para compactar solicitações de gravação ou impõe a compactação por padrão. O método para ativar a compactação é diferente para cada biblioteca. Para obter instruções específicas, consulte a documentação do InfluxDB Ao usar o API
/api/v2/write
endpoint do InfluxDB para gravar dados, compacte os dados com gzip e defina o cabeçalho Content-Encoding como gzip.
Design para desempenho
Crie seu esquema para consultas mais simples e de maior desempenho. As diretrizes a seguir garantirão que seu esquema seja fácil de consultar e maximize o desempenho da consulta:
Design para consultar: escolha medidas
, chaves de tag e chaves de campo que sejam fáceis de consultar. Para atingir esse objetivo, siga estes princípios: Use medidas que tenham um nome simples e descrevam o esquema com precisão.
Evite usar o mesmo nome para uma chave de tag
e uma chave de campo dentro do mesmo esquema. Evite usar palavras-chave reservadas do Flux
e caracteres especiais nas teclas de tag e campo. As tags armazenam metadados que descrevem os campos e são comuns em muitos pontos de dados.
Os campos armazenam dados exclusivos ou altamente variáveis, geralmente pontos de dados numéricos.
As medições e chaves não devem conter dados, mas devem ser usadas para agregar ou descrever dados. Os dados serão armazenados em valores de tag e campo.
Mantenha sua cardinalidade de série temporal sob controle A alta cardinalidade de série é uma das principais causas da diminuição do desempenho de gravação e leitura no InfluxDB. No contexto do InfluxDB, a alta cardinalidade se refere à presença de um número muito grande de valores de tag exclusivos. Os valores das tags são indexados no InfluxDB, o que significa que um número muito alto de valores exclusivos gerará um índice maior que pode diminuir a ingestão de dados e o desempenho da consulta.
Para entender melhor e resolver possíveis problemas relacionados à alta cardinalidade, siga estas etapas:
Entenda as causas da alta cardinalidade
Meça a cardinalidade de seus baldes
Tome medidas para resolver a alta cardinalidade
Causas da alta cardinalidade de série O InfluxDB indexa os dados com base em medições e tags para acelerar as leituras de dados. Cada conjunto de elementos de dados indexados forma uma chave de série
. Tags contendo informações altamente variáveis, como strings exclusivasIDs, hashes e aleatórias, levam a um grande número de séries , também conhecido como alta cardinalidade de série . A cardinalidade de alta série é o principal fator de alto uso de memória no InfluxDB. Medindo a cardinalidade da série Se você tiver lentidão no desempenho ou observar um uso cada vez maior de memória em sua instância do Timestream for InfluxDB, recomendamos medir a cardinalidade da série de seus buckets.
O InfluxDB fornece funções que permitem medir a cardinalidade da série no Flux e no InfluxQL.
No Flux, use a função
influxdb.cardinality()
No FluxQL, use o comando
SHOW SERIES CARDINALITY
Em ambos os casos, o mecanismo retornará o número de chaves de série exclusivas em seus dados. Lembre-se de que não é recomendável ter mais de 10 milhões de chaves de série em nenhuma de suas instâncias do Timestream for InfluxDB.
Causas da alta cardinalidade em série Se você descobrir que algum de seus compartimentos tem alta cardinalidade, há algumas etapas de correção que você pode seguir para corrigi-lo:
Analise suas tags: garanta que suas cargas de trabalho não gerem casos em que as tags tenham valores exclusivos para a maioria das entradas. Isso pode acontecer nos casos em que o número de valores de tag exclusivos sempre aumenta com o tempo ou se mensagens do tipo log estão sendo gravadas no banco de dados, onde cada mensagem teria uma combinação exclusiva de timestamp, tags etc. Você pode usar o seguinte código Flux para ajudá-lo a descobrir quais tags estão contribuindo mais para seus problemas de alta cardinalidade:
// Count unique values for each tag in a bucketimport "influxdata/influxdb/schema" cardinalityByTag = (bucket) => schema.tagKeys(bucket: bucket) |> map( fn: (r) => ({ tag: r._value, _value: if contains(set: ["_stop", "_start"], value: r._value) then 0 else (schema.tagValues(bucket: bucket, tag: r._value) |> count() |> findRecord(fn: (key) => true, idx: 0))._value, }), ) |> group(columns: ["tag"]) |> sum() cardinalityByTag(bucket: "example-bucket")
Se você estiver enfrentando uma cardinalidade muito alta, a consulta acima pode expirar. Se você tiver um tempo limite, execute as consultas abaixo, uma de cada vez.
Gere uma lista de tags:
// Generate a list of tagsimport "influxdata/influxdb/schema" schema.tagKeys(bucket: "example-bucket")
Conte valores de tag exclusivos para cada tag:
// Run the following for each tag to count the number of unique tag valuesimport "influxdata/influxdb/schema" tag = "example-tag-key" schema.tagValues(bucket: "my-bucket", tag: tag) |> count()
Recomendamos que você os execute em momentos diferentes para identificar qual tag está crescendo mais rápido.
Melhore seu esquema: siga as recomendações de modelagem discutidas em nossoMelhores práticas de segurança para Timestream for InfluxDB.
Remova ou agregue dados antigos para reduzir a cardinalidade: considere se seus casos de uso precisam ou não de todos os dados que estão causando seus problemas de alta cardinalidade. Se esses dados não forem mais necessários ou acessados com frequência, você poderá agregá-los, excluí-los ou exportá-los para outro mecanismo, como o Timestream for Live Analytics, para armazenamento e análise de longo prazo.