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

Chat: https://t.me/aws_notes_chat

Contacts: @apple_rom, https://www.linkedin.com/in/roman-siewko/
Download Telegram
​​Качественная статья о положении дел HashiCorp.

https://medium.com/@fintanr/on-ibm-acquiring-hashicorp-c9c73a40d20c

Вот, что может случиться, когда в ведущем продукте меняется open source лицензия. От даты изменения типа лицензии до продажи компании прошло 9 месяцев.

#Terraform
👍4
​​⚡️ Oracle switched from Terraform to OpenTofu

https://blogs.oracle.com/ebsandoraclecloud/post/ebs-cloud-manager-24111-now-available

In this release, we have switched from Terraform to OpenTofu due to forthcoming Terraform licensing changes. You must therefore upgrade your Cloud Manager by June 30, 2024 at the latest.
We highly recommend that you uptake this new release of Cloud Manager at your earliest convenience.

P.S. Лёд тронулся, господа присяжные заседатели!

#Terraform #OpenTofu
👍13😱4🤮2
Terraform AWS Cloud Control Provider

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

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

https://aws.amazon.com/blogs/devops/quickly-adopt-new-aws-features-with-the-terraform-aws-cloud-control-provider/

Terraform AWS Cloud Control Provider features:

▫️ Developed by AWS and HashiCorp over four years, leveraging the AWS Cloud Control API.

▫️ Supports new AWS services and features immediately upon release via automatic generation from AWS Cloud Control API.

▫️ Best for using newly released AWS features and services that are not yet available in the standard Terraform AWS Provider.

#Terraform
🔥14
​​Terraform best practices from AWS

https://docs.aws.amazon.com/prescriptive-guidance/latest/terraform-aws-provider-best-practices/introduction.html

Backend

▫️ Use S3 for remote storage
▫️ Facilitate team collaboration
▫️ Separate the backends for each environment
▫️ Actively monitor remote state activity

Code

▫️ Implement a standard repository structure
▫️ Structure for modularity
▫️ Follow naming conventions
▫️ Use attachment resources
▫️ Use default tags
▫️ Meet Terraform Registry requirements
▫️ Use recommended module sources
▫️ Follow coding standards

Versions

▫️ Use the TFLint
▫️ Monitor new releases

Modules

▫️ Use variables for customization
▫️ Understand dependencies
▫️ Use trusted sources

#Terraform
👍12🔥2
​​Отличное сравнение security scan tools для Terraform

https://devdosvid.blog/2024/04/16/a-deep-dive-into-terraform-static-code-analysis-tools-features-and-comparisons/

▫️ KICS
▫️ tfsec
▫️ Trivy
▫️ Terrascan
▫️ Checkov
▫️ Semgrep

#Terraform
Amazon EKS Terraform Workshop

https://catalog.us-east-1.prod.workshops.aws/workshops/afee4679-89af-408b-8108-44f5b1065cc7/en-US

- Install the Sample Application
- Observability
- Automation using Flux
- Using Kyverno Policy Manager
- Enabling GuardDuty
- VPC Lattice
- VPC CNI Network Policy
- Troubleshooting

#EKS #Terraform #workshop
👍17
Лучший AWS VPC Terraform модуль для SRE

https://www.youtube.com/watch?v=DFeItULOeHc

Обсудили с Виктором его AWS VPC Terraform модуль:

https://github.com/ViktorUJ/terraform-aws-vpc

Хотите узнать, почему (не) надо писать собственный AWS VPC Terraform модуль — смотрите видео.

Комментарии, критика, а также подписка на канал и пулреквесты в репозитории Виктора — категорически приветствуются.

#Terraform #VPC #video
👍13🔥3👎1🥰1
🆕 Terraform Stacks:

https://www.hashicorp.com/blog/terraform-stacks-explained

Stacks, стэк, стэки, где же я это уже слышал? А, точно — CloudFormation Stacks! 😁

https://www.youtube.com/watch?v=qKljYgi2lQ0&t=35s

#Terraform
👍9😁7🤔2
Forwarded from infosec
• Awesome Cloud Security Labs - объемный набор бесплатных лаб для самостоятельного изучения безопасности облачных сред и технологий:

AWS;
Azure;
GCP;
Kubernetes;
Container;
Terraform;
Research Labs;
CI/CD.

https://github.com/iknowjason/Awesome-CloudSec-Labs

#Cloud #ИБ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥32
Скрипач не нужен или dynamodb_table — всё.

terraform {
 # S3 Conditional Writing configuration (locks without DynamoDB)
 required_version = "~> 1.10" # with use_lockfile
 backend "s3" {
  bucket     = "my-tf-state"
  # dynamodb_table = "my-tf-state-lock" # deprecated from 1.11
  use_lockfile  = true
  key      = "devops/us-east-1/kms.tfstate"
  region     = "us-east-1"
  encrypt    = "true"
  kms_key_id   = "arn:aws:kms:us-east-1:34567890:key/15a-6736"
 }
}


Начиная с Terraform v1.10 появляется опция use_lockfile и больше не нужно создавать/указывать dynamodb_table для блокировки стэйта. Для этого используется нативная фича S3 Conditional Writes, появившаяся в 2024-м году.

Начиная с Terraform v1.11 dynamodb_table уже deprecated, хотя её можно по-прежнему указывать (даже вместе с use_lockfile = true).

#Terraform
🔥45👍4
🆕 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
#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
EKS Terraform demo

https://github.com/setheliot/eks_demo/

Deploys:

▪️ EKS cluster using EC2 nodes
▪️ DynamoDB table
▪️ EBS volume used as attached storage for the Kubernetes cluster (a PersistentVolume)
▪️ Demo "guestbook" application, deployed via containers
▪️ ALB to access the app

#EKS #Terraform
👍5💊5
Начиная с Terraform AWS Provider v6.0.0 алиасы уже не нужны — можно указывать AWS Region непосредственно в ресурсах, используя лишь один провайдер.

#Terraform
👏42👍9🔥96😍1👀1🦄1
Roman Siewko
Зарелизился terraform-provider-aws v6.0.0 с поддержкой регионов для ресурсов: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/enhanced-region-support Полный список изменений в шестой версии: https://github.com/hashicorp/terraform…
BREAKING CHANGES: Terraform AWS Provider v.6

Обновлённый AWS провайдер содержит под сотню (93 шт.) BREAKING CHANGES, так что если у вас вдруг что-то перестало работать — не удивляйтесь.

Версии нужно пинить, господа. А то...

#Terraform
22💯4😭2