Первый шаг в работе с AWS Web Services. Создание VPC с помощью Terraform.

Cloud / Terraform Вчера, 23:01 sobir 20 0


Terraform — это инструмент для управления инфраструктурой как кодом (Infrastructure as Code, IaC). Вместо того чтобы вручную создавать ресурсы в AWS Console, вы описываете их в виде конфигурационных файлов.

Такой подход позволяет:

  • хранить инфраструктуру в Git;

  • легко воспроизводить окружения;

  • масштабировать и изменять ресурсы с минимальными усилиями.

В этой статье мы создадим первый ресурс в AWS — VPC (Virtual Private Cloud) с помощью Terraform.

1. Файл main.tf — провайдер AWS
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = var.aws_region
}

2. Файл network_core.tf — создание VPC
# Create VPC
resource "aws_vpc" "vpc" {
  cidr_block = "${var.vpc_params["network"]}/${var.vpc_params["cidr"]}"
  tags = {
    Name   = "${upper(var.contour_environment["region"])}-${var.contour_environment["company"]}"
    Region = "${upper(var.contour_environment["region"])}"
  }
}

3. Файл outputs.tf — вывод ID VPC
output "vpc_id" {
  value       = aws_vpc.vpc.id
  description = "The ID of VPC"
}

4. Файл terraform.tfvars — значения переменных
aws_region   = "eu-north-1"

contour_environment = {
  "company"           = "SysOps"
  "region"            = "eu"
}

vpc_params = {
  network             = "10.1.0.0"
  cidr                = "16"
}

5. Файл variables.tf — описание переменных
variable "aws_region" {
  description = "AWS region"
  type        = string
  default     = ""
}

variable "contour_environment" {
  description = "Company information"
  type = object({
    company           = string
    region            = string
  })
}

variable "vpc_params" {
  description = "VPC parameters"
  type = object({
    network             = string
    cidr                = string
  })
}

6. Применение конфигурации
terraform init
terraform plan
terraform apply
Похожие новости
Экспорт образа AMI виртуальной машины из AWS в хранилище S3

В этом руководстве мы рассмотрим процесс экспорта образа AMI виртуальной машины EC2 из облака AWS в хранилище...

Подробнее
Разворачиваем LEMP-стэк на контейнерах Docker

Контейнеризируем сервисы LEMP с помощью docker-compose....

Подробнее
Увеличиваем корневой раздел диска Linux на лету с помощью LVM

Увеличиваем корневой раздел диска Linux на лету с помощью LVM....

Подробнее
Резервное копирование БД ClickHouse в Ubuntu

Резервное копирование в ClickHouse с помощью утилиты clickhouse-backup....

Подробнее
Предоставляем ограниченный доступ к бакету AWS S3 и MinIO

Управление доступом к хранилищу S3 в Amazon Web Services (AWS) и MinIO....

Подробнее
Выставляем контейнеры наружу в CentOS 8 / RHEL 8

Используем контейнеры Podman’а вместо полноценных виртуальных машин....

Подробнее
Комментарии (0)
Новые комментарии
sobir8 ноября 2024 12:42

Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные

img
К комментарию
FidoNet7 ноября 2024 03:26

Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные статьи что находил

img
К комментарию
sobir27 октября 2024 19:02

Цитата: FidoNet Цитата: sobir Цитата: FidoNet Можт быть дело в

img
К комментарию
FidoNet25 октября 2024 22:04

Цитата: sobir Цитата: FidoNet Можт быть дело в dnsmasq.service? Ошибка Failed

img
К комментарию
sobir25 октября 2024 16:48

Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные

img
К комментарию
FidoNet20 октября 2024 12:12

Можт быть дело в dnsmasq.service? Ошибка Failed to set DNS configuration: Unit

img
К комментарию
Все комментарии
Какой дистрибутив Linux вы часто используете?
Календарь
«    Август 2025    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
25262728293031
Подпишись на канал