Leitura

Hospedando Site Estático (Parte: 1)

Criado em 18/11/2023

Neste guia, vamos explorar como hospedar um site estático de forma gratuita usando Amazon S3 e Cloudflare. Antes de começar, é importante atender aos seguintes requisitos:

  • Domínio registrado para o site: Atualmente, há diversas opções de provedores para registrar domínios, como Hostinger, Locaweb, HostGator, entre outros. Independente do provedor escolhido, é possível realizar todas as configurações descritas neste tutorial. Infelizmente, o registro de domínio é um dos poucos itens que normalmente não são gratuitos na maioria dos casos, mas os custos geralmente são baixos e anuais.
  • Código fonte do site para hospedagem: Certifique-se de ter o código fonte do site que deseja hospedar.
  • Conta na AWS: Crie gratuitamente uma conta na AWS (clique aqui). A criação da conta na AWS não é complicada, portanto não incluímos essa etapa neste tutorial. Aproveite para explorar as ferramentas de nuvem oferecidas pela AWS gratuitamente. Consulte a documentação oficial para ver a lista de recursos gratuitos por um ano e outros que são gratuitos indefinidamente, com uma margem de uso amigável. Para este tutorial, utilizaremos o S3.
  • Conta no Cloudflare: Crie uma conta gratuitamente no Cloudflare (clique aqui). Também não há segredos na criação, por isso não inclui nesta tutorial esta etapa, mas basicamente utilizaremos o Cloudflare para gerenciar o dns do nosso website, fazendo ponte entre o provedor de domínio e o site que estará hospedado no S3.

1° Etapa: Publicando o site no S3

Primeiramente acesse a tela inicial do console na aws, clique no campo de pesquisa e busque por S3:


Após selecionado, será apresentado a tela inicial do S3, clique em "Criar bucket":


No campo nome do bucket, escreva o domínio do seu site, no meu caso é quizfacil.com.br, preencha com o o nome do seu domínio registrado no seu provedor, observação, não adicione o subdomínio ex (www), coloque somente o domínio raiz como no exemplo:


As demais configurações pode mander o padrão mesmo, após confirmar no botão no final da página, o bucket será criado conforme o print a seguir, acesse o bucket clicando em cima do nome:


Após clicar no nome, o painel do bucket será apresentado na aba de objetos, ainda não há nenhum arquivo no bucket, mantenha assim por em quanto, clique na aba de Permissões, precisamos liberar o bucket para ser acessível para todo o público, já que estamos lidando com um site estático e ele precisa estar disponível para toda a Web! Após clicar na aba de permissões, clique em Editar no painel "Bloquear acesso público (configurações do bucket)" conforme o print abaixo:


Desmarque o checkbox "Bloquear todo o acesso público", os demais checkbox serão desmarcados automaticamente:


Mantenha todos desmarcados e confirme no botão no final da página, abrirá um modal, escreva "confirmar" e em seguida clique no botão confirmar para concluir essa configuração.


Ainda na aba de "Permissões", desça a página até "Política do bucket" e clique em "Editar", na caixa de texto, colocaremos nossa política permitindo o acesso de todos os itens, adicione o código abaixo, substitua o "quizfacil.com.br" pelo seu domínio:

                
                    {
                        "Version": "2012-10-17",
                        "Statement": [
                            {
                                "Sid": "PublicReadGetObject",
                                "Effect": "Allow",
                                "Principal": "*",
                                "Action": "s3:GetObject",
                                "Resource": "arn:aws:s3:::quizfacil.com.br/*"
                            }
                        ]
                    }
                
            

Após adicionar o código finalize a configuração no botão no final da página, em seguida será apresentado a confirmação de registro salvo:


Vá até a aba "Propriedades", vamos sinalizar ao S3 que este bucket se trata de um site estático, desça até o painel "Hospedagem de site estático" e clique em "Editar":


Clique no radio button "Ativar" na opção "Hospedagem de site estático", no campo "Documento de índice" coloque o arquivo inicial do site, como esperado o default é index.html, recomendo manter este mesmo:


Agora estamos prontos para subir os arquivos fontes do site para o S3, apenas para ciência, é possível subir os arquivos do site na aba "Objetos" e clicando em "Carregar", porém apesar de termos essa opção não é a melhor pensando na recorrência de possíveis atualizações do sites, não é muito amigável manusear arquivos por aqui, mas fique a vontade para testar, nas próximas etapas vou mostrar uma forma mais eficiente e ideal de manipular os arquivos:


