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
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