Коли створюєш безпечну та масштабовану хмарну інфраструктуру, налаштування Virtual Private Cloud (VPC) з публічними та приватними підмережами є важливим кроком. Цей посібник поєднує ручні кроки через AWS Management Console та автоматизацію процесу за допомогою Terraform, потужного інструменту для Інфраструктури як Код (IaC). 🚀
🛠 Крок 1: Ручне налаштування в AWS Management Console 🖱️
🔑 Увійдіть до AWS
Відкрийте браузер, перейдіть на AWS Management Console та увійдіть.
🌐 Створення VPC
- Перейдіть до VPC Dashboard → Your VPCs → Create VPC.
- Введіть:
- Name tag:
MyVPC
- CIDR block:
10.0.0.0/16
🌉 Створення підмереж
Перейдіть до Subnets → Create subnet.
- Створіть публічну підмережу з:
- Name tag:
PublicSubnet
- CIDR block:
10.0.0.0/24
- Створіть приватну підмережу з:
- Name tag:
PrivateSubnet
- CIDR block:
10.0.1.0/24
🌐 Приєднайте Інтернет-шлюз
- Перейдіть до Internet Gateways → Create Internet Gateway → Назва:
MyInternetGateway
. - Приєднайте його до вашого VPC.
📜 Створення таблиці маршрутів
- Перейдіть до Route Tables → Create Route Table → Назва:
PublicRouteTable
. - Додайте маршрут:
- Destination:
0.0.0.0/0
- Target: Виберіть ваш Internet Gateway.
- Ассоціюйте PublicRouteTable з публічною підмережею.
🤖 Крок 2: Автоматизація налаштування за допомогою Terraform
Хоча ручне налаштування добре для навчання, автоматизація інфраструктури за допомогою Terraform забезпечує повторюваність, узгодженість та економить час. 🕒 Ось код Terraform для досягнення того самого результату:
Terraform конфігураційний файл (Налаштування VPC) 🧑💻
. 🚀 Ініціалізація конфігурації Terraform
Визначте провайдера AWS та необхідну версію.
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
- 🌍 Провайдер AWS
Встановіть регіон AWS для розгортання ресурсів.
provider "aws" {
region = "eu-west-1"
}
🌐 Створення VPC
resource "aws_vpc" "demo_vpc" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "Terraform VPC"
}
}
📊 Додавання підмереж
resource "aws_subnet" "public_subnet" {
vpc_id = aws_vpc.demo_vpc.id
cidr_block = "10.0.0.0/24"
}
resource "aws_subnet" "private_subnet" {
vpc_id = aws_vpc.demo_vpc.id
cidr_block = "10.0.1.0/24"
}
🌉 Приєднання Інтернет-шлюза
resource "aws_internet_gateway" "igw" {
vpc_id = aws_vpc.demo_vpc.id
}
📜 Таблиця маршрутів для публічної підмережі
resource "aws_route_table" "public_rtb" {
vpc_id = aws_vpc.demo_vpc.id
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.igw.id
}
}
🔗 Ассоціація таблиці маршрутів
resource "aws_route_table_association" "public_subnet" {
subnet_id = aws_subnet.public_subnet.id
route_table_id = aws_route_table.public_rtb.id
}
🏆 Переваги використання Terraform 🌟
- 🚀 Автоматизація
Terraform автоматизує створення ресурсів, заощаджуючи час та зменшуючи ручні зусилля. - 🔄 Узгодженість
Конфігураційні файли забезпечують ідентичність кожного розгортання, уникнення людських помилок. - 📜 Контроль версій
Файли Terraform можна зберігати в Git, що дозволяє здійснювати версіонування та легке відслідковування змін. - 👥 Співпраця
Команди можуть ефективно співпрацювати, використовуючи єдине джерело правди (код). - 📦 Підтримка мультихмарних середовищ
Terraform підтримує AWS, Azure, GCP та інші, що робить його універсальним інструментом для сучасної інфраструктури. - 💥 Масштабованість
Ресурси можна додавати або оновлювати, модифікуючи код — не потрібно клікати через інтерфейс користувача.
7.
🌍 Відтворюваність
З Terraform ви можете легко відтворити всю інфраструктуру в різних середовищах (наприклад, Dev, Staging, Production).
🚀 Висновок
Незалежно від того, чи керуєте ви одним середовищем, чи масштабуєте хмарне рішення в різних регіонах, Terraform є змінником гри для ефективного та автоматизованого управління інфраструктурою. Хоча AWS Management Console є відмінною точкою для початку, перехід до Terraform відкриває незрівнянну потужність, узгодженість і співпрацю для команд DevOps. 💡
💾 Додаткові ресурси:
Ознайомтесь з документацією AWS Terraform Provider для більше деталей та прикладів.
Не соромтесь ділитися своїми думками та питаннями в коментарях нижче! 👇 😊
Перекладено з: 🌐 A Comprehensive Guide to Setting Up a VPC with Public and Private Subnets Using AWS and Terraform 🌟