A melhor forma para manusear os arquivos no bucket é através de comandos no terminal, é bem simples de fazer a configuração, primeiro instale o aws cli no sistema operacional (siga às instruções da documentação oficial para instalar), em seguida vá até o painel de credenciais de segurança para gerar chaves de acesso que são necessárias para vincular ao aws cli, o que irá possibilitar de subir arquivos para o bucket através do terminal com segurança. Para acessar o painel de credenciais clique no seu nome de usuário no topo da tela na direita, e selecione "Credenciais de Segurança":


Desça até "Chaves de acesso" e seguida clique em "Criar chave de acesso":


Nesta etapa aparecerá um aviso, alertando que não é recomendado a liberação de chaves para o usuário raiz, é possível realizar essa configuração utilizando as melhores práticas, porém para ganharmos tempo vamos seguir com essa configuração, basta ter cuidado com as chaves geradas, jamais deixe a chave exposta em um repositório público, garanta que somente você tem acesso á chave que for gerada, marque o checkbox confirmando a criação, na tela seguinte clique em "Baixar arquivo .csv" e seguida clique em "Concluído".


Vá até o diretório pai de onde está localizado os arquivos com a pasta dos arquivos do site, no meu caso os arquivos estão na raiz da pasta S3 conforme o print abaixo, no diretório pai da pasta S3 irei criar um arquivo .bat com o comando para subir os arquivos para o S3, copie e cole o código abaixo neste arquivo .bat, basicamente estamos informando a pasta local que contém os arquivos e para qual bucket a copia será realizada deixando de fora o diretório .git da cópia para não subir arquivos desnecessáriamente providos do github caso a pasta seja um clone de lá.

aws s3 sync C:\Users\Principal\source\Quiz-Facil\S3 s3://quizfacil.com.br --exclude ".git/*"

Abra o terminal no diretório da pasta onde esta localizado o arquivo .bat, somente pela primeira e uma única vez vez precisamos executar o comando "aws configure" no terminal para adicionarmos as configurações necessárias da aws habilitando assim permissão e o direcionamento correto para escrita/leitura do bucket no S3, logo em seguida será solicitado o id da chave de acesso e a chave secreta que estão no .csv baixados na última etapa de criação de chaves na aws, copie e cole diretamente no terminal, em seguida será solicitado a região padrão, coloque a mesma região do bucket (pode ser consultado na tela inicial de listagem de buckets do S3, normalmente sa-east-1 se tiver sido selecionado São Paulo). Após as configurações iniciais de aws, podemos executar o .bat para subir os arquivos para o bucket, basta digitar o nome do arquivo .bat, a execução ficará conforme o print abaixo, nas próximas vezes que for atualizar os arquivos no bucket, não será necessário executar aws configure, basta clicar no bat ou chamá-lo via terminal.


Após executado os camandos no terminal, podemos visualizar diretamente no bucket os arquivos na aba inicial de "Objetos":



Agora podemos acessar o nosso site diretamente através da URL gerada automaticamente pelo S3 para acessar o nosso site estático, vá até a aba "Propriedades" e role a página até o final até chegar em "Hospedagem de site estático", na linha final é possível visualizar a URL:


Acesse ela para realizarmos o teste, visualizaremos o nosso site já publicado:


Por enquanto é isso! Em breve, continuaremos o tutorial com a criação de um apontamento do domínio para tornar a URL do S3 mais amigável. Fique ligado para a próxima parte!

Leitura

Recentemente no Blog

Thumbnail for Hospedando site estático (Parte: 1)
Nov 18, 2023 | WEB | 0

Hospedando site estático (Parte: 1)

Hospedando site estático com custo zero utilizando Cloudflare e Amazon S3.

Thumbnail for Manipulando arquivos JSON com performance
Out 29, 2023 | .NET | 0

Manipulando arquivos JSON com performance

Aprenda em poucos passos a ler/escrever arquivo JSON de forma simples.

Thumbnail for Diferentes formas de trabalhar com paralelismo no C#: threads, Parallel For e Parallel LINQ
Dez 27, 2022 | .Net | 0

Diferentes formas de trabalhar com paralelismo no C#: threads, Parallel For e Parallel LINQ

Aqui ensino uma técnica muito boa para aumentar significativamente performance de aplicações

Thumbnail for Minha história
Dez 25, 2022 | Carreira | 0

Minha história

Toda história da minha carreira do início até a atualidade e também falo um pouco sobre a minha visão do futuro.

