Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator Terraform AWS EC2 — gotowa konfiguracja IaC

Generuj konfigurację Terraform dla instancji AWS EC2: typ, AMI, security groups, key pair, user_data. Pobierz gotowy main.tf.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
15 znaków

Typ instancji

t3.micro

wpisany w formularzu, trafia do zmiennej instance_type

Region AWS

us-east-1

default zmiennej region w providerze

Rozmiar HCL

1 090 B

waga pliku main.tf do zapisania

terraform {
  required_version = ">= 1.3.0"

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = ">= 5.0"
    }
  }
}

provider "aws" {
  region = var.region
}

variable "region" {
  type = string
  default = "us-east-1"
}

variable "ami" {
  type = string
  default = "ami-0c02fb55956c7d316"
}

variable "instance_type" {
  type = string
  default = "t3.micro"
}

variable "key_name" {
  type = string
  default = ""
}

variable "subnet_id" {
  type = string
  default = ""
}

variable "security_group_ids" {
  type = list(string)
  default = []
}

resource "aws_instance" "this" {
  ami           = var.ami
  instance_type = var.instance_type
  user_data = <<-EOT
#!/bin/bash
set -e

# Example user data
echo "Hello from Terraform" > /tmp/hello.txt
EOT

  tags = {
    "Environment" = "dev"
    "Owner" = "platform"
    "Service" = "web"
    "Name" = "web-app-prod-01"
  }
}

output "public_ip" {
  value = aws_instance.this.public_ip
}

output "instance_id" {
  value = aws_instance.this.id
}

output "private_ip" {
  value = aws_instance.this.private_ip
}

Opis bloków odpowiada 1:1 kodowi silnika. Zaznaczone opcje (EIP, EBS) dopisują kolejne bloki resource i output do tego samego pliku.

Bloki HCL w generowanym pliku
BlokKiedyZawartość
terraform + provider zawsze required_providers: hashicorp/aws >= 5.0, required_version >= 1.3.0; provider "aws" z region = var.region
variable (6 szt.) zawsze region, ami, instance_type, key_name, subnet_id jako string oraz security_group_ids jako list(string); wartości z formularza jako default
resource aws_instance zawsze ami i instance_type z zmiennych; opcjonalnie key_name, subnet_id, vpc_security_group_ids, user_data (heredoc <<-EOT) oraz blok tags (klucz=wartość po znaku „=”, zawsze dodawany tag Name)
resource aws_eip gdy „Dołącz adres EIP” elastyczny IP przypięty do instancji (domain = "vpc", tag Name = nazwa + "-eip") + output public_ip z EIP
resource aws_ebs_volume + aws_volume_attachment gdy „Dołącz wolumin EBS” wolumin w tej samej strefie dostępności, rozmiar z formularza (GB), typ z selekty (gp3, gp2, io1, io2, st1, sc1, standard), encrypted = true, montowanie na /dev/sdf
output zawsze public_ip (z EIP lub instancji), instance_id, private_ip — do użycia w terraform output
Kolejność pracy z wygenerowanym plikiem
KomendaCo robi
terraform init pobiera providera AWS zadeklarowanego w required_providers
terraform plan pokazuje, co zostanie utworzone/zmienione — bez aplikowania zmian
terraform apply TWORZY PRAWDZIWE ZASOBY W AWS — instancja EC2, EIP i EBS są rozliczane (nawet t3.micro kosztuje, a EIP bez działającej instancji też jest płatny)
terraform destroy usuwa zasoby z pliku stanu — uruchamiaj, gdy środowisko testowe jest już niepotrzebne

Uwaga na koszty: terraform apply tworzy płatne zasoby AWS. Instancja EC2 jest rozliczana za czas pracy, adres EIP — gdy nie jest podpięty do działającej instancji, a wolumen EBS — za każdy GB i miesiąc przechowywania. Do testów używaj typów objętych Free Tier i usuwaj zasoby przez terraform destroy.

Warto wiedzieć — Terraform i EC2 w praktyce

