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
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
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
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
https://www.youtube.com/watch?v=DFeItULOeHc
Обсудили с Виктором его AWS VPC Terraform модуль:
https://github.com/ViktorUJ/terraform-aws-vpc
Хотите узнать, почему (не) надо писать собственный AWS VPC Terraform модуль — смотрите видео.
Комментарии, критика, а также подписка на канал и пулреквесты в репозитории Виктора — категорически приветствуются.
#Terraform #VPC #video
YouTube
Лучший AWS VPC Terraform модуль для SRE
Обсуждаем AWS VPC Terraform модуль от Виктора Николаева — создателя SRE Learning Platform (бесплатный инструмент для подготовки к CKA/CKS/CKAD/LFCS сертификации). Сравниваем его с самым популярным terraform-aws-vpc модулем от Антона Бабенко.
👍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
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 #ИБ
#Cloud #ИБ
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - iknowjason/Awesome-CloudSec-Labs: Awesome free cloud native security learning labs. Includes CTF, self-hosted workshops…
Awesome free cloud native security learning labs. Includes CTF, self-hosted workshops, guided vulnerability labs, and research labs. - GitHub - iknowjason/Awesome-CloudSec-Labs: Awesome free clou...
👍7🔥3❤2
Скрипач не нужен или
Начиная с Terraform v1.10 появляется опция use_lockfile и больше не нужно создавать/указывать
Начиная с Terraform v1.11
#Terraform
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
Backend Type: s3 | Terraform | HashiCorp Developer
Terraform can store and lock state remotely in Amazon S3.
🔥45👍4
🆕 Terraform v1.11:
🔸 Write Only атрибуты для ресурсов, которые не записываются в стэйт
🔹 DynamoDB lock теперь deprecated, для лока по дефолту использует чисто S3
🔹 поддержка JUnit XML:
https://github.com/hashicorp/terraform/releases/tag/v1.11.0
Избавление от DynamoDB было ещё в прошлой версии, теперь же это GA и окончательно deprecated для
Главная фича — возможность использования ephemeral ресурсов, которые существуют лишь на этапе
Вот как теперь может выглядеть создание RDS с генерацией случайного пароля с передачей его через секреты:
Сто лет изначально ожидаемая фича. Можно, наконец, забороть сложные compliance требования, где сохранение паролей в state всегда вызывало претензии со стороны безопасников.
Отдельно добавляю, что появление фичи
#Terraform
🔸 Write Only атрибуты для ресурсов, которые не записываются в стэйт
🔹 DynamoDB lock теперь deprecated, для лока по дефолту использует чисто S3
🔹 поддержка JUnit XML:
terraform test -junit-xmlhttps://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
}Отдельно добавляю, что появление фичи
password_wo вполне можно считать результатом конкуренции с OpenTofu. И это очень хорошо.#Terraform
GitHub
Release v1.11.0 · hashicorp/terraform
1.11.0 (February 27, 2025)
NEW FEATURES:
Add write-only attributes to resources. Providers can specify that certain attributes are write-only. They are not persisted in state. You can use ephemer...
NEW FEATURES:
Add write-only attributes to resources. Providers can specify that certain attributes are write-only. They are not persisted in state. You can use ephemer...
👍37❤1😁1
MCP server for Terraform:
https://github.com/nwiizo/tfmcp
◽️ Reading Terraform configuration files
◽️ Analyzing Terraform plan outputs
◽️ Applying Terraform configurations
◽️ Managing Terraform state
◽️ Creating and modifying Terraform configurations
#MCP #Terraform
https://github.com/nwiizo/tfmcp
◽️ Reading Terraform configuration files
◽️ Analyzing Terraform plan outputs
◽️ Applying Terraform configurations
◽️ Managing Terraform state
◽️ Creating and modifying Terraform configurations
#MCP #Terraform
GitHub
GitHub - nwiizo/tfmcp: 🌍 Terraform Model Context Protocol (MCP) Tool - An experimental CLI tool that enables AI assistants to manage…
🌍 Terraform Model Context Protocol (MCP) Tool - An experimental CLI tool that enables AI assistants to manage and operate Terraform environments. Supports reading Terraform configurations, analyzin...
2🤮2❤1👍1😱1
Forwarded from Make. Build. Break. Reflect.
#aws #aurora #terraform #finops
Материал уровня senior
Мы умеем определять тип инстанса - по нагрузке на CPU/Memory и другим факторам.
Но насколько эффективно мы выбрали
Эффективно ли это спустя год или два?
А никто не знает, давайте разбираться.
- сперва пилим Dashboard к нашему существующему кластеру
https://gist.github.com/kruchkov-alexandr/d9335d7927e58d06557b994dc9f194de
- применяем, видим панель в CloudWatch
Сверху у нас панель чтения/записи хранилища, снизу размер базы данных (+снепшоты?).
Разделение нужно из-за разницы масштабов и удобства экспорта.
- выбираем период три месяца и кликаем на трех точках у обоих панелей и выбираем
- заходим в 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/
Материал уровня 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🤔2❤1👏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
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
#Terraform
👏42👍9🔥9❤6😍1👀1🦄1
AWS Notes
Начиная с Terraform AWS Provider v6.0.0 алиасы уже не нужны — можно указывать AWS Region непосредственно в ресурсах, используя лишь один провайдер. #Terraform
Зарелизился terraform-provider-aws v6.0.0 с поддержкой регионов для ресурсов:
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/enhanced-region-support
Полный список изменений в шестой версии:
https://github.com/hashicorp/terraform-provider-aws/releases/tag/v6.0.0
#Terraform
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/enhanced-region-support
Полный список изменений в шестой версии:
https://github.com/hashicorp/terraform-provider-aws/releases/tag/v6.0.0
#Terraform
GitHub
Release v6.0.0 · hashicorp/terraform-provider-aws
BREAKING CHANGES:
data-source/aws_ami: The severity of the diagnostic returned when most_recent is true and owner and image ID filter criteria has been increased to an error. Existing configuratio...
data-source/aws_ami: The severity of the diagnostic returned when most_recent is true and owner and image ID filter criteria has been increased to an error. Existing configuratio...
❤17👍11🔥2
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
Обновлённый AWS провайдер содержит под сотню (93 шт.) BREAKING CHANGES, так что если у вас вдруг что-то перестало работать — не удивляйтесь.
Версии нужно пинить, господа. А то...
#Terraform
❤22💯4😭2