Thumbnail for (Em breve) Servidor gratuito na AWS (VPS)
Out 29, 2023 | AWS | 0

(Em breve) Servidor gratuito na AWS (VPS)

Hospede de graça as suas aplicações, descubra aqui como é simples.

Sobre

Quem sou eu?

Olá, eu sou Anderson Silva sou um programador com mais de 7 anos de experiência na área de T.I. Comecei minha carreira como técnico de informática em 2016 que foi a fase em que aprimorei habilidades técnicas e atendimento ao usuário final. Em 2019, decidi me especializar em programação, desde então tenho trabalhado em projetos de diversos tamanhos e complexidades.

Tenho habilidades sólidas em linguagens backend como C#, Node e gosto de trabalhar em projetos desafiadores, tenho a honra de ter participado de um dos projetos vencedores do Fapemig 2021 que foi a construção de um chatbot criado para atuar na área da saúde. Estou sempre em busca de aprendizado e crescimento profissional.

Inovação

Pesquisa

Desenvolvimento

Aplicação

Te convido a fazer parte das minhas redes sociais,
será um prazer trocar conhecimentos com você!

Habilidades

Minhas habilidades

Estou listando aqui algumas das habilidades que adquiri ao longo do tempo e que uso no dia-dia, o percentual representa o quanto tenho contato com essas tecnologias diariamente

.Net C#

Avançado

Javascript

Avançado

HTML5

Intermediário

CSS3

Intermediário

SQL

Intermediário

AWS

Médio

Git

Intermediário

React

Básico

Angular

Básico

Node

Médio
Copos de café
Anos de Experiência em T.I
Educação

Educação

Durante minha pós-graduação em Análise de Machine Learning, aprendi sobre vários tópicos importantes que me abriram a mente de como funciona esse mundo incrível da inteligência artificial.

Um dos tópicos mais valiosos que aprendi foi sobre técnicas de machine learning, como regressão, classificação e agrupamento. Aprendi como aplicar cada uma dessas técnicas em conjunto com diferentes algoritmos de machine learning, como o algoritmo K-Means e o algoritmo de regressão linear.

Também aprendi sobre a preparação de dados, que é uma etapa crucial na análise de machine learning. Aprendi sobre técnicas de pré-processamento de dados, como normalização e padronização, e sobre como lidar com dados ausentes ou incorretos.

Outro tópico importante que estudei foi sobre avaliação de modelos de machine learning. Aprendi sobre diferentes métricas de avaliação, como acurácia e f1-score, e como escolher a métrica adequada para cada problema de machine learning.

Esses são apenas alguns dos tópicos que aprendi durante minha pós-graduação em análise de machine learning e que sempre levo em consideração quando estou lidando com uma aplicação ou projeto que envolve inteligência artificial.

Durante minha graduação em Análise e Desenvolvimento de Sistemas, aprendi sobre vários tópicos importantes que me prepararam para a carreira de desenvolvedor de software.

Aprendi sobre padrões de projeto, que são soluções bem estabelecidas para problemas comuns encontrados durante o desenvolvimento de software. Isso me ajudou a escrever código mais limpo e organizado e a criar aplicações de software de maneira mais eficiente.

Outro tópico importante que estudei foi sobre metodologias de desenvolvimento de software, como ágil e cascata. Aprendi sobre as vantagens e desvantagens de cada uma dessas abordagens e como escolher a melhor para cada projeto de software.

Esses são apenas alguns dos tópicos que aprendi durante minha graduação em desenvolvimento de sistemas. Venho aplicacando esses conhecimentos em minha carreira de desenvolvedor de software e continuo aprendendo e crescendo na indústria.

Durante minha formação Técnica em Informática, aprendi sobre vários tópicos importantes que me prepararam para a carreira de técnico de informática.

Um dos tópicos mais valiosos que aprendi foi sobre programação, foi lógica de programação, estruturas de dados e algoritmos, o que me ajudou a escrever código eficiente e bem estruturado. Assim como também criei aplicações acadêmicas utilizando Java (mobile, deskop e web), html, css e javascript.

Também aprendi sobre redes, incluindo como configurar e gerenciar redes de computadores. Aprendi sobre protocolos de rede, como TCP/IP e HTTP, e sobre como garantir a segurança de uma rede.

Outro tópico importante que estudei foi sobre sistemas operacionais, como Windows e Linux. Aprendi sobre como instalar e configurar sistemas operacionais, bem como sobre como gerenciar arquivos e pastas e resolver problemas comuns.

