AWS Notes
5.6K subscribers
445 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
​​Weekly Summary on AWS (April 24-30)

🔸 Audit Manager + AWS Config custom rules
🔸 CloudFormation + AWS::EC2::KeyPair 👍
🔸 Connect
API to search by name, agent hierarchies, and tags
PutUserStatus
Search and review Voice ID results
🔸 EC2 i4i instances 💥
🔸 EC2 key pairs
Retrieve public key and creation date
PPK for ED25519
🔸 IAM + aws:ResourceAccount, aws:ResourceOrgPaths, and aws:ResourceOrgID 👀
🔸 Interactive Video Service + stream chat
🔸 Lambda + Insights via Application Insights
🔸 Lightsail
HTTPS redirects
TLS policy
🔸 MSK Serverless + GA 🎉
🔸 Network Firewall + AWS Managed Threat Signatures
🔸 Rekognition Streaming Video Events + GA 🎉
🔸 RDS
IPv6 👍
Query results in JSON
Usage metrics against AWS service limits
🔸 SageMaker Data Wrangler
Data Quality and Insights Report
Random and stratified samples
🔸 SES v2 + 40MB message size
🔸 Service Catalog CDK constructs ⚠️
🔸 Snow
Large Data Migration Manager
Managing devices remotely
Update of device certificates

🔹 Control Tower landing zone v.2.9
🔹 EKS + Karpenter v0.9.0 with Pod Affinity 👈
🔹 Launch Wizard + clone inputs for SAP
🔹 Polly + Neural TTS voice in Brazilian Portuguese
🔹 RDS for MariaDB + m6i/r6i instances
🔹 RDS for MySQL + m6i/r6i instances
🔹 RDS for PostgreSQL + m6i/r6i instances
🔹 Wavelength Zone + Toronto

#AWS_week
👍61
🎉15🔥4👍3😢1💩1
​​RDS Blue/Green Deployments:

https://aws.amazon.com/blogs/aws/new-fully-managed-blue-green-deployments-in-amazon-aurora-and-amazon-rds/

■ You can use Blue/Green Deployments to create a separate, synchronized, fully managed staging environment that mirrors the production environment. The staging environment clones your production environment’s primary database and in-Region read replicas. Blue/Green Deployments keep these two environments in sync using logical replication.
■ In as fast as a minute, you can promote the staging environment to be the new production environment with no data loss. During switchover, Blue/Green Deployments blocks writes on blue and green environments so that the green catches up with the blue, ensuring no data loss. Then, Blue/Green Deployments redirects production traffic to the newly promoted staging environment, all without any code changes to your application.
■ With Blue/Green Deployments, you can make changes, such as major and minor version upgrades, schema modifications, and operating system or maintenance updates, to the staging environment without impacting the production workload.

RDS Blue/Green Deployments is available on:
🔹 RDS/Aurora MySQL 5.6+
🔸 RDS/Aurora MariaDB 10.2+

#RDS #Aurora
🔥11
Terraform + RDS & Secrets Manager:

В terraform-provider-aws v4.61 добавили поддержку секретов для пароля RDS:

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance

Свои секреты использовать нельзя, их создаст RDS при manage_master_user_password = true, параметр password при этом должен отсутствовать.

Для секретов RDS пароля можно указать свой KMS ключ.

resource "aws_db_instance" "postgres15" {
...
storage_encrypted = true
kms_key_id        = var.kms_key_id

manage_master_user_password = true
master_user_secret_kms_key_id = var.kms_key_id
}

Получить созданный RDS секрет с паролем:

data "aws_secretsmanager_secrets" "postgres15" {
  filter {
    name   = "owning-service"
    values = ["rds"]
  }
  filter {
    name   = "tag-value"
    values = [aws_db_instance.postgres15.arn]
  }
}

data "aws_secretsmanager_secret" "postgres15" {
  arn = tolist(data.aws_secretsmanager_secrets.postgres15.arns)[0]
}

output "rds_master_password_secret" {
  description = "RDS master user secret details"
  value       = aws_db_instance.postgres15.master_user_secret
}

output "rds_master_password_secret_data" {
  description = "RDS master user secret data resource in Secrets Manager"
  value       = data.aws_secretsmanager_secret.postgres15
}

#RDS #Terraform
👍18🔥9
​​RDS + db.m7g & db.c7g:

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html#Concepts.DBInstanceClass.Support

db.m6g.large $0.159
db.m7g.large $0.168

db.r6g.large $0.225
db.r7g.large $0.239

#RDS
8👍5
Active-active Replication for RDS PostgreSQL

https://aws.amazon.com/blogs/database/using-pgactive-active-active-replication-extension-for-postgresql-on-amazon-rds-for-postgresql/

▫️ Active-active Replication can be used to maintain availability throughout different database operations and reduce write latency for applications distributed in multiple AWS Regions.

▫️ PostgreSQL pgactive extension makes it possible to deploy RDS PostgreSQL instances using an active-active topology, and provides the foundational features for managing active-active replication such as conflict detection and resolution. 

#RDS #PostgreSQL
🔥7👍2
⚠️ Starting June 1, 2024, Amazon RDS began automatically upgrading instances:

