AWS Notes
5.6K subscribers
444 photos
42 videos
10 files
2.8K links
AWS Notes — Amazon Web Services Educational and Information Channel

Chat: https://xn--r1a.website/aws_notes_chat

Contacts: @apple_rom, https://www.linkedin.com/in/roman-siewko/
Download Telegram
#aws #eks #sqs #CostOptimization
Материал уровня middle.

Снова про экономию.

У нас есть AWS SQS.
В него прилетает миллион вебхуков с полезным и важным payload.
Бывают пики, бывают нет.
У нас есть AWS EKS и приложение в POD-e, который вычитывает SQS, процессит и всё ок.
Нам надо настроить масштабирование не за счёт CPU/memory usage, а за счёт количества сообщений.
В этом нам помогает KEDA. Опустим этапы установки/настройки/прав и авторизации.
У нас есть готовый манифест scaledobject.
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
...
spec:
cooldownPeriod: 300
maxReplicaCount: 50
minReplicaCount: 2
pollingInterval: 30
scaleTargetRef:
name: application
triggers:
- authenticationRef:
name: keda-aws-credentials
metadata:
awsRegion: us-east-1
identityOwner: operator
queueLength: "500"
queueURL: https://sqs.us-east-1.amazonaws.com/123456789/sqsname
type: aws-sqs-queue

Всё работает, всё скейлится, всё ок.
В HPA некрасиво выглядят цифры, хочется видеть точное количество мессаджем. Добавляем metricType
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
...
spec:
...
metricType: Value

И теперь в kubectl get hpa blablabla видим точное количество мессаджей в TARGETS(а не системы счисления инопланетян).
Этого нам мало, нужна точная подстройка.
Читаем дальше доку, у нас есть адвансед настройки.
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
...
spec:
advanced:
horizontalPodAutoscalerConfig:
behavior:
scaleDown:
policies:
- periodSeconds: 15
type: Pods
value: 1
stabilizationWindowSeconds: 300
scaleUp:
policies:
- periodSeconds: 15
type: Pods
value: 1
selectPolicy: Max
stabilizationWindowSeconds: 60
... (остальное так же)

Теперь у нас всё динамически скейлится, прописаны все триггеры, трешхолды.
Всё отлично и бизнес ликует(не вру, прям ликует, сильно помогло).

Однако меня, как рьяного и верного пса девопс церкви, напрягает, что в период высокой нагрузки всё упирается в максимум реплик. Да, можно поставить не 50, а 100, но я думаю, что настройка неверная.
Углубляемся дальше в доку(вру, я ничо не понял и просто спросил ребят-гуру-AWS-технологий в телеге) и вспоминаем про визибл/анвизибл настройки у sqs.
https://keda.sh/docs/2.14/scalers/aws-sqs/
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html

Окончательно пилим манифест.
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
...
spec:
advanced:
...(тут тоже самое)
metadata:
...
scaleOnInFlight: "false" << - - вот это вот важное нам
...


Отлично. Теперь самая точная и потрясающая настройка.
👍14
#aws #eks #sqs #CostOptimization

scaleOnInFlight
- Indication of whether or not to include in-flight messages when calculating the number of SQS messages. (default: true, Optional)

Благодаря точной настройке мы неслабо экономим:
- во время нагрузки мы не скейлим так много реплик
- нет большого лишнего скейла реплик - нет и скейла нод кластера AWS EKS
- нет скейла нод - платим серьёзно меньше

Всего один параметр и в разы снижаем нагрузку и косты.

Прежде чем делать подобное, уточните у девелоперов и бизнеса - подойдёт ли это вам и продукту.
Не все процессинги можно переключить только на инфлайт режим.

Полный пример манифеста(код в телеге неудобно читать).
https://gist.github.com/kruchkov-alexandr/e6328137107e49c6a5e7c05c40851680
👍14🔥1
Следи за собой, будь осторожен.
(звук)

#пятничное
This media is not supported in your browser
VIEW IN TELEGRAM
😁23👎2
AWS поломал поддержку S3 со всеми сторонними S3-совместимыми инструментами.

В январе 2025-го года прилетело такое обновление AWS SDK:

https://github.com/aws/aws-sdk-go-v2/blob/release-2025-01-15/service/s3/CHANGELOG.md#v1730-2025-01-15

В нём появились два параметра:

AWS_REQUEST_CHECKSUM_CALCULATION
AWS_RESPONSE_CHECKSUM_VALIDATION

Они как бы должны быть опциональными, но нет.

Поэтому, если у вас что-то не собирается, вы повторяете какой-то туториал, где всё красиво, а у вас лезут ошибки, то придётся страдать добавьте в ~/.aws/config переменные:

request_checksum_calculation=when_required
response_checksum_validation=when_required