Além disso, aprendi um pouco sobre hardware, incluindo como montar e desmontar computadores e como instalar e configurar periféricos. Também aprendi sobre segurança da informação, incluindo como proteger um sistema de computador de ameaças externas.

Esses são apenas alguns dos tópicos que aprendi durante minha formação técnica em informática no qual tive uma base de conhecimento para iniciar a aprendizagem da programação e que fez total diferença em minha evolução.

Decidi fazer cursos profissionalizantes em programação, segurança da informação, machine learning e assim como também participar de eventos para aperfeiçoar minhas habilidades e ampliar meus conhecimentos na área.

Cada curso me proporcionou uma visão mais aprofundada dessas áreas e me deu a oportunidade de praticar e aplicar o que aprendi em projetos reais. Além disso, esses cursos me permitiram conhecer profissionais experientes e aprender com eles.

A seguir, estão os cursos profissionalizantes que completei:

  • (Alura) Angular Parte 3: Upload, Build e Novos Componentes - Fev/2022
  • (Alura) Angular Parte 2: Autenticação, Forms e Lazy Loading - Fev/2022
  • (IGTI) Evento Dev Summit Speed - Fev/2022
  • (Alura) Python Scikit-learn: Regressão, Classificação e Clustering - Nov/2021
  • (Alura) Angular Parte 1: Upload, Build e Novos Componentes - Out/2021
  • (Alura) Clustering Básico: K-means, Dbscan e Mean Shift - Out/2021
  • (Alura) Machine Learning: Intro a Sistemas de Recomendação Em Python - Out/2021
  • (Alura) Machine Learning: Introdução a classificação com SKLearn - Out/2021
  • (Alura) Solid Com Java: Princípios da Programação Orientada a Objetos - Out/2021
  • (Grasshopers) Fundamentos de Codificação - Jun/2021
  • (Lucas Caton) Desenvolvimento Web Direto ao Ponto - Dez/2020
  • (IGTI) Bootcamp Desenvolvedor Fullstack - Aug/2020
  • (Roadsec) Evento de segurança da informação em São Paulo - Nov/2019
  • (Udemy Academy) Bootstrap 4: Completo e Direto ao Ponto - Jul/2019
  • (Roadsec) Evento de segurança da informação em Belo Horizonte - Jun/2019
  • (Fireshell Security Team) Introdução Ao Mundo de Capture The Flag (CTF) - Mar/2019
  • Hacker Ético Profissional - Nível 2 - Nov/2018
  • Hacker Ético Profissional - Nível 1 - Jan/2018
Experiências

Experiência Profissional

Desenvolvedor Full Stack Pleno III na BTGMaio 2022 - Atual

Alocado pela DQR Tech em projeto financeiro no maior banco de investimento na américa latina, realizando manutenções no sistema e desenvolvendo novas features utilizando .NET 5 C#, React, Amazon DynamoDB, AWS Lambda, Microsoft SQL Server, teste unitários, princípios SOLID, design patterns, controle de versão com Azure Devops e metodologia ágil usando o Kanban.

Analista de Sistemas no Grupo Santa Casa BHNov 2020- Out 2021

Analisar e desenvolver projetos de sistemas, levantar requisitos, mapear processos e realizar modelagem de dados com o objetivo de estudar e implementar sistemas de acordo com as regras de negócio. Analisar o desempenho de sistemas implantados, solucionar problemas técnicos, dar suporte ao usuário final, elaborar documentações.

Desenvolvedor de Sistemas no Grupo Santa Casa BHAbr 2019- Nov 2020

Programação fullstack utilizando as tecnologias .net (core, framework, c#), node, oracle realizando manutenção de sistemas, melhorias e também auxiliando com a criação e implementação de novos sistemas.

Técnico de suporte na CW4 Soluções Jun 2018 - Dez 2018

Suporte nas principais ferramentas e produtos relacionados às soluções da segurança da informação em ambiente corporativo.

Técnico de informática no Grupo Santa Casa BHJun 2016 - Out 2018

Responsável por manter a integridade e o correto funcionamento dos principais sistemas utilizados pelo grupo, auxiliar usuários via acesso remoto e atendimento local, manutenção de computadores e impressoras, avaliar problemas e encaminhá-los para o devido suporte quando necessário. Auxilio na gestão da equipe e tomada de decisões.

Entre em contato

Contato

Belo Horizonte, Minas Gerais