Terraform & IaC
Infrastructure as Code - управление инфраструктурой через код
Terraform Workflow
✓
Init2
Validate3
Plan4
ApplyResources Plan
+ createaws_vpc.main
VPC+ createaws_subnet.public
Subnet+ createaws_instance.web
EC2~ updateaws_security_group.allow_http
Security GroupЧто такое Terraform?
Terraform — это инструмент Infrastructure as Code (IaC) от HashiCorp, позволяющий описывать и управлять инфраструктурой через декларативные конфигурационные файлы.
Поддерживает AWS, Azure, GCP, Kubernetes и сотни других провайдеров.
Преимущества IaC
- •Версионирование инфраструктуры в Git
- •Воспроизводимость окружений
- •Автоматизация создания ресурсов
- •Предсказуемые изменения через plan
☁️
Multi-Cloud
Единый язык для управления ресурсами в AWS, Azure, GCP и других облаках
📋
State Management
Отслеживание текущего состояния инфраструктуры в state файлах
🔄
Модули
Переиспользуемые конфигурации для быстрого создания инфраструктуры
Пример Terraform конфигурации
# main.tf
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "us-west-2"
}
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "main-vpc"
}
}
resource "aws_subnet" "public" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
tags = {
Name = "public-subnet"
}
}
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
subnet_id = aws_subnet.public.id
tags = {
Name = "web-server"
}
}