db.m4 => db.m5
db.r4 => db.r5
db.t2 => db.t3

Amazon RDS ends support for db.m4/r4/t2December 31, 2024.

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html

#RDS
👍8😱5👻1🤪1
​​🆕 RDS with DLV (Dedicated Log Volumes) for PostgreSQL, MySQL, and MariaDB:

https://aws.amazon.com/blogs/database/enhance-database-performance-with-amazon-rds-dedicated-log-volumes/

RDS with DLV use cases:

• Large allocated storage (over 5 TiB)
• High IOPS requirements
• Transaction-intensive workloads
• Latency-sensitive workloads
• Using io1 or io2 Provisioned IOPS storage

⚠️ Enabling DLV requires database downtime, but this can be reduced by enabling DLV on a new or existing read replica and then promoting it as the primary.

#RDS
🤔3👍1
#aws #rds
Короткий материал на уровне senior+

Нырни на самое дно. Без страховки.

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

Традиционные параметры типа CPU/memory usage, connections, memory usage, latency, IOPS, lags, cache, CRUD throughput, slow logs и прочее мы научились мониторить и алёртить, что заставило нас оптимизировать запросы к бд и серьёзно снизило нагрузку.

Совсем недавно мы нырнули глубже и поменяли пару параметров в ущерб потери 1 секунды данных в случае аутейджа со стороны Амазон.
Данный проект не использует критически важные операции для транзакций типа финансовых операций, так что мы имеем право это включить. Если у вас финансовые операции или любые критичные операции вам НЕЛЬЗЯ это включать. Нельзя и запомните это.

innodb_flush_log_at_trx_commit
Значение 2 означает, что журнал транзакций (redo log) записывается в буфер операционной системы при каждой фиксации (commit), но сброс на диск происходит только раз в секунду
- Улучшает производительность, так как уменьшает операции ввода-вывода диска
- Снижает надежность: возможна потеря транзакций последней секунды при сбое сервера/ОС
- Компромисс между производительностью (выше) и надежностью (ниже) по сравнению со значением 1

innodb_trx_commit_allow_data_loss
Значение 1 означает, что система разрешает возможную потерю данных для увеличения производительности
- Значительно ускоряет операции фиксации транзакций
- Снижает гарантии сохранности данных
- Может привести к потере транзакций при сбоях

Результат дал о себе знать почти сразу, но нам явно придётся ещё несколько раз нырять для более точного тюнинга. Будем наблюдать и изменять под себя.

DevOps это не всегда общение, ямлоделие, пайплайны и кубер.
Иногда это тюнинг БД, когда все остальные элементы уже исчерпаны или нет на это бюджета(выше тип инстанса, gravitron v4, больше read реплик, RDS proxy, queries tuning etc).

Ну и код для примера:
resource "aws_rds_cluster_parameter_group" "this" {
...
parameter {
apply_method = "immediate"
name = "innodb_flush_log_at_trx_commit"
value = "2"
}
parameter {
apply_method = "immediate"
name = "innodb_trx_commit_allow_data_loss"
value = "1"
}
}
🔥20👍43
Теперь можно копировать RDS снэпшоты в другой регион другого аккаунта сразу.

https://aws.amazon.com/about-aws/whats-new/2025/09/amazon-rds-cross-region-cross-account-snapshot-copy/

Раньше приходилось копировать сначала в другой аккаунт, после уже в другой регион.

Кто настраивал AWS Backup на такие Disaster Recovery сценарии, стоит проверить ваши джобы для RDS.

4 года они тупо фейлились (при cross-region&cross-account), а теперь честно будут отрабатывать и тратить ваши деньги. 😁

#RDS #Backup
😁215👍4🔥3
🎈 RDS Extended Support или обладателям RDS PostgreSQL 11 и PostgreSQL 12 в 2025-м году посвящается.

Вдруг вы заходите раз в год в старые проекты. Радуетесь, что у вас не EKS и делать там особо нечего — работает себе и работает.

Однако стоит обратить на колонку стоимости за базу данных. За этот год счастливые обладатели PostgreSQL 12 обнаружат, что вместо привычных 50$/мес. за смешную db.t3.medium набегает как за "взрослую" — 200$/мес.

Ещё более счастливые обладатели PostgreSQL 11 (не) заметили это ещё в прошлом году. А вам только сейчас (не) повезло.

https://aws.amazon.com/rds/postgresql/pricing/

RDS Extended Support начал действовать в 2024-м году и его действие аналогично тому, как это действует для EKS — старые версии PostgreSQL и MySQL будут дополнительно взимать существенную дополнительную плату.

В результате получается в разы больше обычного счета за поддержку старых версий баз данных.

Пока это касается лишь только PostgreSQL и MySQL баз данных.

Кому приготовиться?

Обладателям PostgreSQL 13 осталось мучаться полгода и их ожидает такое же счастье.

https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-release-calendar.html

Не менее счастливые обладатели MySQL 5.7 тоже уже второй год зарабатывают на значок почётного спонсора AWS, а в следующем году к ним присоединятся и обладатели MySQL 8.0. Дополнительный повод переехать на MariaDB, у которой нет таких проблем (RDS Extended Support к ней не применяется).

#RDS #cost_optimization
🤡9👍63👀2