Dlaczego zmienne zamiast wartości

Wygenerowany kod przekazuje region, AMI i typ instancji przez variable, a zasób czyta je jako var.ami i var.instance_type. Dzięki temu ten sam plik obsłuży środowiska dev i prod przez -var albo plik terraform.tfvars — bez edycji samego zasobu.

Typ instancji a rachunek

Rodziny t3/t4g (burstable, w t4g procesor ARM) są najtańsze do testów; m i c to maszyny ogólne i obliczeniowe z ceną wyższą o rząd wielkości. Cena zależy też od regionu — ta sama instancja w us-east-1 bywa wyraźnie tańsza niż w Europie czy Azji.

Tagi to nie ozdoba

Silnik zawsze dopisuje tag Name, a wpisy Klucz=Wartość z formularza trafiają do bloku tags. Spójne tagi (Environment, Owner, Service) to podstawa raportów kosztów w Cost Explorer, polityk IAM i automatycznego sprzątania zasobów.

Stan i bezpieczeństwo

Plik stanu (terraform.tfstate) zawiera identyfikatory zasobów — trzymaj go zdalnie (S3 z blokadą lock), nigdy w repozytorium. Bez podanych grup bezpieczeństw instancja trafia do domyślnej VPC, więc dostęp SSH i reguły ruchu musisz skonfigurować osobno.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator Terraform AWS EC2 – stwórz gotowy kod infrastruktury IaC

Zarządzanie infrastrukturą IT ewoluowało od ręcznej konfiguracji serwerów w panelach dostawców chmurowych do metodologii Infrastructure as Code (IaC). Liderem w tej dziedzinie jest narzędzie Terraform firmy HashiCorp. Umożliwia ono definiowanie zasobów sieciowych i serwerowych za pomocą deklaratywnego języka HCL (HashiCorp Configuration Language). Tworzenie konfiguracji od zera bywa jednak trudne dla początkujących i nużące dla doświadczonych administratorów ze względu na konieczność pamiętania licznych argumentów i zależności. Nasz generator Terraform AWS EC2 online to darmowe narzędzie, które pozwala wygenerować gotowy plik konfiguracyjny (.tf) dla instancji EC2, grupy bezpieczeństwa (Security Group) oraz powiązanych zasobów sieciowych na AWS.

Uzupełniając parametry takie jak region AWS, typ instancji (np. t3.micro), system operacyjny (AMI) czy dozwolone porty wejściowe, otrzymasz czysty, zoptymalizowany i w pełni poprawny składniowo kod Terraform gotowy do wdrożenia.

Najważniejsze zasoby Terraform przy wdrażaniu EC2

Prawidłowe wdrożenie serwera w chmurze AWS wymaga zdefiniowania kilku powiązanych ze sobą zasobów w plikach konfiguracyjnych. Poniższa tabela opisuje kluczowe elementy:

Nazwa zasobu (Terraform type) Rola w infrastrukturze AWS Przykładowy atrybut konfiguracji Opis atrybutu
aws_instance Definiuje fizyczne parametry wirtualnego serwera (instancji EC2). instance_type = "t3.micro" Określa zasoby sprzętowe (1 vCPU, 1 GB RAM).
aws_security_group Wirtualna zapora sieciowa kontrolująca ruch przychodzący i wychodzący. ingress.from_port = 22 Otwiera port 22 dla połączeń konsoli SSH.
aws_key_pair Umożliwia autoryzację połączeń SSH za pomocą kluczy publicznych. public_key = file("~/.ssh/id_rsa.pub") Wskazuje ścieżkę do lokalnego klucza publicznego.
provider "aws" Konfiguruje wtyczkę AWS, region oraz klucze dostępowe (credentials). region = "eu-central-1" Wskazuje region AWS (Frankfurt).

Dobre praktyki przy tworzeniu kodu Terraform dla AWS

