<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cloud Computing &#8211; Manual do Programador</title>
	<atom:link href="https://www.manualdoprogramador.com/category/infraestrutura/cloud-computing/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.manualdoprogramador.com</link>
	<description>Explore o Manual do Programador e encontre artigos detalhados e atualizados sobre linguagens de programação, frameworks, desenvolvimento web, mobile, inteligência artificial e muito mais. Nosso objetivo é fornecer um conteúdo de qualidade e prático para desenvolvedores de todos os níveis - desde iniciantes até profissionais experientes. Descubra dicas para melhorar a eficiência do seu código, tutoriais passo a passo para projetos práticos, novidades do mundo da programação e resenhas de ferramentas úteis</description>
	<lastBuildDate>Thu, 24 Jul 2025 12:01:10 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/06/Logo-redonda-1-1.png?fit=32%2C32&#038;ssl=1</url>
	<title>Cloud Computing &#8211; Manual do Programador</title>
	<link>https://www.manualdoprogramador.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">220693552</site>	<item>
		<title>Como Configurar uma VPN L2TP no Ubuntu Server</title>
		<link>https://www.manualdoprogramador.com/como-configurar-uma-vpn-l2tp-no-ubuntu-server/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-configurar-uma-vpn-l2tp-no-ubuntu-server</link>
					<comments>https://www.manualdoprogramador.com/como-configurar-uma-vpn-l2tp-no-ubuntu-server/#respond</comments>
		
		<dc:creator><![CDATA[Davi Antonaji]]></dc:creator>
		<pubDate>Fri, 29 Nov 2024 22:06:05 +0000</pubDate>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infraestrutura]]></category>
		<category><![CDATA[Administração de Servidores]]></category>
		<category><![CDATA[Configuração de VPN]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Guia de Configuração]]></category>
		<category><![CDATA[IPsec]]></category>
		<category><![CDATA[L2TP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Manual do Programador]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[Segurança de Rede]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[TI e Infraestrutura]]></category>
		<category><![CDATA[Tutoriais Linux]]></category>
		<category><![CDATA[Ubuntu Server]]></category>
		<category><![CDATA[VPN]]></category>
		<guid isPermaLink="false">https://www.manualdoprogramador.com/?p=1207</guid>

					<description><![CDATA[Criar uma VPN L2TP no Ubuntu Server pode parecer desafiador à primeira vista, mas com os passos corretos, você terá [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Criar uma VPN L2TP no Ubuntu Server pode parecer desafiador à primeira vista, mas com os passos corretos, você terá sua conexão configurada e segura rapidamente. Este guia detalha todo o processo, desde a atualização do sistema até a criação de usuários adicionais para a VPN.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Passo 1: Preparando o Servidor</strong></h3>



<p>Acesse seu servidor como administrador (root):</p>



<pre class="wp-block-preformatted">sudo su -</pre>



<p>Atualize o sistema operacional para garantir que tudo está atualizado e compatível:</p>



<pre class="wp-block-preformatted">apt-get update -y &amp;&amp; apt-get upgrade -y &amp;&amp; apt-get dist-upgrade -y</pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Passo 2: Baixando o Script de Configuração</strong></h3>



<p>Utilizaremos um script para configurar automaticamente a VPN. Baixe o script:</p>



<pre class="wp-block-preformatted">wget https://get.vpnsetup.net -O vpn.sh</pre>



<p>Antes de executá-lo, abra o script para editar as configurações básicas:</p>



<pre class="wp-block-preformatted">vi vpn.sh</pre>



<p><strong>Edite as seguintes variáveis no script:</strong></p>



<ul class="wp-block-list">
<li>Adicione a <strong>chave pré-compartilhada (PSK)</strong>.</li>



<li>Configure o nome do <strong>usuário principal</strong> e sua <strong>senha</strong>.</li>
</ul>



<p>Depois de configurar, salve e saia do editor (no&nbsp;<code>vi</code>, digite&nbsp;<code>:wq</code>&nbsp;e pressione Enter).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Passo 3: Executando o Script</strong></h3>



<p>Com as configurações prontas, execute o script para configurar a VPN:</p>



<pre class="wp-block-preformatted">sh vpn.sh<br></pre>



<p>Esse script configurará os serviços necessários, como o <strong>IPsec</strong> e o <strong>L2TP</strong>, além de ajustar as permissões.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Passo 4: Adicionando Usuários Adicionais</strong></h3>



<p>Se você precisar criar novos usuários para acessar a VPN, use o seguinte comando:</p>



<pre class="wp-block-preformatted">addvpnuser.sh 'usuario01' 'senha01'</pre>



<p>Substitua <code>&#039;usuario01&#039;</code> e <code>&#039;senha01&#039;</code> pelos dados do novo usuário.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Passo 5: Liberando Portas no Firewall</strong></h3>



<p>Certifique-se de que as portas necessárias para a VPN estão abertas no firewall. As portas que precisam estar liberadas são:</p>



<ul class="wp-block-list">
<li><strong>Porta 500 UDP</strong> (IKEv1/IKEv2)</li>



<li><strong>Porta 4500 UDP</strong> (NAT-T)</li>
</ul>



<p>Se você utiliza o&nbsp;<code>ufw</code>, execute os comandos abaixo:</p>



<pre class="wp-block-preformatted">ufw allow 500/udp<br>ufw allow 4500/udp<br>ufw reload</pre>



<p>Caso utilize outra ferramenta de firewall, ajuste as configurações conforme necessário.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Dicas Finais</strong></h3>



<ul class="wp-block-list">
<li>Após a configuração, você pode conectar dispositivos Windows, macOS, Android ou iOS à VPN utilizando o IP do servidor, a chave pré-compartilhada (PSK) e as credenciais de usuário criadas.</li>



<li><strong>Teste a conexão</strong> para garantir que a VPN está funcionando corretamente.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Conclusão</strong></h3>



<p>Com esses passos, você terá uma VPN L2TP funcionando de forma eficiente e segura no Ubuntu Server. Isso pode ser útil para acessar recursos remotos, proteger conexões públicas ou até mesmo criar um ambiente de trabalho seguro para sua equipe.</p>



<p>Se você encontrou algum problema ou tem dúvidas, compartilhe nos comentários! <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.manualdoprogramador.com/como-configurar-uma-vpn-l2tp-no-ubuntu-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1207</post-id>	</item>
		<item>
		<title>Como Configurar uma Função Lambda com Python para Exportar Custos da AWS para um Banco de Dados MySQL</title>
		<link>https://www.manualdoprogramador.com/como-configurar-uma-funcao-lambda-com-python-para-exportar-custos-da-aws-para-um-banco-de-dados-mysql/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-configurar-uma-funcao-lambda-com-python-para-exportar-custos-da-aws-para-um-banco-de-dados-mysql</link>
					<comments>https://www.manualdoprogramador.com/como-configurar-uma-funcao-lambda-com-python-para-exportar-custos-da-aws-para-um-banco-de-dados-mysql/#respond</comments>
		
		<dc:creator><![CDATA[Davi Antonaji]]></dc:creator>
		<pubDate>Mon, 08 Jul 2024 19:26:24 +0000</pubDate>
				<category><![CDATA[Back-end]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infraestrutura]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[automatização]]></category>
		<category><![CDATA[AWS Cost Explorer]]></category>
		<category><![CDATA[AWS Lambda]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[configuração Lambda]]></category>
		<category><![CDATA[desenvolvimento em nuvem]]></category>
		<category><![CDATA[EventBridge]]></category>
		<category><![CDATA[exportação de dados]]></category>
		<category><![CDATA[IAM]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">https://www.manualdoprogramador.com/?p=1035</guid>

					<description><![CDATA[O tutorial detalha como criar e configurar uma função Lambda que exporta os custos do AWS Cost Explorer para um banco de dados MySQL. Os passos incluem: criar a função Lambda em Python 3.12, configurar o banco de dados MySQL com scripts SQL, definir a pasta do código e instalar dependências com pip, adicionar código fonte para manipular dados e inserir informações no banco de dados, empacotar e enviar o código para a AWS, criar uma política de IAM e anexá-la, configurar variáveis de ambiente e ajustar o tempo de execução, além de criar uma regra no EventBridge para acionar a função diariamente às 00:00 UTC.]]></description>
										<content:encoded><![CDATA[
<p>Neste tutorial, vamos detalhar o processo de criação e configuração de uma função Lambda que exporta os custos do AWS Cost Explorer para um banco de dados MySQL. Esse processo envolve a criação da função Lambda, configuração do banco de dados MySQL. Vamos ao passo a passo:</p>



<h4 class="wp-block-heading">Passo 1: Criar a Função Lambda</h4>



<ol class="wp-block-list">
<li><strong>Nome da Função</strong>: CE-Exporter-MySQL</li>



<li><strong>Linguagem</strong>: Python 3.12</li>
</ol>



<h4 class="wp-block-heading">Passo 2: Configurar o Banco de Dados MySQL</h4>



<p>Execute os seguintes comandos no seu servidor MySQL para criar o banco de dados e a tabela necessária:</p>



<pre class="wp-block-code"><code>CREATE DATABASE IF NOT EXISTS ResourceCosts;
USE ResourceCosts;

CREATE TABLE costs (
  id int AUTO_INCREMENT PRIMARY KEY,
  account_id varchar(20),
  region varchar(50),
  service varchar(50),
  amount decimal(10,2),
  currency_unit varchar(10),
  start_time datetime,
  end_time datetime
);

ALTER TABLE costs
  ADD KEY idx_costs_account_region_service (account_id, region, service);</code></pre>



<h4 class="wp-block-heading">Passo 3: Criar a Pasta do Código do Lambda</h4>



<ol class="wp-block-list">
<li><strong>Diretório Local</strong>: Crie um diretório local para armazenar o código da Lambda.</li>



<li><strong>Dependências</strong>: Crie um arquivo <code>requirements.txt</code> com o seguinte conteúdo:</li>
</ol>



<pre class="wp-block-code"><code>pymysql
boto3</code></pre>



<h4 class="wp-block-heading">Passo 4: Instalar Dependências</h4>



<p>No terminal, execute o comando abaixo para instalar as dependências no diretório local:</p>



<pre class="wp-block-code"><code>pip3 install -r requirements.txt -t .</code></pre>



<h4 class="wp-block-heading">Passo 5: Adicionar o Código Fonte</h4>



<p>Crie um arquivo chamado <code>lambda_function.py</code> no mesmo diretório e adicione o seguinte código:</p>



<pre class="wp-block-code"><code>import boto3
import pymysql
import os
import datetime

# Configurações MySQL
MYSQL_DB = os.getenv(&#039;MYSQL_DB&#039;)
MYSQL_HOST = os.getenv(&#039;MYSQL_HOST&#039;)
MYSQL_PASSWORD = os.getenv(&#039;MYSQL_PASSWORD&#039;)
MYSQL_PORT = int(os.getenv(&#039;MYSQL_PORT&#039;))
MYSQL_USER = os.getenv(&#039;MYSQL_USER&#039;)

# Classe para manipulação de dados do Cost Explorer e MySQL
class CostExplorerToMySQL:
    def __init__(self):
        self.ce_client = boto3.client(&#039;ce&#039;)
        self.sts_client = boto3.client(&#039;sts&#039;)
        self.conn = pymysql.connect(host=MYSQL_HOST,
                                    user=MYSQL_USER,
                                    password=MYSQL_PASSWORD,
                                    db=MYSQL_DB,
                                    port=MYSQL_PORT)
        self.account_id = self.get_account_id()

    def get_account_id(self):
        response = self.sts_client.get_caller_identity()
        return response&#091;&#039;Account&#039;]

    def fetch_cost_data(self, start_date, end_date):
        results = &#091;]
        response = self.ce_client.get_cost_and_usage(
            TimePeriod={&#039;Start&#039;: start_date, &#039;End&#039;: end_date},
            Granularity=&#039;DAILY&#039;,
            Metrics=&#091;&#039;UnblendedCost&#039;],
            GroupBy=&#091;
                {&#039;Type&#039;: &#039;DIMENSION&#039;, &#039;Key&#039;: &#039;REGION&#039;},
                {&#039;Type&#039;: &#039;DIMENSION&#039;, &#039;Key&#039;: &#039;SERVICE&#039;}
            ]
        )
        results.extend(response&#091;&#039;ResultsByTime&#039;])
        while &#039;nextToken&#039; in response:
            nextToken = response&#091;&#039;nextToken&#039;]
            response = self.ce_client.get_cost_and_usage(
                TimePeriod={&#039;Start&#039;: start_date, &#039;End&#039;: end_date},
                Granularity=&#039;DAILY&#039;,
                Metrics=&#091;&#039;UnblendedCost&#039;],
                GroupBy=&#091;
                    {&#039;Type&#039;: &#039;DIMENSION&#039;, &#039;Key&#039;: &#039;REGION&#039;},
                    {&#039;Type&#039;: &#039;DIMENSION&#039;, &#039;Key&#039;: &#039;SERVICE&#039;}
                ],
                NextPageToken=nextToken
            )
            results.extend(response&#091;&#039;ResultsByTime&#039;])
        return results

    def insert_cost_data(self, data):
        cursor = self.conn.cursor()
        insert_query = &quot;&quot;&quot;
            INSERT INTO costs (account_id, region, service, amount, currency_unit, start_time, end_time)
            VALUES (%s, %s, %s, %s, %s, %s, %s)
        &quot;&quot;&quot;
        cursor.executemany(insert_query, data)
        self.conn.commit()

    def process_and_store_data(self, start_date, end_date):
        raw_data = self.fetch_cost_data(start_date, end_date)
        processed_data = &#091;]
        for result in raw_data:
            start_time = result&#091;&#039;TimePeriod&#039;]&#091;&#039;Start&#039;] + &quot; 00:00:00&quot;
            end_time = result&#091;&#039;TimePeriod&#039;]&#091;&#039;End&#039;] + &quot; 23:59:59&quot;
            for group in result&#091;&#039;Groups&#039;]:
                region = group&#091;&#039;Keys&#039;]&#091;0]
                service = group&#091;&#039;Keys&#039;]&#091;1]
                amount = float(group&#091;&#039;Metrics&#039;]&#091;&#039;UnblendedCost&#039;]&#091;&#039;Amount&#039;])
                currency_unit = group&#091;&#039;Metrics&#039;]&#091;&#039;UnblendedCost&#039;]&#091;&#039;Unit&#039;]
                processed_data.append((self.account_id, region, service, amount, currency_unit, start_time, end_time))
        self.insert_cost_data(processed_data)

    def close(self):
        self.conn.close()

def lambda_handler(event, context):
    explorer_to_mysql = CostExplorerToMySQL()
    ontem = datetime.datetime.utcnow() - datetime.timedelta(days=1)
    hoje = datetime.datetime.utcnow()
    start_date = ontem.strftime(&#039;%Y-%m-%d&#039;)
    end_date = hoje.strftime(&#039;%Y-%m-%d&#039;)
    explorer_to_mysql.process_and_store_data(start_date, end_date)
    explorer_to_mysql.close()
    return &quot;Report Generated&quot;</code></pre>



<h4 class="wp-block-heading">Passo 6: Empacotar e Enviar para a AWS</h4>



<p>Compacte o conteúdo do diretório em um arquivo ZIP e envie para a função Lambda na AWS:</p>



<pre class="wp-block-code"><code>zip -r aws-ce-exporter-mysql.zip .
aws lambda update-function-code --function-name CE-Exporter-MySQL --zip-file fileb://aws-ce-exporter-mysql.zip
rm -rf aws-ce-exporter-mysql.zip</code></pre>



<h4 class="wp-block-heading">Passo 7: Criar a Política de IAM</h4>



<p>Crie uma política de IAM no console da AWS com o seguinte JSON para permitir as ações ce:GetCostAndUsage e tag:GetResources:</p>



<pre class="wp-block-code"><code>{
    &quot;Version&quot;: &quot;2012-10-17&quot;,
    &quot;Statement&quot;: &#091;
        {
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Action&quot;: &#091;
                &quot;ce:GetCostAndUsage&quot;,
                &quot;tag:GetResources&quot;
            ],
            &quot;Resource&quot;: &quot;*&quot;
        }
    ]
}</code></pre>



<h4 class="wp-block-heading">Passo 8: Anexar a Política à Role do Lambda</h4>



<p>No console da AWS, vá até a função Lambda CE-Exporter-MySQL, clique em &#8220;Configurações de permissão&#8221; e anexe a política criada anteriormente à função.</p>



<h4 class="wp-block-heading">Passo 9: Configurar Variáveis de Ambiente</h4>



<p>No console do AWS Lambda, vá para as configurações da sua função Lambda e adicione as seguintes variáveis de ambiente:</p>



<ul class="wp-block-list">
<li><code>MYSQL_DB</code>: Nome do banco de dados MySQL (ex.: <code>ResourceCosts</code>)</li>



<li><code>MYSQL_HOST</code>: Endereço do host do banco de dados MySQL</li>



<li><code>MYSQL_PASSWORD</code>: Senha do usuário do banco de dados MySQL</li>



<li><code>MYSQL_PORT</code>: Porta do banco de dados MySQL (geralmente 3306)</li>



<li><code>MYSQL_USER</code>: Usuário do banco de dados MySQL</li>
</ul>



<h4 class="wp-block-heading">Passo 10: Ajustar o Tempo de Execução Máximo da Lambda</h4>



<p>No Console da AWS, navegue até a função Lambda <code>CE-Exporter-MySQL</code>. Clique na guia Configuration e, em seguida, em General configuration. Clique em Edit para ajustar o tempo de execução máximo. Defina o Timeout para 15 segundos e clique em Save.</p>



<h4 class="wp-block-heading">Passo 11: Criar o EventBridge para Disparar a Lambda</h4>



<p>No Console da AWS, navegue até Amazon EventBridge. Clique em Create rule para criar uma nova regra. Dê um nome à sua regra, como <code>Ce-Exporter-MySQL-EB-Rule</code>, e selecione Rule type como Event pattern. Na seção Event pattern, selecione Scheduled event e insira a expressão de cronograma: <code>cron(0 0 * * ? *)</code> para agendar a execução da Lambda diariamente à 00:00 UTC. Clique em Next.</p>



<h3 class="wp-block-heading">Conclusão</h3>



<p>Com esses passos, a função Lambda <code>CE-Exporter-MySQL</code> estará configurada para executar diariamente, obter os custos do AWS Cost Explorer e inserir esses dados no banco de dados MySQL. Certifique-se de configurar corretamente as variáveis de ambiente para que a função Lambda possa conectar ao banco de dados</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.manualdoprogramador.com/como-configurar-uma-funcao-lambda-com-python-para-exportar-custos-da-aws-para-um-banco-de-dados-mysql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1035</post-id>	</item>
		<item>
		<title>Explorando Variáveis e Outputs no Terraform</title>
		<link>https://www.manualdoprogramador.com/explorando-variaveis-e-outputs-no-terraform/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=explorando-variaveis-e-outputs-no-terraform</link>
					<comments>https://www.manualdoprogramador.com/explorando-variaveis-e-outputs-no-terraform/#respond</comments>
		
		<dc:creator><![CDATA[Davi Antonaji]]></dc:creator>
		<pubDate>Mon, 08 Jul 2024 12:30:27 +0000</pubDate>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infraestrutura]]></category>
		<guid isPermaLink="false">https://www.manualdoprogramador.com/?p=1026</guid>

					<description><![CDATA[O post detalha a importância das variáveis e outputs no Terraform para tornar o código mais modular, reutilizável e fácil de gerenciar. Explica como definir e utilizar variáveis de entrada (input variables) e seus principais argumentos, como default, type, description, validation, sensitive e nullable, além de tipos suportados, tanto simples quanto complexos. Exemplos mostram como usar variáveis em arquivos tf para configurar recursos no AWS e Azure. Outputs são utilizados para expor informações da infraestrutura provisionada, facilitando o compartilhamento de dados e a integração com outras ferramentas, com atenção à segurança através do atributo sensitive.]]></description>
										<content:encoded><![CDATA[
<p>No Terraform, variáveis e outputs são componentes essenciais que ajudam a tornar o código mais modular, reutilizável e fácil de gerenciar. Este post irá detalhar como definir e utilizar variáveis e outputs, proporcionando flexibilidade e eficiência na gestão de infraestrutura.</p>



<h4 class="wp-block-heading">Como Funcionam Variáveis no Terraform</h4>



<h5 class="wp-block-heading">Input Variables</h5>



<p>As variáveis de entrada (input variables) permitem a parametrização do código Terraform, tornando-o mais flexível. Aqui estão os principais argumentos usados em input variables:</p>



<ul class="wp-block-list">
<li><strong>default</strong>: Valor padrão da variável.</li>



<li><strong>type</strong>: Tipo da variável.</li>



<li><strong>description</strong>: Descrição da variável.</li>



<li><strong>validation</strong>: Regras de validação.</li>



<li><strong>sensitive</strong>: Indica se a variável deve ser tratada como sensível.</li>



<li><strong>nullable</strong>: Indica se a variável pode ser nula.</li>
</ul>



<h5 class="wp-block-heading">Tipos Suportados</h5>



<ul class="wp-block-list">
<li><strong>Simples</strong>: <code>string</code>, <code>number</code>, <code>bool</code></li>



<li><strong>Complexos</strong>: <code>list(&lt;tipo&gt;)</code>, <code>set(&lt;tipo&gt;)</code>, <code>map(&lt;tipo&gt;)</code>, <code>object({nome_de_atributo = &lt;tipo&gt;})</code>, <code>tuple([&lt;tipo&gt;, ...])</code></li>
</ul>



<h5 class="wp-block-heading">Exemplo de Definição de Variáveis</h5>



<pre class="wp-block-code"><code>// variables.tf
variable &quot;ami_id&quot; {
  description = &quot;ID da AMI para a instância&quot;
  type        = string
  default     = &quot;ami-12345678&quot;
}

variable &quot;instance_type&quot; {
  description = &quot;Tipo da instância&quot;
  type        = string
  default     = &quot;t2.micro&quot;
}

variable &quot;instance_name&quot; {
  description = &quot;Nome da instância&quot;
  type        = string
  default     = &quot;MinhaInstancia&quot;
}</code></pre>



<h5 class="wp-block-heading">Utilizando Variáveis no Código</h5>



<pre class="wp-block-code"><code>// main.tf
provider &quot;aws&quot; {
  region = &quot;us-east-1&quot;
}

resource &quot;aws_instance&quot; &quot;example&quot; {
  ami           = var.ami_id
  instance_type = var.instance_type
  tags = {
    Name = var.instance_name
  }
}</code></pre>



<h4 class="wp-block-heading">Outputs no Terraform</h4>



<p>Outputs são usados para expor informações sobre a infraestrutura provisionada pelo Terraform, facilitando o compartilhamento de dados entre diferentes partes do código ou mesmo com outras ferramentas.</p>



<h5 class="wp-block-heading">Definindo Outputs</h5>



<pre class="wp-block-code"><code>// outputs.tf
output &quot;instance_id&quot; {
  description = &quot;ID da instância EC2&quot;
  value       = aws_instance.example.id
}

output &quot;instance_public_ip&quot; {
  description = &quot;Endereço IP público da instância EC2&quot;
  value       = aws_instance.example.public_ip
  sensitive   = true
}</code></pre>



<h5 class="wp-block-heading">Utilizando Outputs</h5>



<p>Os outputs definidos podem ser acessados utilizando o comando <code>terraform output</code>:</p>



<pre class="wp-block-code"><code>terraform output instance_id
terraform output -raw instance_public_ip</code></pre>



<h4 class="wp-block-heading">Exemplos de Configuração e Uso</h4>



<h5 class="wp-block-heading">Arquivo variables.tf</h5>



<pre class="wp-block-code"><code>variable &quot;location&quot; {
  description = &quot;Localização dos recursos&quot;
  type        = string
  default     = &quot;us-east-1&quot;
}

variable &quot;account_tier&quot; {
  description = &quot;Nível da conta de armazenamento&quot;
  type        = string
  default     = &quot;Standard&quot;
}

variable &quot;account_replication_type&quot; {
  description = &quot;Tipo de replicação da conta de armazenamento&quot;
  type        = string
  default     = &quot;LRS&quot;
}</code></pre>



<h5 class="wp-block-heading">Arquivo main.tf</h5>



<pre class="wp-block-code"><code>provider &quot;azurerm&quot; {
  features {}
}

resource &quot;azurerm_resource_group&quot; &quot;rg_storage&quot; {
  name     = &quot;myResourceGroup&quot;
  location = var.location
}

resource &quot;azurerm_storage_account&quot; &quot;storage_account&quot; {
  name                     = &quot;mystorageaccount&quot;
  resource_group_name      = azurerm_resource_group.rg_storage.name
  location                 = var.location
  account_tier             = var.account_tier
  account_replication_type = var.account_replication_type
}
</code></pre>



<h5 class="wp-block-heading">Arquivo outputs.tf</h5>



<pre class="wp-block-code"><code>output &quot;storage_account_id&quot; {
  description = &quot;ID da Storage Account criada na Azure&quot;
  value       = azurerm_storage_account.storage_account.id
}

output &quot;sa_primary_access_key&quot; {
  description = &quot;Primary Access Key da Storage Account criada na Azure&quot;
  value       = azurerm_storage_account.storage_account.primary_access_key
  sensitive   = true
}</code></pre>



<h4 class="wp-block-heading">Benefícios dos Outputs</h4>



<ul class="wp-block-list">
<li><strong>Compartilhamento de Informações</strong>: Permitem compartilhar dados entre diferentes partes do código ou módulos.</li>



<li><strong>Integração</strong>: Facilitam a integração com outras ferramentas e scripts.</li>



<li><strong>Segurança</strong>: A utilização do atributo <code>sensitive</code> ajuda a proteger informações confidenciais.</li>
</ul>



<p>Com esses conceitos e exemplos, você estará pronto para utilizar variáveis e outputs no Terraform de forma eficiente, tornando seu código mais modular, seguro e fácil de manter.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.manualdoprogramador.com/explorando-variaveis-e-outputs-no-terraform/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1026</post-id>	</item>
		<item>
		<title>Guia Completo para Instalar e Gerenciar Infraestrutura com Terraform</title>
		<link>https://www.manualdoprogramador.com/guia-completo-para-instalar-e-gerenciar-infraestrutura-com-terraform/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=guia-completo-para-instalar-e-gerenciar-infraestrutura-com-terraform</link>
					<comments>https://www.manualdoprogramador.com/guia-completo-para-instalar-e-gerenciar-infraestrutura-com-terraform/#respond</comments>
		
		<dc:creator><![CDATA[Davi Antonaji]]></dc:creator>
		<pubDate>Mon, 08 Jul 2024 12:18:53 +0000</pubDate>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infraestrutura]]></category>
		<guid isPermaLink="false">https://www.manualdoprogramador.com/?p=1019</guid>

					<description><![CDATA[Terraform, desenvolvido pela HashiCorp, é uma ferramenta de código aberto fundamental para definir, provisionar e gerenciar infraestrutura em nuvens públicas e privadas. Utiliza uma linguagem declarativa que facilita a automação e a consistência. Este post detalha desde a instalação do Terraform com ASDF até comandos essenciais como init, fmt, validate, plan, apply e destroy. Algumas das vantagens do Terraform incluem automação, consistência, reutilização de código, versionamento e suporte multi-cloud. Também são descritas estruturas de arquivos importantes como main.tf, variables.tf, outputs.tf, e o estado da infraestrutura armazenado em terraform.tfstate.]]></description>
										<content:encoded><![CDATA[
<p>No mundo da infraestrutura como código (IaC), o Terraform se destaca como uma ferramenta essencial para definir, provisionar e gerenciar recursos em diversos provedores de nuvem. Desenvolvido pela HashiCorp, o Terraform usa uma linguagem declarativa para facilitar a automação e a consistência na configuração de infraestrutura. Neste post, vamos explorar as funções básicas do Terraform, desde a instalação até os comandos essenciais para gerenciar sua infraestrutura.</p>



<h4 class="wp-block-heading">O que é o Terraform?</h4>



<p>Terraform é uma ferramenta de código aberto que permite definir, provisionar e gerenciar recursos de infraestrutura em nuvens públicas e privadas. Com o Terraform, é possível automatizar a criação, atualização e versionamento da infraestrutura, garantindo consistência e rastreabilidade.</p>



<h4 class="wp-block-heading">Vantagens do Terraform</h4>



<ul class="wp-block-list">
<li><strong>Automação</strong>: Simplifica o provisionamento de infraestrutura.</li>



<li><strong>Consistência</strong>: Assegura a criação consistente de infraestrutura.</li>



<li><strong>Reutilização</strong>: Permite reutilizar o código para diferentes ambientes.</li>



<li><strong>Versionamento</strong>: Facilita o rollback em caso de problemas.</li>



<li><strong>Multi-cloud</strong>: Suporta múltiplos provedores de nuvem, como AWS, Azure e Google Cloud.</li>
</ul>



<h4 class="wp-block-heading">Instalando o Terraform com ASDF</h4>



<p>Instalar o Terraform usando ASDF é altamente vantajoso porque permite trabalhar com múltiplas versões do Terraform de forma eficiente. Isso significa que você pode gerenciar diferentes projetos e contas usando versões distintas do Terraform sem a necessidade de desinstalar e reinstalar a ferramenta. Por exemplo, você pode implantar um projeto em uma conta com uma versão específica do Terraform e, ao mesmo tempo, usar uma versão mais recente para outra conta, garantindo flexibilidade e compatibilidade sem complicações.</p>



<p>Para instalar o Terraform usando o ASDF, siga estes passos:</p>



<ol class="wp-block-list">
<li><strong>Instale o ASDF</strong>: Siga as instruções no repositório oficial do ASDF.</li>



<li><strong>Adicione o Plugin Terraform</strong>: <code>asdf plugin add terraform https://github.com/asdf-community/asdf-hashicorp.git</code></li>



<li><strong>Instale a Versão Desejada do Terraform</strong>: <code>asdf install terraform &lt;versão_desejada&gt;</code></li>



<li><strong>Defina a Versão Global (opcional)</strong>: <code>asdf global terraform &lt;versão_desejada&gt;</code></li>



<li><strong>Configure o Projeto</strong>: No diretório do seu projeto, crie um arquivo <code>.tool-versions</code> e adicione a versão do Terraform que você quer usar: <code>terraform &lt;versão_desejada&gt;</code></li>
</ol>



<h4 class="wp-block-heading">Estrutura de Arquivos do Terraform</h4>



<ul class="wp-block-list">
<li><code>main.tf</code>: Define os recursos principais.</li>



<li><code>variables.tf</code>: Define variáveis usadas no código.</li>



<li><code>outputs.tf</code>: Define saídas exibidas após a aplicação do plano.</li>



<li><code>provider.tf</code>: Define os provedores utilizados no projeto.</li>



<li><code>terraform.tfstate</code>: Armazena o estado atual da infraestrutura.</li>



<li><code>terraform.tfstate.backup</code>: Backup do estado anterior.</li>
</ul>



<h4 class="wp-block-heading">Comandos Básicos do Terraform</h4>



<p><strong>Terraform Init</strong>: Inicializa um novo código Terraform ou atualiza uma configuração existente.</p>



<pre class="wp-block-code"><code>terraform init</code></pre>



<p><strong>Terraform Fmt</strong>: Formata automaticamente o código Terraform.</p>



<pre class="wp-block-code"><code>terraform fmt</code></pre>



<p><strong>Terraform Validate</strong>: Verifica se a configuração do código é válida.</p>



<pre class="wp-block-code"><code>terraform validate</code></pre>



<p><strong>Terraform Plan</strong>: Gera um plano de execução para a infraestrutura.</p>



<pre class="wp-block-code"><code>terraform plan</code></pre>



<p><strong>Terraform Apply</strong>: Aplica as mudanças definidas no plano.</p>



<pre class="wp-block-code"><code>terraform apply</code></pre>



<p><strong>Terraform Destroy</strong>: Destroi a infraestrutura gerenciada pelo Terraform.</p>



<pre class="wp-block-code"><code>terraform destroy</code></pre>



<h4 class="wp-block-heading">Exemplo de Comando Completo</h4>



<pre class="wp-block-code"><code>terraform init
terraform fmt
terraform validate
terraform plan -out plano.out
terraform apply plano.out
terraform destroy</code></pre>



<p>Seguindo estes passos e utilizando estes comandos, você poderá gerenciar sua infraestrutura de forma eficiente e segura com o Terraform. Automatize suas tarefas, mantenha a consistência e garanta a rastreabilidade das mudanças em seus recursos de nuvem.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Para mais detalhes, consulte a <a href="https://developer.hashicorp.com/terraform/docs">documentação oficial do Terraform</a> e mantenha-se atualizado com as melhores práticas em infraestrutura como código.<br><br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.manualdoprogramador.com/guia-completo-para-instalar-e-gerenciar-infraestrutura-com-terraform/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1019</post-id>	</item>
		<item>
		<title>Aprenda a hospedar um Site Estático na AWS</title>
		<link>https://www.manualdoprogramador.com/hospedagem-site-estatico-aws-s3-cloudfront-configuracao-domino/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hospedagem-site-estatico-aws-s3-cloudfront-configuracao-domino</link>
					<comments>https://www.manualdoprogramador.com/hospedagem-site-estatico-aws-s3-cloudfront-configuracao-domino/#respond</comments>
		
		<dc:creator><![CDATA[Davi Antonaji]]></dc:creator>
		<pubDate>Tue, 08 Aug 2023 12:46:37 +0000</pubDate>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infraestrutura]]></category>
		<category><![CDATA[Amazon CloudFront]]></category>
		<category><![CDATA[Amazon S3]]></category>
		<category><![CDATA[AWS Services]]></category>
		<category><![CDATA[CDN]]></category>
		<category><![CDATA[Configuração de Domínio]]></category>
		<category><![CDATA[Desempenho de Site]]></category>
		<category><![CDATA[Hospedagem na AWS]]></category>
		<category><![CDATA[Hospedagem Web]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[Site Estático]]></category>
		<guid isPermaLink="false">https://www.manualdoprogramador.com/?p=941</guid>

					<description><![CDATA[Introdução: Hospedar um site estático na AWS usando serviços como o Amazon S3 e o Amazon CloudFront é uma maneira [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h4 class="wp-block-heading"><strong>Introdução:</strong></h4>



<p>Hospedar um site estático na AWS usando serviços como o Amazon S3 e o Amazon CloudFront é uma maneira eficiente e escalável de disponibilizar seu conteúdo na web. Neste guia passo a passo, aprenderemos como hospedar um site estático usando uma aplicação React como exemplo, mas o processo é semelhante para outros frameworks como Angular e Vue. O foco principal é garantir que o resultado final do build seja composto por arquivos HTML, CSS, JS e assets.</p>



<h4 class="wp-block-heading">Passo 1: Preparação do Projeto React:</h4>



<p>Crie um novo projeto React com o seguinte comando:</p>



<pre class="wp-block-code"><code>npx create-react-app nome-do-seu-projeto</code></pre>



<p>Agora navegue para o diretório do projeto:</p>



<pre class="wp-block-code"><code>cd nome-do-seu-projeto</code></pre>



<p>Desenvolva o seu site estático normalmente, adicionando componentes, estilos e conteúdo.</p>



<h4 class="wp-block-heading">Passo 2: Build da Aplicação:</h4>



<p>Quando estiver satisfeito com o desenvolvimento, crie o build otimizado da aplicação React:</p>



<pre class="wp-block-code"><code>npm run build</code></pre>



<p>Isso criará uma pasta chamada build no diretório do projeto, contendo os arquivos otimizados para produção.</p>



<h4 class="wp-block-heading">Passo 3: Configurando o Amazon S3:</h4>



<p>1. Acesse o Console de Gerenciamento da <a href="https://console.aws.amazon.com/">AWS</a> e navegue até o serviço S3.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="600" height="237" src="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-08.56.16.png?resize=600%2C237&#038;ssl=1" alt="" class="wp-image-942" srcset="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-08.56.16.png?w=600&amp;ssl=1 600w, https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-08.56.16.png?resize=300%2C119&amp;ssl=1 300w" sizes="(max-width: 600px) 100vw, 600px" /><figcaption class="wp-element-caption">(Tela inicial do s3 da AWS)</figcaption></figure>



<p>2. Crie um novo bucket, escolhendo um nome único e uma região. </p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" decoding="async" width="600" height="589" src="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-08.59.29.png?resize=600%2C589&#038;ssl=1" alt="" class="wp-image-943" srcset="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-08.59.29.png?w=600&amp;ssl=1 600w, https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-08.59.29.png?resize=300%2C295&amp;ssl=1 300w" sizes="(max-width: 600px) 100vw, 600px" /><figcaption class="wp-element-caption">(Tela de criação do Bucket)</figcaption></figure>



<p>3. Na seção &#8220;Propriedades&#8221;, habilite a opção &#8220;Hospedagem de site estático&#8221; e defina o arquivo <code>index.html</code> como documento de índice.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" decoding="async" width="689" height="178" src="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.01.12.png?resize=689%2C178&#038;ssl=1" alt="" class="wp-image-944" srcset="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.01.12.png?w=689&amp;ssl=1 689w, https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.01.12.png?resize=300%2C78&amp;ssl=1 300w" sizes="(max-width: 689px) 100vw, 689px" /></figure>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="600" height="105" src="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.01.23.png?resize=600%2C105&#038;ssl=1" alt="" class="wp-image-945" srcset="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.01.23.png?w=600&amp;ssl=1 600w, https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.01.23.png?resize=300%2C53&amp;ssl=1 300w" sizes="(max-width: 600px) 100vw, 600px" /></figure>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="596" height="600" src="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.02.08.png?resize=596%2C600&#038;ssl=1" alt="" class="wp-image-946" srcset="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.02.08.png?w=596&amp;ssl=1 596w, https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.02.08.png?resize=298%2C300&amp;ssl=1 298w, https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.02.08.png?resize=150%2C150&amp;ssl=1 150w" sizes="(max-width: 596px) 100vw, 596px" /><figcaption class="wp-element-caption">(Tela de configuração de hospedagem de site estático)</figcaption></figure>



<h4 class="wp-block-heading">Passo 4: Carregando Arquivos para o Amazon S3:</h4>



<p>Agora é hora de transferir os arquivos do seu site estático para o Amazon S3. Você tem duas opções para fazer isso: via terminal ou pela interface do Console do S3.</p>



<h6 class="wp-block-heading">Opção 1: Via Terminal (Recomendado para Automatização):</h6>



<p>Se você está familiarizado com o terminal e deseja automatizar o processo, use o seguinte comando para sincronizar a pasta build com o seu bucket S3:</p>



<pre class="wp-block-code"><code>aws s3 sync --recursive build/* s3://nome-do-seu-bucket</code></pre>



<h6 class="wp-block-heading">Opção 2: Pela Interface do Console do S3 (Simples e Visual):</h6>



<p>Se preferir uma abordagem mais visual e direta, siga os passos abaixo:</p>



<ol class="wp-block-list">
<li>Acesse o Console de Gerenciamento da AWS e vá para o serviço CloudFront.</li>



<li>Clique no nome do seu bucket para acessar a lista de objetos.</li>



<li>No canto superior direito, clique em &#8220;Fazer upload&#8221; e selecione os arquivos da pasta build para carregar.</li>



<li>Ou, se preferir, você pode arrastar e soltar os arquivos da pasta build diretamente na interface do navegador.</li>
</ol>



<p>Independentemente do método escolhido, os arquivos do seu site serão carregados para o Amazon S3, preparando-se para serem distribuídos pelo CloudFront.</p>



<h4 class="wp-block-heading">Passo 5: Configurando o Amazon CloudFront:</h4>



<p>1. Acesse o Console de Gerenciamento da AWS e navegue até o serviço CloudFront.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="600" height="228" src="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.06.41.png?resize=600%2C228&#038;ssl=1" alt="" class="wp-image-947" srcset="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.06.41.png?w=600&amp;ssl=1 600w, https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.06.41.png?resize=300%2C114&amp;ssl=1 300w" sizes="(max-width: 600px) 100vw, 600px" /><figcaption class="wp-element-caption">(Tela inicial do CloudFront)</figcaption></figure>



<p>2. Crie uma nova distribuição. Na seção &#8220;Origem&#8221;, selecione o bucket S3 que contém os arquivos do seu site estático.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="642" height="570" src="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.07.35.png?resize=642%2C570&#038;ssl=1" alt="" class="wp-image-948" srcset="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.07.35.png?w=642&amp;ssl=1 642w, https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.07.35.png?resize=300%2C266&amp;ssl=1 300w" sizes="(max-width: 642px) 100vw, 642px" /><figcaption class="wp-element-caption">Criação de distribuição no CloudFront</figcaption></figure>



<p>3. Configure as seguintes opções:</p>



<ul class="wp-block-list">
<li>Allowed HTTP methods: Defina os métodos HTTP permitidos para acessar seus arquivos. Geralmente, é seguro habilitar todos os métodos.</li>
</ul>



<ul class="wp-block-list">
<li>Viewer protocol policy: Escolha como deseja que o CloudFront lide com as solicitações dos usuários. A opção &#8220;Redirecionar HTTP para HTTPS&#8221; é uma escolha segura, garantindo que todas as conexões sejam criptografadas.</li>
</ul>



<ul class="wp-block-list">
<li>Custom SSL certificate &#8211; optional: Nesta seção, você pode optar por gerar um certificado SSL personalizado para seu domínio. Isso é importante para habilitar o acesso seguro por HTTPS. Clique em &#8220;Request or Import a Certificate with ACM&#8221; para gerar um novo certificado usando o AWS Certificate Manager.</li>
</ul>



<p>4. Na seção &#8220;Configurações de Domínio Alternativo (CNAMEs)&#8221;, você pode adicionar os domínios personalizados que deseja associar à sua distribuição CloudFront.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="601" height="230" src="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.08.58-1.png?resize=601%2C230&#038;ssl=1" alt="" class="wp-image-950" srcset="https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.08.58-1.png?w=601&amp;ssl=1 601w, https://i0.wp.com/www.manualdoprogramador.com/wp-content/uploads/2023/08/Captura-de-Tela-2023-08-08-as-09.08.58-1.png?resize=300%2C115&amp;ssl=1 300w" sizes="(max-width: 601px) 100vw, 601px" /></figure>



<p>6. Complete o processo de criação da distribuição.</p>



<p>7. Aguarde até que a distribuição seja provisionada. Quando estiver pronta, você verá o status &#8220;Deployed&#8221; na lista de distribuições do CloudFront.</p>



<p>Com o Amazon CloudFront configurado, seus arquivos serão distribuídos globalmente e as configurações escolhidas garantirão um desempenho otimizado e uma experiência segura para os usuários do seu site estático.</p>



<h4 class="wp-block-heading">Passo 6: Configuração de DNS:</h4>



<ol class="wp-block-list">
<li>Acesse o provedor de domínio onde você comprou o domínio (ex: Route 53, GoDaddy).</li>



<li>Adicione registros DNS do tipo CNAME ou Alias apontando para o domínio da sua distribuição CloudFront.</li>



<li>Aguarde a propagação DNS, que pode levar algumas horas.</li>
</ol>



<h4 class="wp-block-heading">Conclusão:</h4>



<p>Parabéns! Agora seu site estático React (ou de qualquer outro framework) está hospedado na AWS usando o Amazon S3 e o CloudFront. Você aprendeu como preparar o projeto, criar o build, configurar o S3 para hospedagem, configurar o CloudFront para distribuição global e como associar um domínio personalizado ao seu site. Com esses passos, seu site estará disponível de maneira rápida e escalável para os visitantes. Lembre-se de que esse processo também é aplicável a outras tecnologias e frameworks, contanto que o resultado final seja composto por arquivos HTML, CSS e assets.</p>



<p></p>



<p>Leia nossos novos posts no blog! Fique por dentro das últimas novidades e dicas no mundo da programação. Visite o blog em&nbsp;<a href="https://www.manualdoprogramador.com/">www.manualdoprogramador.com</a>&nbsp;e aproveite todo o conteúdo atualizado sobre programação e desenvolvimento de software</p>



<p>Aproveite e confira os nossos posts no Instagram&nbsp;<a href="https://www.instagram.com/blogmdp/">@blogmdp</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.manualdoprogramador.com/hospedagem-site-estatico-aws-s3-cloudfront-configuracao-domino/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">941</post-id>	</item>
		<item>
		<title>Como a computação em nuvem pode impulsionar o seu negócio: flexibilidade, escalabilidade e segurança.</title>
		<link>https://www.manualdoprogramador.com/como-a-computacao-em-nuvem-pode-impulsionar-o-seu-negocio-flexibilidade-escalabilidade-e-seguranca/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-a-computacao-em-nuvem-pode-impulsionar-o-seu-negocio-flexibilidade-escalabilidade-e-seguranca</link>
					<comments>https://www.manualdoprogramador.com/como-a-computacao-em-nuvem-pode-impulsionar-o-seu-negocio-flexibilidade-escalabilidade-e-seguranca/#respond</comments>
		
		<dc:creator><![CDATA[Davi Antonaji]]></dc:creator>
		<pubDate>Wed, 12 Jul 2023 20:00:00 +0000</pubDate>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infraestrutura]]></category>
		<category><![CDATA[computação em nuvem]]></category>
		<category><![CDATA[escalabilidade]]></category>
		<category><![CDATA[flexibilidade]]></category>
		<category><![CDATA[impulsionar negócio]]></category>
		<category><![CDATA[negócio]]></category>
		<category><![CDATA[segurança]]></category>
		<guid isPermaLink="false">https://www.manualdoprogramador.com/?p=877</guid>

					<description><![CDATA[A computação em nuvem, também conhecida como cloud computing, revolucionou a maneira como as empresas gerenciam seus recursos de TI. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>A computação em nuvem, também conhecida como cloud computing, revolucionou a maneira como as empresas gerenciam seus recursos de TI. Com uma série de benefícios notáveis, essa tecnologia tem ganhado cada vez mais adeptos em todo o mundo. Neste artigo, vamos explorar os principais benefícios da computação em nuvem e como ela pode impulsionar o seu negócio.</p>



<p>A flexibilidade é um dos principais pontos fortes da computação em nuvem. Ao adotar essa abordagem, as empresas podem acessar seus recursos de computação a qualquer momento e de qualquer lugar do mundo. Isso significa que você não está mais limitado à infraestrutura física presente em seu escritório. Com a nuvem, você pode expandir ou reduzir seus recursos conforme necessário, sem a necessidade de investir em hardware adicional. Essa flexibilidade oferece uma vantagem competitiva significativa, permitindo que você se adapte rapidamente às mudanças do mercado e às demandas do seu negócio.</p>



<p>Outro benefício essencial da computação em nuvem é a escalabilidade. Com a capacidade de aumentar rapidamente a capacidade de processamento e armazenamento, você não precisa mais se preocupar com limitações de recursos. Se o seu negócio está crescendo ou se você precisa lidar com picos de demanda sazonais, a nuvem pode fornecer os recursos necessários sem atrasos ou altos custos. Isso permite que você atenda aos requisitos do seu negócio de forma ágil, garantindo a satisfação dos clientes e evitando a perda de oportunidades de crescimento.</p>



<p>A economia de custos também é uma vantagem inegável da computação em nuvem. Ao adotar essa tecnologia, você paga apenas pelos recursos que utiliza. Em vez de investir grandes quantias de dinheiro em hardware e servidores, você pode direcionar seus recursos financeiros para outras áreas estratégicas do seu negócio. Além disso, a manutenção e atualização dos sistemas são responsabilidades do provedor de nuvem, o que reduz ainda mais os custos operacionais.</p>



<p>Por fim, a segurança é uma preocupação primordial para qualquer empresa. A computação em nuvem oferece uma abordagem robusta para proteger seus dados e sistemas. Os provedores de nuvem implementam protocolos de segurança avançados e mantêm seus servidores altamente protegidos contra ameaças externas. Além disso, a redundância e a replicação de dados na nuvem garantem a recuperação rápida e confiável em caso de falhas ou desastres. Isso significa que você pode operar com tranquilidade, sabendo que seus dados estão protegidos e acessíveis quando necessário.</p>



<p>Em resumo, a computação em nuvem oferece uma série de benefícios essenciais para as empresas. A flexibilidade, escalabilidade, economia de custos e segurança são apenas algumas das vantagens que podem impulsionar seu negócio para um novo nível de eficiência e sucesso. Se você ainda não adotou a computação em nuvem, é hora de considerar essa tecnologia e explorar as possibilidades que ela oferece. Esteja preparado para aproveitar todas as oportunidades que a nuvem proporciona e fortaleça a base do seu negócio para um futuro promissor.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.manualdoprogramador.com/como-a-computacao-em-nuvem-pode-impulsionar-o-seu-negocio-flexibilidade-escalabilidade-e-seguranca/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">877</post-id>	</item>
	</channel>
</rss>