Либо через экспорт:

export AWS_REQUEST_CHECKSUM_CALCULATION=when_required
export AWS_RESPONSE_CHECKSUM_CALCULATION=when_required

В качестве альтернативы, просто пиньте версию до этого обновления, например, AWS CLI 2.23.0.

#S3
👍179👏4🔥1
Когда осознал, чем теперь занимаюсь большую часть времени.
😁24👌2🤔1🤮1😴1👀1🤗1
AWS Notes
2025-й — год AI 2025-й войдёт в историю, как 1997-й, когда Каспаров проиграл Deep Blue. Или 2015 и AlphaGo, выигравший в Го после самообучения. Только там были узкие отдельные вещи, а в 2025-м AI в целом станет умней людей. Это уже произошло. Просто после…
Если ты всё ещё игноришь AI, который настолько туп, что не способен сосчитать даже буквы в слове. Если шутка про vibe coding выше абсолютно не понятна тебе. Если не в курсе про то, что такое MCP сервер и почему это новый API всего AI...

Тогда ещё раз глянь на дату окончания твоего контракта и сильно задумайся, продлят ли его. Ибо променяют тебя на тех, кто как раз все эти выше слова не только знает, но использует и пилит сейчас денно и нощно.

#AI
💩12💯9🤡6👍2🤔1😢1🤮1🤨1🙈1
MCP сервер для Cost Explorer:

https://github.com/aarora79/aws-cost-explorer-mcp-server

Даёт доступ Claude к Cost Explorer, что позволяет запрашивать и рисовать все расходы с помощью обычных текстовых запросов. Опционально также есть возможность подключения расходов на Bedrock.

По умолчанию работает локально, но можно запустить и в качестве виртуалки на AWS, чтобы использовать роль для доступа.

#MCP #cost_optimization
11🔥14👍41🤮1
🚀 Join our AWS Workshop: Decoupled Microservices on March 21! 🚀

☁️ Free of charge
☁️ Online
☁️ English

AWS Step Functions is a serverless workflow service that simplifies managing long-running processes and coordinating distributed applications. This workshop explores how Step Functions can implement the Saga design pattern to maintain data consistency across microservices without using Distributed Transaction Coordinators (DTC) or two-phase commits. You'll gain hands-on experience in orchestrating local transactions within a cloud-based architecture.

