Tag Archives: AWS

AWS: CloudFormation – ‘templateBody’ failed to satisfy constraint: Member must have length less than or equal to 51200

6 September 2018
 

 Имеется CloudFormation стек. Сначала создавался Dev-стек, к которому понемногу добавлялись новые ресурсы, всё это тестилось, и в конце-концов заработало. После этого – пришла пора выкатывать Production-стек, и вдруг… ‘templateBody’ failed to satisfy constraint: Member must have length less than or equal to 51200. Щито? 🙁 Проверяем лимиты CloudFormation: Template body size in a request Maximum… Read More »

AWS: Application Load Balancer – HTTP => HTTPS и host-header редиректы

30 August 2018
 

 Имеется Application Load Balancer, за которым находятся три хоста: два фронтенда, и один master. Задачи следующие: добавить редиректы HTTP => HTTPS добавить редиректы доменов dev.admin.dme.example.com на master-хост, а остальных – на frontend-хосты добавить редиректы www <=> non-www Редирект HTTP на HTTPS Тут столкнулся с очередным “подарком” от AWS CloudFormation: After checking our internal information, the newly… Read More »

AWS: 502 ошибка на Application Load balancer

10 August 2018
 

 Имеется ALB, на который постоянно срабатывает Alertmanager с ошибкой 502: В CloudWatch видно, что ошибка возникает спорадически, и только один раз: При этом в логах NGINX никаких ошибок нет Первым делом – включаем логи ALB: Не то что бы они чем-то реально помогли – но по крайне мере теперь можно увидеть ошибку “вживую” : 52.***.***.142… Read More »

AWS: CloudFormation – создание EFS + Ansible роль

1 August 2018
 

 Задача – добавить ресурсы AWS Elastic File System в существующий CloudFormation стек. В CloudFormation для этого имеется ресурс AWS::EFS::FileSystem, который и используем. Шаблон для CloudFormation уже создан, и в примерах ниже будут отсылки к его ресурсам. Опции EFS Перед тем, как создавать EFS – немного рассмотрим доступные опции. EFS имеет два основных доступных параметра – Performance… Read More »

AWS: бекап EBS по расписанию через CloudWatch rules или Data Lifecycle Manager

24 July 2018
 

 Выполнить снапшот EBS по расписанию можно двумя способами: старый – с помощью CloudWatch rules, и новый – с помощью Data Lifecycle Manager. EBS backup with CloudWatch rules Переходим в CloudWatch > Rules, жмём Create rule: В Event source выбираем Schedule, задаём время – фиксированный период или по крону, например – в 18:10 каждый день (время тут задаётся… Read More »

Grafana: добавление CloudWatch data-sorce

18 July 2018
 

 Для получения метрик из AWS CloudWatch для связки Grafana/Prometheus можно использовать два подхода: собирать метрики в Prometheus с помощью cloudwatch_exporter добавить новый data-source в Grafana, и рисовать графики используя его Ниже описывается процесс добавления data-source в Grafana и графиков AWS Load Balancer. IAM пользователь Добавляем IAM пользователя с Programmatic access: В Permissions выбираем Attach existing policies… Read More »

NGINX: реальный IP в логах при работе за AWS Load Balancer

9 July 2018
 

 Есть NGINX, который работает за AWS Application Load Balancer-ом (ALB). Проблема заключается в том, что в логах NGINX пишется IP самого ALB, а не клиента: 10.0.2.26 – – [06/Jul/2018:10:30:50 +0300] “GET /debug/ HTTP/1.1” 404 133 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36” Что бы исправить это – добавляем… Read More »

Terraform: создание проекта с EC2, VPC и AWS cross-region VPC peering

28 June 2018
 

 Одной из неприятных неожиданностей в использовании CloudFormation оказался факт того, что он не умеет создавать VPC peering между VPC в разных регионах. Т.е., сама возможность создания cross-region peering была анонсирована>>> AWS в ноябре 2017, но по состоянию на июнь 2018 – AWS CloudFormation просто не имеет опции region. В результате он пытается выполнить пиринг между… Read More »

AWS: CloudFormation – UPDATE_ROLLBACK_FAILED

27 June 2018
 

 Ситуация: был стек, в котором создавался VPC peering (ресурс AWS::EC2::VPCPeeringConnection) с VPC в другом стеке. Потом первый стек был удалён, но во втором стеке осталась ссылка на этот пиринг. В результате во время апгрейда второго стека – он фейлится, и не может выполнить rollback-операцию: Решение нагугливается легко по запросу “UPDATE_ROLLBACK_FAILED fix“, см тут>>>, в первом… Read More »

Terraform: пример работы – основные команды, state-файлы, бекенды, модули

25 June 2018
 

 Пример использования Terraform, его основные команды, работа с бекенда и модулями. Достаточно кратко, но со ссылками на документацию. Устанавливаем на Arch Linux: Для авторизации используем созданный AWS профиль setevoy-root. main.tf Создаём файл main.tf, в котором указываем использование AWS provider, регион, и имя AWS профиля: provider “aws” { region = “${var.aws-region}” profile = “setevoy-root” } Тут… Read More »