AWS развој — корак по корак
deploy/aws = Terraform модул: ECS Fargate (Web + MCP) иза ALB, RDS Postgres, CloudWatch дневници.
1. Предуслови
- Terraform ≥ 1.5 + AWS верификације (
aws configure/ променљивих окружења) са правима да направи VPC-опсежне ресурсе, ECS, RDS, ALB, IAM. - Три слике у регистру ECS може вући (ECR, или GHCR јавна).
2. Иницијализирајте
cd deploy/aws
terraform init
3. Примени
terraform apply \
-var image_registry=ghcr.io/your-org/cmind \
-var image_tag=1.0.0 \
-var owner_email=you@example.com \
-var owner_password='Change-Me-Str0ng!' \
-var pg_password="$(openssl rand -hex 16)" \
-var discovery_join_token="$(openssl rand -hex 24)"
Чини: RDS Postgres (appdb), ECS кластер, Fargate услуге за Web + MCP, ALB (Web на /,
MCP на /mcp), безбедне групе, CloudWatch дневна група, ADOT (AWS Distro за
OpenTelemetry) колектор боковни возни車 у сваком задатку. Апликација извозира OTLP у боковни, који шаље
трагове за X-Ray, метрике за CloudWatch (EMF, простор имена cmind); дневници остају на
awslogs возач као компактан JSON. Откривање укључено за Web. Задатак улога даје боковни
X-Ray + CloudWatch напиши приступ — нема колектора да водиш сам.
Користи налог подразумевано VPC/подмреже за кратак облик. За производњу, жица властита VPC, приватна подмреже, HTTPS слушалац (ACM сертификат).
4. Добијте URL-ова
terraform output web_url # ALB основа
terraform output mcp_url # ALB /mcp
Отворите web_url, пријавите се са власником (принуђена промена лозинке при првој пријави).
5. Додајте агенте чвора (одвојено)
Fargate забрањује привилегирани/DinD, па покрените агенте на другом месту упутити на web_url:
- ECS на EC2 — капацитета провајдер са
privileged = trueдефиниције задатака покрећеcmind-node-agent. - EKS — Helm графикон (kubernetes.md) са
nodeAgent.privileged=true.
Поставити NodeAgent__MainUrl=<web_url>, NodeAgent__AdvertiseUrl=<agent reachable url>,
NodeAgent__JwtSecret=<discovery_join_token>. Агенти самo-регистрирају — видети
../operations/node-discovery.md.
6. Проверити
aws logs tail /ecs/cmind --since 5m # компактан JSON дневници
curl -s "$(terraform output -raw web_url)/version"
Напомене производње
- Додајте HTTPS слушалац + ACM сертификат; ограничите ALB безбедну групу.
- Чување тајни у AWS Secrets Manager / SSM, убацити преко дефиниције задатка
secretsуместо обичног текстаenvironment. - Омогућите RDS Multi-AZ + резервне копије.
- Трагови (X-Ray), метрике (CloudWatch EMF), дневници (CloudWatch Logs) жица аутоматски преко
ADOT боковни; корелирајте на
trace_id. Видети ../operations/logging.md. - Апликација већ упутиће
OTEL_EXPORTER_OTLP_ENDPOINTу боковни у-задатку; упутите у외 колектор ако желите да централизујете.
Агент копирања + Secrets Manager (S5)
deploy/aws/copy-agent.tf додаје copy-agent ECS Fargate услугу хостинга CopyEngineSupervisor
(App:Copy:Enabled=true, App:Features:CopyTrading=true) са без ALB — радник мајстор дугоживи
cTrader утичнице. DB низ везника сачувана у AWS Secrets Manager, убачена кроз
дефиниција задатка secrets блок (извршни улога дао secretsmanager:GetSecretValue на само то тајну),
не обичан текст окружење. Сваки задатак NodeName подразумевано је његово име контејнера (јединствено по Fargate задатку), тако
DB лease атрибути покреће профиле по задатку — два задатка никад двоструко-домаћин један. Скала
copy_agent_count да додате капацитета копирања; DataProtection кључни прстен дељен кроз Postgres, тако да сваки задатак
може дешифровати сачувани Open API токени.