Guia de Configuração do CloudDica

Passo 1: Criar as tabelas do CloudDica usando Terraform

Logue na instancia EC2

Remova o arquivo main.tf usado na Dica 1

cd terraform-project
rm main.tf

Crie um novo arquivo terraform com o conteúdo abaixo

nano main.tf

Copy e cole o conteúdo do codigo terraform abaixo dentro do arquivo e salve-o.

provider "aws" {
  region = "us-east-1"  # Altere para sua região preferida
}

# Tabelas DynamoDB
resource "aws_dynamodb_table" "clouddica_products" {
  name           = "clouddica-products"
  billing_mode   = "PAY_PER_REQUEST"
  hash_key       = "id"

  attribute {
    name = "id"
    type = "S"
  }
}

resource "aws_dynamodb_table" "clouddica_orders" {
  name           = "clouddica-orders"
  billing_mode   = "PAY_PER_REQUEST"
  hash_key       = "id"

  attribute {
    name = "id"
    type = "S"
  }
}

resource "aws_dynamodb_table" "clouddica_tickets" {
  name           = "clouddica-tickets"
  billing_mode   = "PAY_PER_REQUEST"
  hash_key       = "id"

  attribute {
    name = "id"
    type = "S"
  }
}

Inicialize o Terraform:

terraform init

Revise o plano:

terraform plan

Aplique a configuração:

terraform apply

  1. Digite “yes” quando solicitado para criar os recursos.

Passo 2: Instalar o Docker na EC2

Execute os seguintes comandos:

sudo yum update -y
sudo yum install docker -y
sudo systemctl start docker
sudo docker run hello-world
sudo systemctl enable docker
docker --version
sudo usermod -a -G docker $(whoami)
newgrp docker

Passo 3: Criar a imagem Docker do CloudDica

Backend

Criar pasta e baixar o código-fonte:

mkdir -p challenge-day2/backend && cd challenge-day2/backend
wget <https://tcb-public-events.s3.amazonaws.com/mdac/resources/day2/clouddica-backend.zip>
unzip clouddica-backend.zip

Criar arquivo .env:

nano .env

Conteúdo do .env:

PORT=5000
AWS_REGION=us-east-1
BEDROCK_AGENT_ID=<seu-bedrock-agent-id>
BEDROCK_AGENT_ALIAS_ID=<seu-bedrock-agent-alias-id>
OPENAI_API_KEY=<sua-chave-api-openai>
OPENAI_ASSISTANT_ID=<seu-id-assistente-openai>

Criar Dockerfile:

nano Dockerfile

Conteúdo do Dockerfile:

FROM node:18
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 5000
CMD ["npm", "start"]

Construir e executar a imagem Docker:

docker build -t clouddica-backend .
docker run -d -p 5000:5000 --env-file .env clouddica-backend

Frontend

Criar pasta e baixar o código-fonte:

cd ..
mkdir frontend && cd frontend
wget <https://tcb-public-events.s3.amazonaws.com/mdac/resources/day2/clouddica-frontend.zip>
unzip clouddica-frontend.zip

Criar arquivo .env:

nano .env

Conteúdo do .env:

VITE_API_BASE_URL=http://<seu-ip-ec2>:5000/api

Criar Dockerfile:

nano Dockerfile

Conteúdo do Dockerfile:

FROM node:16-alpine as build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:16-alpine
WORKDIR /app
RUN npm install -g serve
COPY --from=build /app/dist /app
ENV PORT=5001
ENV NODE_ENV=production
EXPOSE 5001
CMD ["serve", "-s", ".", "-l", "5001"]

Construir e executar a imagem Docker:

docker build -t clouddica-frontend .
docker run -d -p 5001:5001 clouddica-frontend

Passo 4: Configurar regras de firewall

Abra as seguintes portas no grupo de segurança da EC2:

  1. Porta 5000 (para o backend)
  2. Porta 5001 (para o frontend)

Agora você pode acessar o CloudDica remotamente usando o IP público da sua instância EC2.

CloudDica e um nome ficticio da aplicação para uso da nossa dica.

Categorias: Tecnologia

0 comentário

Deixe uma resposta

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.