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

Chat: https://t.iss.one/aws_notes_chat

Contacts: @apple_rom, https://www.linkedin.com/in/roman-siewko/
Download Telegram
🚀 Join our AWS Workshop on March 5! 🚀

We are excited to announce that on Wednesday, March 5, we are hosting an AWS Workshop: Serverless Patterns, open to everyone!

In this workshop, you will learn serverless best practices by building production-ready code for an application. This hands-on experience will help you better understand AWS services and how to use them efficiently.

The workshop will be led by Ivan Danilov, an experienced AWS specialist and Lead Systems Engineer at Epam Systems.

We will provide a dedicated training account for each participant who registers via the Google Form [https://forms.gle/QYqZT9JxdUZkbnLS6]. However, you will be able to pass the workshop with your personal AWS account.

IMPORTANT: Please make sure to complete the Google Form registration by 22:00 UTC+2 on March 4.

Find out more details and register for the workshop via the link below:
https://wearecommunity.io/events/workshop-serverless-patterns
👍43🔥3
Присоединяйся к марафону — думай своей головой!

#пятничное
😁29👌13🤣3👏1
🆕 Terraform v1.11:

🔸 Write Only атрибуты для ресурсов, которые не записываются в стэйт
🔹 DynamoDB lock теперь deprecated, для лока по дефолту использует чисто S3
🔹 поддержка JUnit XML: terraform test -junit-xml

https://github.com/hashicorp/terraform/releases/tag/v1.11.0

Избавление от DynamoDB было ещё в прошлой версии, теперь же это GA и окончательно deprecated для dynamodb_table = "my-tf-state-lock".

Главная фича — возможность использования ephemeral ресурсов, которые существуют лишь на этапе plan + apply первый раз при создании ресурса (то есть временно/однократно). Они не попадают в стэйт, точней имеют там значение null и после никогда там не обновляются.

Вот как теперь может выглядеть создание RDS с генерацией случайного пароля с передачей его через секреты:

provider "aws" {
region = "us-east-1"
}

ephemeral "random_password" "db_password" {
length = 16
}

resource "aws_secretsmanager_secret" "db_password" {
name = "db_password"
}

resource "aws_secretsmanager_secret_version" "db_password" {
secret_id = aws_secretsmanager_secret.db_password.id
secret_string_wo = ephemeral.random_password.db_password.result
secret_string_wo_version = 1
}

ephemeral "aws_secretsmanager_secret_version" "db_password" {
secret_id = aws_secretsmanager_secret.db_password.id
}

resource "aws_db_instance" "example" {
instance_class = "db.t4g.small"
allocated_storage = "20"
engine = "postgres"
username = "myuser"
skip_final_snapshot = true

password_wo = ephemeral.aws_secretsmanager_secret_version.db_password.secret_string
password_wo_version = 1
}


Сто лет изначально ожидаемая фича. Можно, наконец, забороть сложные compliance требования, где сохранение паролей в state всегда вызывало претензии со стороны безопасников.

Отдельно добавляю, что появление фичи password_wo вполне можно считать результатом конкуренции с OpenTofu. И это очень хорошо.

#Terraform
👍371😁1
Forwarded from AWS User Group Armenia
This media is not supported in your browser
VIEW IN TELEGRAM
Morning people jan 🤗
Enjoy your morning coffee with this BIG NEWS and get ready to be AWS Certified for 𝐅𝐑𝐄𝐄?! 🎉

Amazon Web Services (AWS) is offering FREE 𝐜𝐞𝐫𝐭𝐢𝐟𝐢𝐜𝐚𝐭𝐢𝐨𝐧 𝐯𝐨𝐮𝐜𝐡𝐞𝐫𝐬 𝐟𝐨𝐫 𝐬𝐞𝐥𝐞𝐜𝐭 𝐞𝐱𝐚𝐦𝐬 𝐟𝐫𝐨𝐦 𝐅𝐞𝐛 𝟐𝟖 𝐭𝐨 𝐀𝐮𝐠 𝟐𝟎𝟐𝟓!

🔹 What’s covered?
𝐅𝐨𝐮𝐧𝐝𝐚𝐭𝐢𝐨𝐧𝐚𝐥: Cloud Practitioner, AI Practitioner
𝐀𝐬𝐬𝐨𝐜𝐢𝐚𝐭𝐞: Solutions Architect, SysOps Admin, Developer, Data Engineer, ML Engineer

🔹 How to claim your voucher?
Go through all the detailed steps here.

1️⃣ Sign up on AWS Educate & AWS SkillBuilder (use the same email).
2️⃣ Complete the required training in the Emerging Talent Community (ETC) section of AWS Educate.
3️⃣ Finish the Standard Prep Course + Official Question Set for your chosen cert.
4️⃣ Redeem your 100% free exam voucher from the Rewards menu!

⚠️ 𝐈𝐦𝐩𝐨𝐫𝐭𝐚𝐧𝐭: 𝐈𝐭 𝐦𝐚𝐲 𝐭𝐚𝐤𝐞 𝐮𝐩 𝐭𝐨 𝟕𝟐 𝐡𝐨𝐮𝐫𝐬 for the “Emerging Talent Community” to appear in your AWS Educate account console. Once visible, complete the onboarding content for full access.
📌 This is a limited-time opportunity—get started today!

for the FAQ and details.
🔥13🙈32
Заполонивший всю AI-ленту новостей, очередной китайский хит Manus AI, general AI agent, хороший пример, как можно запилить крутую штуку без собственной модели, с уже имеющимися сервисами и #OpenSource инструментами.

Manus AI использует Claude Sonnet 3.7 в качестве LLM, а для просмотра интернет browser-use, который недавно советовал как опенсорсную замену OpenAI Operator.

Keep It Simple.

#AI
Долго читал и всё не мог сообразить, зачем Володька сбрил усы TypeScript переписали на Go?

https://devblogs.microsoft.com/typescript/typescript-native-port/

TL;DRVS Code теперь будет работать в 10 раз быстрей. Но только, если вы пилите в нём свои TypeScript проекты. Потому что переписали на Go лишь компилятор для TypeScript.

Остальные будут задаваться вопросом — почему бы всё сразу не переписать? Причём сразу на Rust.
💯11👍4🤡3🤷‍♂2🔥2
ECR to ECR pull through cache

Вместо репликации для мульти-аккаунт/мульти-регионов, теперь можно включить кэширование:

https://docs.aws.amazon.com/AmazonECR/latest/userguide/pull-through-cache.html

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

Отличная замена предыдущим костылям на синхронизацию плюс экономия на стоимости (когда приходилось всё дублировать).

#ECR #cost_optimization
🔥14
#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