We will provide a dedicated training account for each participant who registers via the Google Form [https://forms.gle/YnaQS8wyjpkMaWby8]. However, you can also use your personal AWS account.

⚠️ IMPORTANT: Please complete the registration form [https://forms.gle/YnaQS8wyjpkMaWby8] by 21:00 UTC+1 on March 20.

Find out more details and register via the link below:
https://wearecommunity.io/events/workshop-decoupled-microservices
6👍1
Lambda best practices:​

https://aws.amazon.com/blogs/compute/handling-billions-of-invocations-best-practices-from-aws-lambda/

🔸 Stateless functions: Ensure functions do not maintain state between invocations.​
🔹 Service over custom code: Utilize AWS services instead of writing custom solutions.​
🔸 Decouple components: Minimize dependencies between services to enhance scalability.​
🔹 Idempotent operations: Design functions to handle repeated events safely.​
🔸 On-demand processing: Process events as they occur, avoiding batch processing.​
🔹 Use Step Functions: Consider Step Functions for complex workflows.​
🔸 Multiple AWS accounts: Manage quotas and isolation by using separate accounts.

#Lambda
👍10
MCP-server for Kubernetes:

https://github.com/Flux159/mcp-server-kubernetes

▫️ Connect to a Kubernetes cluster
▫️ List all pods
▫️ List all services
▫️ List all deployments
▫️ List all nodes
▫️ Create a pod
▫️ Delete a pod
▫️ Describe a pod
▫️ List all namespaces
▫️ Get logs from a pod for debugging (supports pods deployments jobs and label selectors)
▫️ Support Helm v3 for installing charts
▪️ Install charts with custom values
▪️ Uninstall releases
▪️ Upgrade existing releases
▪️ Support for namespaces
▪️ Support for version specification
▪️ Support for custom repositories

#MCP #Kubernetes
🤮14👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29😁5👍4👀2
#aws #aurora #terraform #finops
Материал уровня senior

Мы умеем определять тип инстанса - по нагрузке на CPU/Memory и другим факторам.
Но насколько эффективно мы выбрали Cluster storage configuration Авроры вашего проекта?
Эффективно ли это спустя год или два?
А никто не знает, давайте разбираться.

- сперва пилим Dashboard к нашему существующему кластеру
https://gist.github.com/kruchkov-alexandr/d9335d7927e58d06557b994dc9f194de
- применяем, видим панель в CloudWatch
Сверху у нас панель чтения/записи хранилища, снизу размер базы данных (+снепшоты?).
Разделение нужно из-за разницы масштабов и удобства экспорта.
- выбираем период три месяца и кликаем на трех точках у обоих панелей и выбираем Download as .csv и качаем оба файла
- заходим в cost explorer и экспортируем дату за три месяца по кластеру
- заходим в вашу любимую AI(я спрашивал у клаудии, перплексити и грок3, все платные) и пилим промт нечто типа(можете писать свой, если мой вам кажется тупым):
"Help me decide if we should switch to Amazon Aurora I/O-Optimized. Use the attached billing screenshot/csv, three-month IOPS data from the CSV, and the IOPS/storage graphs to analyze our costs. Calculate our current I/O expenses, compare them to I/O-Optimized costs and check if our I/O costs exceed AWS’s 25% threshold for switching. Look at IOPS and storage trends, then recommend whether to switch, including specific cost figures. I’ve attached all files (billing, CSV, graphs).
based on this article
https://aws.amazon.com/blogs/database/estimate-cost-savings-for-the-amazon-aurora-i-o-optimized-feature-using-amazon-cloudwatch/"

- ждём ответа и все 4 нейронки мне выдали на 95% одинаковый подробнейший расчёт ответ. Вкратце "Переходить пока рано".
- пишем менеджеру/боссу
I've analyzed our infrastructure costs over the last three months billing and IOPS data, to see if switching to Amazon Aurora I/O-Optimized makes sense. Right now, it's not cost-effective. Our I/O costs an average of $******* monthly (************ I/Os at $**** per million). Moving to I/O-Optimized would increase instance costs by ***%, from $******* to $******* - a $******* jump, which is $415.21 more than our current I/O expenses.
Our IOPS trends show peaks up to *** but no major growth, averaging ~** Write and ~**** Read IOPS hourly in February. Storage usage is growing at *** GB/month, but that doesn't impact the I/O-Optimized cost comparison. AWS suggests I/O-Optimized when I/O costs exceed **% of total Aurora spend, but ours ($******) are only **% of the $******* total, so we're below that threshold.
I recommend sticking with our standard configuration for now. We should keep monitoring I/O activity -if it exceeds **** I/Os monthly or I/O costs reach **% of our Aurora spend, we can revisit I/O-Optimized.

Прикладываем все файлы,скрины,расчёты.
- закрываем таску и трекаем время

Всё вышеописанное заняло у меня минут 15, а вот подготовительные работы(чтение про фичу, особенности, лимиты, как считать, написание борды, особенности биллинга и тп) почти половину дня.
* Если не верите ИИ, можете пересчитать вручную🐒

Дополнительные полезные ссылки(а вдруг вы мне не верите):
- анонс фичи
https://aws.amazon.com/about-aws/whats-new/2023/05/amazon-aurora-i-o-optimized/
- обзор менеджер уровня
https://aws.amazon.com/awstv/watch/b9bfc040ac5/
- пример расчётов (там руками считают, без ИИ)
https://aws.amazon.com/blogs/database/estimate-cost-savings-for-the-amazon-aurora-i-o-optimized-feature-using-amazon-cloudwatch/
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍3🤔21👏1
MCP with Bedrock:

- Allows AI models to access information outside their built-in knowledge.
- Help build tools that enable AI models to perform actions (such as visiting websites or checking the weather).
- Establish communication through a standardized protocol between the user, the AI model and external tools.

https://community.aws/content/2uFvyCPQt7KcMxD9ldsJyjZM1Wp/model-context-protocol-mcp-and-amazon-bedrock

For example, if you ask "get me a summary of the blog post at this URL", the system will:

- Process your request
- Recognize it needs to use a tool to visit the webpage
- Fetch the content from the URL
- Return the information to the model
- Generate a summary based on the fetched content

#MCP #Bedrock
👍5🔥3
Всех с пятницей .
🔥 Выпущена версия 0.19.1 платформы для изучения SRE! 🔥
GitHub

📌 Что нового:
- обновлён docker image for runner(viktoruj/runner)
- добавлено api к ping-pong серверу
- добавлена эмуляция падения программы в ping-pong
- добавлена эмуляция медленного ответа в ping-pong
- добавлен просмотр текущих значений переменных в ping-pong
- добавлено изменение переменных в запущенном ping-pong через api
- добавлено получение текущих параметров системы через api в ping-pong
- добавлены скомпилированные bin ping-pong для различных операционных систем

документация ping-pong сервера

🧪 Доступные пробные экзамены:
CKA
CKAD
CKS
KCNA
KCSA
LFCS

Скрипты и видео с решениями экзаменов:

Да пребудет с вами сила!
🔥33