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
- 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:
- Porta 5000 (para o backend)
- 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.
0 comentário