Com os buckets de back-end, você usa os buckets do Google Cloud Storage com o balanceamento de carga HTTP(S).
Como usar um bucket do Cloud Storage como back-end do balanceador de carga
Um balanceador de carga HTTP(S) externo usa um mapa de URLs para direcionar o tráfego de URLs especificados para um serviço de back-end ou um bucket de back-end. Um caso de uso comum é:
- enviar solicitações de conteúdo dinâmico, como dados, para um serviço de back-end;
- enviar solicitações de conteúdo estático, como imagens, para um bucket de back-end.
No diagrama a seguir, o balanceador de carga envia tráfego com um caminho de
/love-to-fetch/
para um bucket do Cloud Storage na região europe-north
.
Todas as outras solicitações vão para um bucket do Cloud Storage
na região us-east
.
Neste documento, você verá como criar um
balanceador de carga de HTTP(S) externo
a fim de encaminhar solicitações de conteúdo estático para buckets
do Cloud Storage. Depois de configurar
um balanceador de carga com os buckets de back-end, as solicitações para caminhos de URL
que começam com /love-to-fetch
são enviadas para o bucket europe-north
do Cloud Storage. Todas as outras solicitações serão enviadas para o bucket us-east
do Cloud Storage.
Antes de começar
Certifique-se de que sua configuração atenda aos pré-requisitos.
Configurar um projeto padrão
- Se você estiver usando os utilitários
gcloud
ougsutil
, siga as instruções de instalação no documento Guia de início rápido: como usar a ferramenta gsutil. -
Console
a. Acesse a página inicial no Console do Google Cloud.
Acessar a página inicial do Google Cloud
b. À direita do Google Cloud, selecione um projeto no menu suspenso.gcloud ou gsutil
gcloud config set project [PROJECT_ID]
ou
gsutil config set project [PROJECT_ID]
[PROJECT_ID]
: o projeto que você usará neste guia.
Permissões
Para seguir este guia, você precisa criar buckets do Cloud Storage e um balanceador de carga em um projeto. É necessário ser proprietário ou editor de um projeto ou ter os seguintes papéis de IAM do Compute Engine:
Tarefa | Papel obrigatório |
---|---|
Criar componentes do balanceador de carga | Administrador de rede |
Criar buckets do Cloud Storage | Administrador de objetos do Storage |
Para mais informações, consulte estes guias:
Como preparar os bucket e conteúdos do Cloud Storage
O processo de preparação dos buckets do Cloud Storage é o seguinte:
- Crie os buckets.
- Copie conteúdo para os buckets.
- Forneça acesso público aos buckets.
Como criar buckets do Cloud Storage
Se você já tiver um bucket do Cloud Storage, pule para a próxima etapa.
Ao criar um bucket para usar como back-end de um balanceamento de carga HTTP(S), recomendamos que você escolha um bucket multirregional que replicará automaticamente os objetos em várias regiões do Google Cloud. Isso pode melhorar a disponibilidade do seu conteúdo e melhorar a tolerância a falhas em todo o aplicativo.
Console
- No Console do Cloud, abra o navegador do Cloud Storage:
Abra o navegador do Cloud Storage - Clique em Criar bucket.
Especifique valores para os campos a seguir, deixando todos os outros nos próprios valores padrão:
Propriedade Valor (insira o valor ou selecione uma opção conforme especificado) Nome Para cada bucket, insira um nome globalmente exclusivo. Se o nome inserido não for exclusivo, você receberá uma mensagem para tentar outro nome. Tipo de local Neste exemplo, selecione Região. Nas implantações de produção, recomendamos buckets multirregionais. Local Para um bucket, selecione us-east1
Para o outro, selecione europe-north1Classe de armazenamento padrão Padrão Controle de acesso Uniforme Clique em Criar.
Anote os nomes dos buckets recém-criados do Cloud Storage para a próxima etapa, em que são chamados de
BUCKET_1_NAME
eBUCKET_2_NAME
.
gsutil
gsutil mb -p PROJECT_ID -c standard -l us-east1 -b on gs://BUCKET_1_NAME
gsutil mb -p PROJECT_ID -c standard -l europe-north1 -b on gs://BUCKET_2_NAME
Como copiar arquivos gráficos nos buckets do Cloud Storage
Para testar a configuração, copie arquivos gráficos de um bucket público do Cloud Storage para seus próprios buckets do Cloud Storage.
Execute o comando a seguir no Cloud Shell, substituindo as variáveis de nome do bucket pelos nomes do bucket do Cloud Storage:
gsutil cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_1_NAME/never-fetch/
gsutil cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET_2_NAME/love-to-fetch/
No Console do Cloud, clique em Atualizar bucket para verificar se o arquivo gráfico está copiado.
Como tornar públicos os buckets do Cloud Storage
Torne os buckets do Cloud Storage publicamente legíveis. Com essa configuração, qualquer pessoa na Internet pode ver seus objetos e seus respectivos metadados, exceto Access Control Lists (ACLs). Qualquer pessoa na Internet também pode listar os objetos nos seus buckets. Não inclua informações confidenciais nos buckets públicos.
Para reduzir a probabilidade de exposição acidental de informações confidenciais, não armazene objetos públicos e dados confidenciais no mesmo bucket. Para mais informações, consulte Arquitetura de bucket recomendada.
Console
Permita que todos os usuários possam acessar e visualizar objetos no bucket. Repita esse procedimento para cada bucket.
- No Console do Cloud, abra o navegador do Cloud Storage:
Abra o navegador do Cloud Storage - Navegue até o bucket e clique na guia Permissões.
- Clique e selecione Adicionar membros.
- Em Novos membros, digite
allUsers
. - Para o papel, selecione Armazenamento > Visualizador de objetos do Storage.
- Clique em Salvar.
gsutil
gsutil iam ch allUsers:objectViewer gs://BUCKET_1_NAME
gsutil iam ch allUsers:objectViewer gs://BUCKET_2_NAME
Como reservar um endereço IP externo
Agora que os buckets estão funcionando, configure um endereço IP externo, estático e global que seus clientes possam usar para alcançar seu balanceador de carga.
Essa etapa é opcional, mas recomendada, porque um endereço IP externo e estático fornece um único endereço para apontar ao domínio.
Console
- Acesse a página "Endereços IP externos" no Console do Google Cloud.
Acessar a página "Endereços IP externos" - Clique em Reservar endereço estático para reservar um endereço IPv4.
- Atribua um Nome de
example-ip
. - Defina o Nível da rede como Premium.
- Defina Versão IP como IPv4.
- Defina Tipo como Global.
- Clique em Reservar.
- Certifique-se de que o Tipo esteja definido como Global.
- Clique em Reservar.
gcloud
gcloud compute addresses create example-ip \ --network-tier=PREMIUM \ --ip-version=IPV4 \ --global
Anote o endereço IPv4 que foi reservado:
gcloud compute addresses describe example-ip \ --format="get(address)" \ --global
Como criar o balanceador de carga HTTP com os buckets de back-end
Se você quiser criar um balanceador de carga HTTPS, adicione um recurso de certificado SSL ao front-end do balanceador de carga. Para mais informações, consulte a visão geral dos certificados SSL.
Console
- Acesse a página "Balanceamento de carga" no Console do Google Cloud.
Acessar a página "Balanceamento de carga" - Em Balanceamento de carga HTTP(S), clique em Iniciar configuração.
- Selecione Da internet para minhas VMs.
- Defina o Nome como
http-lb
.
Como configurar o back-end
- Clique em Configuração de back-end.
- Para Serviços de back-end e buckets de back-end, clique em Criar ou selecionar serviços de back-end e buckets de back-end. Depois, clique em Buckets de back-end > Criar um bucket de back-end.
- Defina o Nome como
cats
. - Clique em Procurar em Bucket do Cloud Storage.
- Selecione seu
BUCKET_1_NAME
e clique em Selecionar. - Clique em Criar.
Repita esta etapa para criar dogs
e navegue
até BUCKET_2_NAME.
Como configurar regras de host e correspondentes de caminho
As regras de host e os correspondentes de caminho são componentes de configuração do Mapa de URLs de um balanceador de carga de HTTP(S) externo.
- Clique em Regras de host e caminho.
- Para
cats
, não é possível alterar os hosts e caminhos padrão. Isso significa que todas as solicitações sem correspondência vão paracats
. - Para
dogs
, insira*
no campo Hosts. Para
dogs
, insira/love-to-fetch/*
no campo Caminhos.Hosts Caminhos Back-end Todos sem correspondência (padrão) Todos sem correspondência (padrão) gatos * /love-to-fetch/* cães
Como configurar o front-end
- Clique em Configuração de front-end.
Verifique se as seguintes opções estão configuradas com estes valores:
Propriedade Valor: digite um valor ou selecione uma opção conforme especificado Protocolo HTTP Nível de serviço da rede Premium Versão IP IPv4 Endereço IP example-ip Porta 80 Se você quiser criar um balanceador de carga HTTPS em vez de um balanceador de carga HTTP, precisará ter um certificado SSL (
gcloud compute ssl-certificates list
) e preencher os campos da seguinte maneira:Propriedade Valor: digite um valor ou selecione uma opção conforme especificado Protocolo HTTP(S) Nível de serviço da rede Premium Versão IP IPv4 Endereço IP example-ip Porta 443 Selecione um certificado ou crie um novo Clique em Concluído.
Como verificar a configuração
- Clique em Revisar e finalizar.
- Verifique os Buckets de back-end, as Regras de host e caminho e o Front-end.
- Clique em Criar.
- Aguarde o balanceador de carga ser criado.
- Clique no nome do balanceador de carga (http-lb).
- Anote o endereço IP do balanceador de carga para a próxima tarefa. Ele
é referenciado como
IP_ADDRESS
.
gcloud
Como configurar o back-end
gcloud compute backend-buckets create cats \ --gcs-bucket-name=BUCKET_1_NAME
gcloud compute backend-buckets create dogs \ --gcs-bucket-name=BUCKET_2_NAME
Como configurar o mapa de URL
gcloud compute url-maps create http-lb \ --default-backend-bucket=cats
gcloud compute url-maps add-path-matcher http-lb \ --path-matcher-name=path-matcher-2 \ --new-hosts=* \ --backend-bucket-path-rules="/love-to-fetch/*=dogs" \ --default-backend-bucket=cats
Como configurar o proxy de destino
gcloud compute target-http-proxies create http-lb-proxy \ --url-map=http-lb
Como configurar a regra de encaminhamento
gcloud compute forwarding-rules create http-lb-forwarding-rule \ --address=example-ip \ --global \ --target-http-proxy=http-lb-proxy \ --ports=80
Como enviar tráfego para seu bucket de back-end
Alguns minutos após a configuração do balanceador de carga, é possível começar a enviar tráfego para o endereço IP dele.
Console
- Acesse a página "Balanceamento de carga" no Console do Google Cloud.
Acessar a página "Balanceamento de carga" - Clique em
http-lb
para expandir o balanceador de carga que você acabou de criar. - Na seção Back-end, confirme se os buckets de back-end estão íntegros. Você precisa ver uma marca de seleção verde ao lado dos buckets de back-end. Se não estiver assim, tente atualizar a página. Pode levar alguns instantes para o Console do Cloud indicar que os back-ends estão íntegros.
Depois que o Console do Cloud mostrar que os buckets de back-end estão íntegros, é possível testar o balanceador de carga usando um navegador da Web acessando https://
IP_ADDRESS
/love-to-fetch/two-dogs.jpg e https://IP_ADDRESS
/never-fetch/three-cats.jpg, em queIP_ADDRESS
é o endereço IP do balanceador de carga. Seu navegador precisa renderizar páginas que tenham conteúdo que mostre os arquivos gráficos:- http://
IP_ADDRESS
/love-to-fetch/two-dogs.jpg - http://
IP_ADDRESS
/never-fetch/three-cats.jpg
- http://
gcloud
Use o comando curl
para testar a resposta do URL. Substitua
IP_ADDRESS
pelo endereço IPv4 do
balanceador de carga:
curl http://IP_ADDRESS/love-to-fetch/two-dogs.jpg
curl http://IP_ADDRESS/never-fetch/three-cats.jpg
Limitações
- Os buckets de back-end só são compatíveis com balanceadores de carga HTTP(S) externos.
- Os buckets de back-end não são compatíveis com o Identity-Aware Proxy.
A seguir
- Como configurar o balanceamento de carga em várias regiões e com base no conteúdo
- Como configurar o Cloud CDN com um bucket de back-end