A computação em nuvem agora é comum na maioria das empresas. Ele permite a disponibilidade sob demanda de poder de computação, banco de dados, armazenamento, aplicativos e outros recursos por meio da Internet.
As principais vantagens por trás da nuvem são que você não precisa gastar muito dinheiro para comprar servidores poderosos ou construir seus próprios data centers. Mas essa não é a única vantagem, quando você precisa dimensionar não precisa comprar um novo servidor, basta adicionar recursos com alguns cliques. De forma semelhante, também podemos diminuir o número de recursos quando eles não são necessários para reduzir custos.
Um banco de dados em nuvem é um banco de dados executado em um provedor de nuvem. Ele nos permite armazenar, gerenciar, recuperar e manipular nossos dados por meio de uma plataforma em nuvem; acessível pela internet.
Neste blog, veremos os diferentes tipos de ofertas de nuvem e, em seguida, focaremos na execução de um banco de dados PostgreSQL usando o Amazon RDS
Ofertas e opções de serviços em nuvem
Como podemos ver na imagem acima, existem vários tipos diferentes de serviços em nuvem, dependendo do nível de acesso necessário.
- No local: Ele é instalado e executado em computadores nas instalações da pessoa ou organização que usa o sistema. Na verdade, este não é um serviço de nuvem, mas é útil ver a diferença.
- IaaS: É um serviço online que fornece APIs de alto nível usadas para acessar vários detalhes de baixo nível da infraestrutura de rede subjacente, como recursos de computação física, localização, particionamento de dados, dimensionamento, segurança, backup etc.
- PaaS: Ele fornece uma plataforma que permite aos clientes desenvolver, executar e gerenciar aplicativos sem a complexidade de criar e manter a infraestrutura associada ao desenvolvimento e lançamento de um aplicativo.
- SaaS: É acessado pelos usuários pela Internet usando um cliente (navegador). Não requer nenhuma instalação no lado do cliente.
Se estamos falando de PostgreSQL, existem provedores de nuvem que oferecem PostgreSQL na nuvem; em diferentes sabores e usando diferentes métodos. Como mencionamos acima, vamos nos concentrar no Amazon RDS.
O que é Amazon RDS (Relational Database Service)?
De acordo com o site da Amazon, eles oferecem mais de 165 serviços completos, incluindo mais de 40 serviços que não estão disponíveis em nenhum outro lugar. Portanto, a AWS é provavelmente o provedor de nuvem mais avançado do mundo em termos de recursos e serviços com milhões de clientes.
O Amazon RDS nos permite criar, gerenciar e dimensionar um banco de dados relacional na nuvem de maneira fácil e rápida, e está disponível em diferentes tipos de banco de dados como Amazon Aurora, PostgreSQL, MySQL e muito mais. A AWS fornece uma ferramenta chamada AWS Database Migration Service para migrar um banco de dados existente para o Amazon RDS.
Benefícios do Amazon RDS
- Fácil de usar: Podemos usar o console de gerenciamento do Amazon RDS, a interface de linha de comando do AWS RDS ou chamadas de API para acessar o banco de dados relacional. Não precisamos de provisionamento de infraestrutura ou instalação e manutenção de software de banco de dados.
- Escalável: Podemos dimensionar os recursos de computação e armazenamento do nosso banco de dados com apenas alguns cliques. Muitos tipos de mecanismo do Amazon RDS nos permitem iniciar uma ou mais réplicas de leitura para descarregar o tráfego de leitura de nossa instância de banco de dados primária.
- Disponibilidade: Quando provisionamos uma instância de banco de dados Multi-AZ, o Amazon RDS replica de forma síncrona os dados para uma instância em espera em uma zona de disponibilidade (AZ) diferente. O Amazon RDS tem muitos outros recursos que aumentam a confiabilidade de bancos de dados de produção críticos, incluindo backups automatizados, snapshots de banco de dados e substituição automática de host.
- Desempenho: Podemos escolher entre duas opções de armazenamento com suporte de SSD:uma otimizada para aplicativos OLTP de alto desempenho e outra para uso geral econômico.
- Seguro: O Amazon RDS nos permite executar as instâncias de banco de dados no Amazon VPC (Virtual Private Cloud), o que nos permite isolar nossas instâncias de banco de dados e nos conectar à nossa infraestrutura de TI existente por meio de uma VPN. Além disso, muitos tipos de mecanismo do Amazon RDS oferecem criptografia em repouso e criptografia em trânsito.
Embora isso não seja mencionado oficialmente no site da AWS, mas se considerarmos DBaaS (Database as a Service) como um serviço de banco de dados que é gerenciado e implantado na infraestrutura do provedor externo (de acordo com nossa lista na seção acima) podemos dizer que o Amazon RDS é um “tipo de” DBaaS, em algum lugar entre um serviço PaaS e SaaS.
Um guia para PostgreSQL no Amazon RDS
Primeiro, precisamos fazer login no console da AWS. (Se você não tiver uma conta da AWS, poderá criar uma gratuita aqui.)
Em seguida, vá para Serviços -> Banco de dados -> RDS e seção Criar banco de dados.
Agora, devemos escolher se queremos seguir a criação normal ou fácil , o mecanismo e a versão que implantaremos.
Se selecionarmos a criação fácil, precisamos apenas adicionar a instância do banco de dados nome, usuário e senha.
Neste caso, escolheremos o PostgreSQL 10 e a criação normal para poder ver os detalhes da criação, então isso exigirá um pouco mais de trabalho do que o fácil.
Neste caso, escolheremos o PostgreSQL 10 e a criação normal para poder ver os detalhes da criação, então isso exigirá um pouco mais trabalho do que o mais fácil.
Na criação normal, primeiro, vamos escolher um template, pode ser a opção Production, Dev/Test ou Free tier.
Na próxima etapa, adicionaremos o nome da instância do banco de dados, user , e senha.
A próxima etapa é o tamanho da instância do banco de dados, onde temos várias opções em três categorias diferentes:Classes padrão, classes otimizadas para memória e classes Burstable.
Na seção de armazenamento, podemos selecionar o tipo de disco, tamanho e comportamento de armazenamento.
Um dos recursos mais importantes da AWS é a implantação Multi-AZ, onde podemos criar uma instância de espera em uma zona de disponibilidade diferente para fornecer redundância.
Sobre a conectividade, podemos escolher uma Virtual Private Cloud (VPC) para conectar o novo banco de dados. Aqui, podemos selecionar opções adicionais como acesso público, zona de disponibilidade e porta do banco de dados.
Então, temos configurações adicionais onde podemos especificar o nome do banco de dados, banco de dados autenticação, detalhes de backups, criptografia, monitoramento, registro e serviço de manutenção (atualizações secundárias automáticas).
Finalmente, teremos a opção de verificar os Custos Mensais Estimados.
Podemos ver mais detalhes sobre os custos aqui, ou até mesmo usar a AWS Calculadora Mensal.
Após adicionar todas essas informações, devemos aguardar até que o processo de criação termine.
Quando o Status muda para “Disponível”, nossa instância de banco de dados está pronta para usar.
Se pressionarmos o identificador do banco de dados (“pg1” em nosso exemplo), acessaremos nossa seção de banco de dados, onde podemos ver um resumo com informações como uso de CPU, conexões, status e tipo . Aqui, também podemos modificar nossa configuração de instância ou executar ações diferentes, como reinicializar, excluir, criar réplica de leitura, tirar instantâneos e muito mais.
No mesmo local, também podemos ver informações mais detalhadas em diferentes seções .
Conectividade e segurança
Podemos configurar as regras de segurança e verificar as informações da rede.
Monitoramento
Temos algumas métricas para verificar o status do nosso banco de dados.
Registros e eventos
Temos alarmes, eventos e logs de nosso banco de dados.
Configuração
Podemos ver nossa configuração de instância, mas também uma lista de recomendações para melhorá-la, como habilitar o monitoramento aprimorado.
Manutenção e backups
Podemos ver informações sobre as tarefas de manutenção, backups e processo de captura instantânea.
Agora, devemos ser capazes de acessar nosso banco de dados usando o nome do Endpoint atribuído pela AWS (“pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com ” em nosso exemplo). Para isso, certifique-se de ter permitido o acesso da seção security group e habilitado o acesso público a partir da configuração da instância (Acessibilidade pública:Sim). Em nosso exemplo, estamos permitindo todo o tráfego de todas as fontes, mas por motivos de segurança, você provavelmente desejará limitar o acesso de uma ou algumas fontes.
Agora, vamos tentar nos conectar à nossa instância do Amazon RDS a partir da linha de comando :
[[email protected] ~]# psql -U postgres -h pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com
Password for user postgres:
psql (11.5, server 10.6)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
postgres=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
rdsadmin | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin=CTc/rdsadmin
template0 | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/rdsadmin +
| | | | | rdsadmin=CTc/rdsadmin
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
postgres=> select version();
version
--------------------------------------------------------------------------------------------------------
PostgreSQL 10.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit
(1 row)
Da mesma forma, podemos nos conectar a ele a partir de nossa GUI preferida (se tivermos uma).
Uma observação sobre o Amazon Aurora
O Amazon Aurora é um banco de dados relacional compatível com MySQL e PostgreSQL criado para a nuvem. De acordo com o site da AWS, o Amazon Aurora é três vezes mais rápido que os bancos de dados PostgreSQL padrão e oferece segurança, disponibilidade e confiabilidade de bancos de dados comerciais por 1/10 do custo. Independentemente da afirmação, esta não é uma verdadeira instância do PostgreSQL, apenas um mecanismo compatível. Mas, se você está pensando em executar o PostgreSQL na Amazon, definitivamente deve considerar isso como uma alternativa possível. Você pode aprender mais sobre o Aurora e como ele se relaciona com o PostgreSQL aqui.
Conclusão
A nuvem está em toda parte. Podemos usá-lo para projetos pequenos e grandes. Neste blog, analisamos os diferentes tipos de nuvens e compartilhamos como executar o PostgreSQL no Amazon RDS. Deixe-nos saber nos comentários abaixo seus pensamentos.