Armazenamento na nuvem
Google Cloud Platform
Machine Operações e
Computação Rede Big Data Armazenamento
learning ferramentas
Cloud Bigtable
Cloud Datastore
Teste e laboratório
O Cloud Storage é um serviço de armazenamento
de objeto grande binário
● Alto desempenho, escalonamento de Internet
○ Administração simples
● Não exige gerenciamento de capacidade
● Criptografia de dados em repouso
● Criptografia de dados em trânsito do Google
ao endpoint, por padrão
● Serviços de importação on-line
e off-line disponíveis
O Google Cloud Storage não é um sistema de arquivos, embora possa ser acessado
como tal por ferramentas de terceiros, como o Cloud Storage FUSE. Os objetos de
armazenamento oferecidos pelo Google Cloud Storage são “imutáveis”, o que
significa que você precisa criar uma nova versão deles para edição. O uso principal
do Google Cloud Storage é para armazenamento de objetos grandes binários:
conteúdo on-line, backup e arquivamento, armazenamento de resultados
intermediários no processamento de fluxos de trabalho e outros.
O Offline Media Import/Export é uma solução de terceiros que permite enviar sua
mídia física, como unidades de disco rígido (HDDs), fitas e pen drives, a um provedor
de serviços terceirizado que fará o upload deles no Google Cloud Storage para você.
O Offline Media Import/Export é útil se você tem uma conexão de Internet lenta, não
confiável ou cara.
Classe de armazenamento
Existem muitas maneiras de controlar o acesso dos usuários aos seus objetos e
buckets. Para a maioria das finalidades, o Cloud IAM é suficiente. Os papéis são
herdados do projeto para o bucket e para o objeto. Se precisar de controle mais
preciso, crie listas de controle de acesso (ACLs). Elas possibilitam definir quem tem
acesso aos seus buckets e objetos, além do nível desse acesso. Cada ACL consiste
em duas informações: um escopo, que define quem pode executar as ações
especificadas (ex.: um usuário ou grupo de usuários), e uma permissão, que define
as ações que podem ser executadas (ex.: leitura ou gravação).
Lembre-se de que os objetos do Cloud Storage são imutáveis. Se quiser, você pode
ativar o controle de versões de objetos nos buckets. Assim o Cloud Storage manterá
um histórico de modificações (substituições e exclusões) de todos os objetos no
bucket. É possível listar as versões arquivadas de um objeto, restaurar um objeto
para um estado mais antigo ou excluir uma versão permanentemente, conforme
necessário. Se o controle de versões de objetos não for ativado, os itens novos
sempre substituirão os antigos.
Preço do
armazenamento Preço por GB armazenado por mês
Preço de recuperação
Preço total por GB transferido
Com o Regional Storage, você pode armazenar dados em uma região específica do
GCP, como us-central1, europe-west1 ou asia-east1. Essa classe é mais barata do
que o Multi-Regional Storage, mas oferece menos redundância.
Muitos clientes usam o gsutil, que é o comando do Cloud Storage do SDK do Cloud.
Se você usa o navegador Google Chrome, também poderá transferir dados com
uma ação de arrastar e soltar no Console do GCP. Mas se você precisar enviar
terabytes ou petabytes de dados? O Google Cloud Platform tem uma opção on-line,
o Serviço de transferência do Cloud Storage, e uma off-line, o Transfer Appliance.
Importação Scripts de
e exportação inicialização, imagens
de tabelas e armazenamento
geral de objetos
BigQuery Compute
Engine
Há outras maneiras de transferir seus dados no Cloud Storage, pois essa opção de
armazenamento está bastante integrada com muitos produtos e serviços do Google
Cloud Platform.
Por exemplo, você pode importar e exportar tabelas do BigQuery e do Cloud SQL.
Você também pode armazenar backups do Cloud Datastore, bem como registros e
objetos usados pelos aplicativos do App Engine, como imagens. O Cloud Storage
pode também armazenar scripts de inicialização de instância, imagens do Compute
Engine e objetos usados por aplicativos do Compute Engine.
Cloud Bigtable
Cloud Datastore
Teste e laboratório
O Cloud Bigtable é NoSQL gerenciado
● Armazenamento replicado
● Criptografia de dados em trânsito e em repouso
● ACLs com base em papéis
● Controle de aplicativos importantes,
como Google Analytics e Gmail
Especialmente se forem:
Série temporal
● Os dados são uma série temporal e tem ordenação semântica natural
Big Data
● Você executa processamento assíncrono de lote ou em tempo real dos
dados
Machine learning
● Você executa algoritmos de machine learning nos dados
O Bigtable foi projetado para lidar com cargas de trabalho enormes a uma latência
consistentemente baixa e alta capacidade. Por isso, é uma ótima opção para
aplicativos operacionais e analíticos, como a Internet das Coisas e a análise de
usuários e de dados financeiros.
API de aplicativo
Os dados podem ser lidos e gravados no Cloud Bigtable por uma
camada de serviço de dados, como VMs gerenciadas, o servidor
REST HBase ou um servidor Java usando o cliente HBase. Isso
geralmente servirá para exibir dados em aplicativos, painéis e
serviços de dados.
Streaming
É possível transmitir os dados (gravá-los evento a evento) com o
uso de vários frameworks de processamento conhecidos, como
Cloud Dataflow Streaming, Spark Streaming e Storm.
Processamento em lote
Cloud Bigtable
Os dados podem ser lidos e gravados no Cloud Bigtable por
processos em lote, como Hadoop MapReduce, Dataflow ou Spark.
Com frequência, dados resumidos ou recentemente calculados são
gravados de volta no Cloud Bigtable ou em um banco de dados
downstream.
Como o Cloud Bigtable faz parte do ecossistema do GCP, ele pode interagir com
outros serviços do GCP, além de clientes de terceiros.
Se o streaming não for uma opção, os dados também podem ser lidos e gravados no
Cloud Bigtable por processos em lote, como Hadoop MapReduce, Dataflow ou
Spark. Com frequência, dados resumidos ou recentemente calculados são gravados
de volta no Cloud Bigtable ou em um banco de dados downstream.
Tópicos
Cloud Storage
Cloud Bigtable
Cloud Datastore
Teste e laboratório
O Cloud SQL é um RDBMS gerenciado
O Cloud SQL é um serviço fácil de usar que oferece bancos de dados relacionais
totalmente gerenciados. Com ele, você transfere para o Google algumas tarefas
cotidianas e demoradas, porém necessárias, como a aplicação de patches e
atualizações, o gerenciamento de backups e a configuração de replicações. Isso
permite que você se concentre apenas em criar ótimos aplicativos.
Cada instância do Cloud SQL inclui um firewall de rede para você controlar o acesso
a ela.
O Cloud SQL é fácil de usar: ele não exige instalação de software nem manutenção.
Replicação automática
O Google Cloud SQL é compatível com as situações de réplica de leitura a seguir:
● Instâncias do Cloud SQL que são réplicas de uma instância mestre do mesmo
serviço
As réplicas são outras instâncias no mesmo projeto e local da instância
mestre. Esse recurso está na versão beta.
● Instâncias do Cloud SQL que são réplicas de uma instância mestre externa
A instância mestre está fora do Google Cloud SQL. Por exemplo, fora da rede
do Google ou em uma instância do Compute Engine. Esse recurso está na
versão beta.
● Instâncias externas do MySQL que são réplicas de uma instância mestre do
Cloud SQL
As réplicas externas estão em ambientes de hospedagem, fora do Cloud
SQL.
Backups gerenciados
O Cloud SQL armazena seus dados com segurança e facilita a restauração de
backups e a recuperação para um estado específico da instância. O Cloud SQL
retém até sete backups para cada instância, já incluídos no custo.
Os dados dos clientes do Cloud SQL são criptografados quando estão nas redes
internas do Google e quando são armazenados em tabelas de bancos de dados, em
arquivos temporários ou em backups.
Serviço
externo
O Cloud SQL pode ser usado com As instâncias do Compute Engine O Cloud SQL pode ser usado com
o App Engine com drivers padrão. podem ser autorizadas a acessar aplicativos e clientes externos.
as instâncias do Cloud SQL
Você pode configurar uma usando um endereço IP externo. As ferramentas padrão podem ser
instância do Cloud SQL para seguir usadas para administrar os bancos
um aplicativo do App Engine. As instâncias do Cloud SQL podem de dados.
ser configuradas com uma zona
preferencial. É possível configurar as réplicas
de leitura externas.
Outro benefício das instâncias do Cloud SQL é que outros serviços do GCP e até
mesmo serviços externos podem acessá-las. Você pode usar o Cloud SQL com o
App Engine com drivers padrão como o Connector/J para Java ou o MySQLdb para
Python.
Você pode colocar a instância do Cloud SQL na mesma zona que sua máquina
virtual, além de autorizar instâncias do Compute Engine a acessá-la.
● Replicação automática
● Consistência global forte
● Instâncias gerenciadas com alta
disponibilidade
● SQL (ANSI 2011 com extensões)
Cloud Bigtable
Cloud Datastore
Teste e laboratório
O Cloud Datastore é um banco de dados NoSQL
horizontalmente escalonável
● NoSQL projetado para back-ends de
aplicativos
● Totalmente gerenciado
○ Usa uma arquitetura distribuída para
gerenciar automaticamente o
escalonamento
● Redundância incorporada
● Compatível com transações ACID
O Cloud Datastore é executado nos data centers do Google, que usam redundância
para minimizar o impacto dos pontos de falha. O aplicativo pode usar o Cloud
Datastore mesmo quando o serviço recebe um upgrade planejado.
Cloud Bigtable
Cloud Datastore
Teste e laboratório
Comparação de opções de armazenamento: informações
técnicas
Cloud Cloud Cloud Cloud SQL Cloud BigQuery
Datastore Bigtable Storage Spanner
Tipo Documento Coluna larga Blobstore SQL relacional SQL relacional SQL relacional
NoSQL NoSQL para OLTP para OLTP para OLAP
Tamanho da 1 MB/entidade ~10 MB/célula 5 TB/objeto Determinado pelo 10.240 MiB/linha 10 MB/linha
unidade ~100 MB/linha mecanismo de
banco de dados
Considere usar o Cloud Storage se precisar armazenar blobs imutáveis com mais de
10 MB, como imagens grandes ou filmes. O serviço de armazenamento oferece
petabytes de capacidade com tamanho máximo unitário de 5 TB por objeto.
Não falamos do BigQuery neste módulo, pois ele está no limite entre
armazenamento de dados e processamento de dados, mas você verá mais sobre ele
no módulo “Big Data e machine learning na nuvem”. Geralmente, o motivo para
armazenar dados no BigQuery é usar os grandes recursos de análise de dados e
consultas interativas que ele possui. Ele não deve ser usado, por exemplo, como
armazenamento secundário de um aplicativo on-line.
Comparação entre as opções de armazenamento: casos de uso
Tipo Documento Coluna larga Blobstore SQL relacional SQL relacional SQL relacional
NoSQL NoSQL para OLTP para OLTP para OLAP
Melhor para Dados de Dados simples, Dados de objetos Frameworks da Aplicativos de Consultas
aplicativos muitas operações ou binários Web, aplicativos banco de dados interativas,
semiestruturados, de leitura/gravação, estruturados e existentes de larga escala análises off-line
dados de eventos, dados não estruturados (mais de 2 TB)
valor-chave analíticos
permanentes
Casos de uso Primeiros passos, Dados de AdTech, Imagens, arquivos Credenciais do Sempre que E/S Armazenamento
aplicativos do App financeiros, da de mídia grandes, usuário, pedidos alta e consistência de dados
Engine Internet das Coisas backups do cliente global forem
necessárias
Cloud Bigtable
Cloud Datastore
Teste e laboratório
Pergunta nº 1
Neste laboratório, crie um bucket do Google Cloud Storage e coloque uma imagem
nele. Configure também o Google Compute Engine para usar um banco de dados
gerenciado pelo Google Cloud SQL e para fazer referência à imagem no bucket do
Cloud Storage.
Objetivos do laboratório
● Criar um bucket do Cloud Storage e
adicionar uma imagem a ele
● Criar e configurar uma instância do
Cloud SQL
● Conectar-se a uma instância do
Cloud SQL de um servidor da Web
● Usar uma imagem armazenada em
um bucket do Cloud Storage em uma
página da Web
Neste laboratório, crie um bucket do Google Cloud Storage e coloque uma imagem
nele. Configure também o Google Compute Engine para usar um banco de dados
gerenciado pelo Google Cloud SQL e para fazer referência à imagem no bucket do
Cloud Storage.
Mais recursos
Visão geral do Cloud Storage https://cloud.google.com/storage/
Primeiros passos no Google Cloud SQL https://cloud.google.com/sql/docs/quickstart
Cloud Bigtable https://cloud.google.com/stackdriver/docs/
Cloud Spanner https://cloud.google.com/spanner/docs/
Cloud Datastore https://cloud.google.com/datastore/docs/