Podczas pisania kodu Terraform warto stosować sprawdzone praktyki branżowe, które ułatwiają późniejsze zarządzanie infrastrukturą:

  • Nie hardkoduj wartości (używaj zmiennych): Wszystkie wartości podatne na zmiany (np. typ instancji, nazwy projektów) umieszczaj w pliku variables.tf.
  • Zarządzaj plikiem stanu (State File): Plik terraform.tfstate przechowuje informacje o rzeczywistej infrastrukturze. Przechowuj go w bezpiecznym, współdzielonym miejscu (np. w koszyku AWS S3 z włączonym blokowaniem za pomocą DynamoDB).
  • Stosuj zasadę najmniejszych uprawnień: W grupach bezpieczeństwa (Security Groups) otwieraj tylko te porty, które są niezbędne. Na przykład port SSH (22) powinien być dostępny tylko z Twojego adresu IP, a nie dla całego internetu (0.0.0.0/0).
  • Deklaruj wersje providerów: Zawsze blokuj wersję dostawcy AWS w bloku required_providers, aby uniknąć problemów z niekompatybilnością przy przyszłych aktualizacjach.

Jak uruchomić wygenerowany kod Terraform krok po kroku?

Aby wdrożyć serwer na AWS za pomocą wygenerowanego kodu, wykonaj następujące kroki w swoim terminalu:

  1. Zainstaluj Terraform: Upewnij się, że masz zainstalowane narzędzie CLI Terraform oraz skonfigurowane klucze dostępowe AWS (za pomocą aws configure).
  2. Zapisz kod: Skopiuj wygenerowany kod z naszego generatora i zapisz go w pliku o nazwie main.tf w pustym katalogu.
  3. Zainicjalizuj katalog: Uruchom komendę terraform init, aby pobrać niezbędne wtyczki AWS.
  4. Sprawdź plan wdrożenia: Wykonaj terraform plan, aby zobaczyć, jakie zasoby zostaną utworzone na AWS.
  5. Zastosuj zmiany: Uruchom terraform apply i zatwierdź wpisując yes, aby utworzyć serwer.

Często zadawane pytania (FAQ)

Co to jest "Infrastructure as Code" (IaC) i jakie są jego zalety?

Infrastructure as Code to podejście polegające na zarządzaniu i aprowizacji infrastruktury IT za pomocą kodu i automatyzacji, zamiast ręcznej konfiguracji. Główne zalety to eliminacja błędów ludzkich, powtarzalność środowisk, wersjonowanie konfiguracji w systemach Git oraz szybkość wdrażania zmian.

Skąd wziąć odpowiedni identyfikator AMI (Amazon Machine Image)?

Identyfikator AMI (np. ami-0c55b159cbfafe1f0) zależy od wybranego systemu operacyjnego oraz regionu AWS. Nasz generator automatycznie dobiera aktualne, domyślne identyfikatory AMI dla popularnych systemów (np. Ubuntu, Amazon Linux 2) w wybranym regionie, ale możesz też podać własne AMI.

Co to jest plik stanu (terraform.tfstate) i dlaczego jest tak ważny?

Plik stanu to lokalna lub zdalna baza danych w formacie JSON, w której Terraform przechowuje odwzorowanie zadeklarowanego kodu na rzeczywiste zasoby w chmurze AWS. Bez tego pliku Terraform nie wie, jakie zasoby zostały już utworzone i przy kolejnym uruchomieniu spróbuje stworzyć je na nowo.

Jak zniszczyć zasoby utworzone przez Terraform?

Jeśli chcesz usunąć wszystkie zasoby zdefiniowane w plikach konfiguracyjnych w danym katalogu (aby np. uniknąć kosztów za działający serwer), wystarczy uruchomić komendę terraform destroy w terminalu i potwierdzić usunięcie.

Czy ten kod zadziała w darmowym pakiecie AWS Free Tier?

Tak! Jeśli wybierzesz region z dostępnym pakietem darmowym i ustawisz typ instancji na t2.micro (lub t3.micro w niektórych regionach) oraz będziesz mieścić się w limitach godzinowych (750h miesięcznie), AWS nie naliczy żadnych opłat za uruchomiony serwer.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!