<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Aws on DevOps-инженер &amp; CloudAdmin</title><link>https://ruadmin.root.sx/ru/tags/aws/</link><description>Recent content in Aws on DevOps-инженер &amp; CloudAdmin</description><generator>Hugo -- gohugo.io</generator><language>ru-RU</language><atom:link href="https://ruadmin.root.sx/ru/tags/aws/index.xml" rel="self" type="application/rss+xml"/><item><title>Self-Hosted проект-менеджмент Plane.so</title><link>https://ruadmin.root.sx/ru/posts/self-hosted/plane-so/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ruadmin.root.sx/ru/posts/self-hosted/plane-so/</guid><description>&lt;h2 id="self-hosted-проект-менеджмент-planeso"&gt;Self-Hosted проект-менеджмент Plane.so&lt;/h2&gt;
&lt;hr&gt;
&lt;h4 id="клиент"&gt;Клиент&lt;/h4&gt;
&lt;p&gt;Компания с потребностью в собственном инструменте управления проектами, размещённом на офисной инфраструктуре&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="задача"&gt;Задача&lt;/h4&gt;
&lt;p&gt;Клиент хотел получить open-source альтернативу Jira/Linear для управления проектами и задачами, развёрнутую на собственном сервере в существующем окружении Coolify. Требовалось: установить последнюю версию Plane.so CE, обеспечить корректную работу за Traefik reverse proxy, вынести базу данных как отдельный сервис Coolify для удобного архивирования, а также настроить регулярные бэкапы всех данных.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="решение"&gt;Решение&lt;/h4&gt;
&lt;h6 id="1-подготовка-инфраструктуры"&gt;1. Подготовка инфраструктуры&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Анализ существующего окружения &lt;strong&gt;Coolify&lt;/strong&gt; и конфигурации &lt;strong&gt;Traefik&lt;/strong&gt; на сервере клиента&lt;/li&gt;
&lt;li&gt;Выбор последней open-source версии &lt;strong&gt;Plane.so CE&lt;/strong&gt; из &lt;a href="https://github.com/makeplane/plane" target="_blank" rel="noopener"&gt;официального репозитория&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Изучение &lt;a href="https://developers.plane.so/self-hosting/methods/docker-compose" target="_blank" rel="noopener"&gt;документации по self-hosting&lt;/a&gt; для формирования базовой конфигурации&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="2-кастомный-docker-compose"&gt;2. Кастомный Docker Compose&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;На основе официального docker-compose создан &lt;strong&gt;уникальный Docker Compose&lt;/strong&gt;, адаптированный под Coolify&lt;/li&gt;
&lt;li&gt;Сервисы Plane (web, space, api, worker, beat-worker) настроены для работы за &lt;strong&gt;Traefik&lt;/strong&gt; — корректные labels, сети и маршрутизация&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt; вынесен как отдельный сервис Coolify — это позволяет управлять базой данных независимо и использовать встроенный механизм архивирования Coolify&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Redis&lt;/strong&gt; для кэширования и очередей задач&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MinIO&lt;/strong&gt; как S3-совместимое объектное хранилище для вложений и ассетов&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="3-интеграция-с-traefik"&gt;3. Интеграция с Traefik&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Настроены &lt;strong&gt;Traefik labels&lt;/strong&gt; для автоматической маршрутизации трафика к сервисам Plane&lt;/li&gt;
&lt;li&gt;Автоматическое получение и обновление &lt;strong&gt;SSL/TLS&lt;/strong&gt; сертификатов через Traefik&lt;/li&gt;
&lt;li&gt;Корректная проброска заголовков (X-Forwarded-For, Host) для правильной работы приложения за reverse proxy&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="4-резервное-копирование"&gt;4. Резервное копирование&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt; — регулярные бэкапы средствами Coolify с выгрузкой на &lt;strong&gt;AWS S3&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MinIO&lt;/strong&gt; — регулярная синхронизация объектного хранилища на отдельный бакет &lt;strong&gt;AWS S3&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Все бэкапы выполняются автоматически по расписанию без вмешательства&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="технологии"&gt;Технологии&lt;/h4&gt;
&lt;div class="row"&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/docker-original.svg" alt="Docker"&gt;&lt;div&gt;Docker&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/postgresql.svg" alt="PostgreSQL"&gt;&lt;div&gt;PostgreSQL&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/aws.svg" alt="AWS S3"&gt;&lt;div&gt;AWS S3&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/linux-original.svg" alt="Linux"&gt;&lt;div&gt;Linux&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/bash.svg" alt="Bash"&gt;&lt;div&gt;Bash&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h4 id="результаты"&gt;Результаты&lt;/h4&gt;
&lt;p&gt;✅ &lt;strong&gt;Проект-менеджмент:&lt;/strong&gt; мощный self-hosted инструмент управления проектами, не уступающий коммерческим аналогам&lt;br&gt;
✅ &lt;strong&gt;Интеграция:&lt;/strong&gt; Plane надёжно интегрирован в Coolify и работает за Traefik без конфликтов&lt;br&gt;
✅ &lt;strong&gt;Независимость БД:&lt;/strong&gt; PostgreSQL как отдельный сервис Coolify — удобное управление и архивирование&lt;br&gt;
✅ &lt;strong&gt;Бэкапы:&lt;/strong&gt; все данные (БД + MinIO) регулярно копируются на AWS S3 автоматически&lt;br&gt;
✅ &lt;strong&gt;Контроль данных:&lt;/strong&gt; все данные проектов хранятся на собственном сервере клиента&lt;/p&gt;</description></item><item><title>Геораспределённый кластер блокчейн-нод в Kubernetes</title><link>https://ruadmin.root.sx/ru/posts/clouds/blockchain-k8s-cluster/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ruadmin.root.sx/ru/posts/clouds/blockchain-k8s-cluster/</guid><description>&lt;h2 id="геораспределённый-кластер-блокчейн-нод-в-kubernetes"&gt;Геораспределённый кластер блокчейн-нод в Kubernetes&lt;/h2&gt;
&lt;hr&gt;
&lt;h4 id="клиент"&gt;Клиент&lt;/h4&gt;
&lt;p&gt;Криптовалютная платформа (Web3 / DeFi)&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="задача"&gt;Задача&lt;/h4&gt;
&lt;p&gt;Клиенту требовалась отказоустойчивая инфраструктура для запуска ETH и BSC full-нод в четырёх регионах (EU, US, AP, LatAm) с минимальной задержкой для конечных пользователей, защитой от DDoS и спама на RPC, безопасным HSM-подписанием транзакций и централизованным мониторингом. Синхронизация нод с нуля занимает 2–3 недели — требовалось решение для быстрого старта.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="решение"&gt;Решение&lt;/h4&gt;
&lt;h6 id="1-инфраструктура-и-iac-terraform--eks"&gt;1. Инфраструктура и IaC (Terraform + EKS)&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Terraform-модули: VPC, subnets, security groups для 4 регионов (Frankfurt, Virginia, Singapore, São Paulo)&lt;/li&gt;
&lt;li&gt;Managed Kubernetes (EKS 1.29+) per region с выделенными node pools: full nodes, archive nodes, signing service&lt;/li&gt;
&lt;li&gt;NVMe StorageClass (gp3) через CSI-драйвер для высокопроизводительного хранения chaindata&lt;/li&gt;
&lt;li&gt;Helm chart для geth / bsc-node с кастомными values per region&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="2-gitops-flux-cd-multi-cluster"&gt;2. GitOps: Flux CD multi-cluster&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Flux CD v2 с &lt;code&gt;Kustomization&lt;/code&gt; per region — единый источник истины для всех кластеров&lt;/li&gt;
&lt;li&gt;Secrets management: HashiCorp Vault + External Secrets Operator (ESO)&lt;/li&gt;
&lt;li&gt;Изменения в инфраструктуре применяются через git push без прямого доступа к кластерам&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="3-балансировка-и-anti-spam"&gt;3. Балансировка и Anti-Spam&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;HAProxy 2.8: sticky sessions, health checks по &lt;code&gt;eth_syncing&lt;/code&gt; — трафик только к синхронизированным нодам&lt;/li&gt;
&lt;li&gt;Nginx Ingress: rate limiting, IP reputation filtering (Lua-скрипты в стиле fail2ban)&lt;/li&gt;
&lt;li&gt;Cloudflare Workers: geo-routing + защита от DDoS L7&lt;/li&gt;
&lt;li&gt;Custom sidecar (Go): health endpoint, который возвращает ready только при полной синхронизации ноды&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="4-hsm-интеграция-для-подписания-транзакций"&gt;4. HSM-интеграция для подписания транзакций&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;AWS CloudHSM (prod) / YubiHSM2 (staging) для хранения приватных ключей&lt;/li&gt;
&lt;li&gt;Go-микросервис с PKCS#11 абстракцией — смена HSM-вендора без переписывания кода&lt;/li&gt;
&lt;li&gt;Изолированный K8s namespace + NetworkPolicy: нет egress кроме HSM endpoint&lt;/li&gt;
&lt;li&gt;gRPC API для backend: sign tx, get pubkey&lt;/li&gt;
&lt;li&gt;Аудит-лог всех операций подписания → Loki&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="5-мониторинг-и-алертинг"&gt;5. Мониторинг и алертинг&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Custom Prometheus exporter (Go): &lt;code&gt;eth_blockNumber&lt;/code&gt;, &lt;code&gt;eth_syncing&lt;/code&gt;, peer count per node&lt;/li&gt;
&lt;li&gt;Grafana dashboards: sync lag, block height per region, RPC latency, SLO 99.9%&lt;/li&gt;
&lt;li&gt;Alertmanager → PagerDuty: алерты на block lag &amp;gt; N блоков, node down, peer count &amp;lt; threshold&lt;/li&gt;
&lt;li&gt;Loki + Promtail: структурированные логи всех нод с корреляцией по region/pod&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="6-операционка-и-disaster-recovery"&gt;6. Операционка и Disaster Recovery&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Snapshot bootstrap: chaindata из S3 через rclone — нода готова за часы вместо недель&lt;/li&gt;
&lt;li&gt;DR playbook: пошаговые runbook&amp;rsquo;и для восстановления региона&lt;/li&gt;
&lt;li&gt;Chaos Engineering (Chaos Mesh): тесты на node kill, network partition, pod failure&lt;/li&gt;
&lt;li&gt;Architecture Decision Records (ADR) для всех ключевых решений&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="технологии"&gt;Технологии&lt;/h4&gt;
&lt;div class="row"&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/kubernetes-plain.svg" alt="Kubernetes"&gt;&lt;div&gt;Kubernetes&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/terraform-original.svg" alt="Terraform"&gt;&lt;div&gt;Terraform&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/helm-original.svg" alt="Helm"&gt;&lt;div&gt;Helm&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/flux-cd.svg" alt="Flux CD"&gt;&lt;div&gt;Flux CD&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/prometheus-original.svg" alt="Prometheus"&gt;&lt;div&gt;Prometheus&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/grafana-original.svg" alt="Grafana"&gt;&lt;div&gt;Grafana&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h4 id="результаты"&gt;Результаты&lt;/h4&gt;
&lt;p&gt;✅ &lt;strong&gt;Geo-routing:&lt;/strong&gt; задержка снижена за счёт маршрутизации к ближайшему региону&lt;br&gt;
✅ &lt;strong&gt;Быстрый старт:&lt;/strong&gt; нода готова за часы через snapshot из S3 вместо 2–3 недель синхронизации&lt;br&gt;
✅ &lt;strong&gt;Anti-spam:&lt;/strong&gt; rate limiting + IP reputation — публичный RPC выдерживает нагрузку ботов&lt;br&gt;
✅ &lt;strong&gt;HSM:&lt;/strong&gt; приватные ключи никогда не покидают аппаратный модуль&lt;br&gt;
✅ &lt;strong&gt;GitOps:&lt;/strong&gt; любое изменение инфраструктуры — через git, полный audit trail&lt;br&gt;
✅ &lt;strong&gt;SLO 99.9%:&lt;/strong&gt; отслеживается в Grafana, алерты в PagerDuty при деградации&lt;/p&gt;</description></item><item><title>Миграция AWS → Yandex Cloud</title><link>https://ruadmin.root.sx/ru/posts/clouds/migration-from-aws/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ruadmin.root.sx/ru/posts/clouds/migration-from-aws/</guid><description>&lt;h2 id="перенос-инфраструктуры-компании-из-aws-в-yandex-cloud-в-рамках-импортозамещения"&gt;Перенос инфраструктуры компании из AWS в Yandex Cloud в рамках импортозамещения&lt;/h2&gt;
&lt;hr&gt;
&lt;h4 id="клиент"&gt;Клиент&lt;/h4&gt;
&lt;p&gt;Конфиденциально&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="задача"&gt;Задача&lt;/h4&gt;
&lt;p&gt;Компания столкнулась с необходимостью срочной миграции из AWS в российское облако из-за санкционных рисков. Требовалось перенести всю инфраструктуру с минимальным простоем и без потери функциональности.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="решение"&gt;Решение&lt;/h4&gt;
&lt;h6 id="1-аудит-и-планирование"&gt;1. Аудит и планирование&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Инвентаризация всех ресурсов AWS (EC2, RDS, S3, VPC)&lt;/li&gt;
&lt;li&gt;Маппинг сервисов AWS → Yandex Cloud&lt;/li&gt;
&lt;li&gt;Разработка поэтапного плана миграции&lt;/li&gt;
&lt;li&gt;Подготовка rollback стратегии&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="2-подготовка-инфраструктуры"&gt;2. Подготовка инфраструктуры&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Terraform для IaC в Yandex Cloud&lt;/li&gt;
&lt;li&gt;Настройка VPC, подсетей, security groups&lt;/li&gt;
&lt;li&gt;Развертывание Managed PostgreSQL и Redis&lt;/li&gt;
&lt;li&gt;Настройка Object Storage (аналог S3)&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="3-миграция-данных"&gt;3. Миграция данных&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Репликация баз данных через DMS&lt;/li&gt;
&lt;li&gt;Синхронизация S3 → Object Storage&lt;/li&gt;
&lt;li&gt;Перенос Docker образов в Container Registry&lt;/li&gt;
&lt;li&gt;Тестирование на staging окружении&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="4-переключение-production"&gt;4. Переключение production&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;DNS failover для постепенного переключения&lt;/li&gt;
&lt;li&gt;Мониторинг метрик в реальном времени&lt;/li&gt;
&lt;li&gt;Откат на AWS в случае критических проблем&lt;/li&gt;
&lt;li&gt;Финальное переключение за 2 часа&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="технологии"&gt;Технологии&lt;/h4&gt;
&lt;div class="row"&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/aws.svg" alt="AWS"&gt;&lt;div&gt;AWS&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/terraform-original.svg" alt="Terraform"&gt;&lt;div&gt;Terraform&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/prometheus-original.svg" alt="Prometheus"&gt;&lt;div&gt;Prometheus&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/grafana-original.svg" alt="Grafana"&gt;&lt;div&gt;Grafana&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/gitlab-original.svg" alt="GitLab CI"&gt;&lt;div&gt;GitLab CI&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h4 id="результаты"&gt;Результаты&lt;/h4&gt;
&lt;p&gt;✅ &lt;strong&gt;Затраты:&lt;/strong&gt; снижение на 40% (с $15k до $9k/месяц)&lt;br&gt;
✅ &lt;strong&gt;Downtime:&lt;/strong&gt; всего 2 часа вместо планируемых 8&lt;br&gt;
✅ &lt;strong&gt;Независимость:&lt;/strong&gt; полный переход на российскую инфраструктуру&lt;br&gt;
✅ &lt;strong&gt;Производительность:&lt;/strong&gt; сохранена на том же уровне&lt;br&gt;
✅ &lt;strong&gt;Безопасность:&lt;/strong&gt; соответствие 152-ФЗ&lt;/p&gt;</description></item></channel></rss>