0Pricing
DevOps Bootcamp · Lezione

Configurare VPC e networking

Effettui il provisioning con Terraform di una Virtual Private Cloud AWS, subnet e security group per fornire alla sua infrastruttura una base di rete sicura e isolata.

Configurare VPC e networking è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

Perché utilizzare una VPC personalizzata?

Ogni account AWS include una VPC predefinita, ma l'infrastruttura di produzione merita una rete progettata autonomamente. Una VPC (Virtual Private Cloud) è una sezione isolata del cloud AWS in cui si controllano intervalli IP, subnet, routing e firewall.

Con Terraform si descrive l'intera rete come codice, rendendola riproducibile tra regioni e account.

Dichiarazione della risorsa VPC

La risorsa aws_vpc è la radice della rete. Il blocco CIDR definisce l'intervallo di IP privati. Un blocco /16 fornisce circa 65.000 indirizzi da suddividere in subnet.

resource "aws_vpc" "main" {
  cidr_block           = "10.0.0.0/16"
  enable_dns_support   = true
  enable_dns_hostnames = true

  tags = {
    Name = "main-vpc"
  }
}

Subnet pubbliche e private

Le subnet suddividono l'intervallo della VPC in blocchi più piccoli associati a una Availability Zone.

  • Subnet pubblica — instrada il traffico verso un internet gateway ed è utilizzata per load balancer e bastion host.
  • Subnet privata — non dispone di un instradamento diretto verso Internet ed è ideale per database e server applicativi.

Creazione di una subnet pubblica

Ogni subnet richiede un proprio CIDR (una porzione dell'intervallo della VPC) e una Availability Zone. Impostando map_public_ip_on_launch su true, agli account avviati qui vengono assegnati automaticamente indirizzi IP pubblici.

resource "aws_subnet" "public" {
  vpc_id                  = aws_vpc.main.id
  cidr_block              = "10.0.1.0/24"
  availability_zone       = "us-east-1a"
  map_public_ip_on_launch = true

  tags = {
    Name = "public-subnet"
  }
}

L'internet gateway

Un internet gateway (IGW) consente alle risorse di una subnet pubblica di raggiungere Internet. Viene collegato direttamente alla VPC.

resource "aws_internet_gateway" "gw" {
  vpc_id = aws_vpc.main.id

  tags = {
    Name = "main-igw"
  }
}

Tabelle di routing

Una subnet diventa veramente pubblica solo quando una tabella di routing invia il traffico 0.0.0.0/0 all'internet gateway. Le tabelle di routing associano i CIDR di destinazione ai target.

resource "aws_route_table" "public" {
  vpc_id = aws_vpc.main.id

  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.gw.id
  }
}

Associazione delle route alle subnet

Le tabelle di routing non hanno effetto finché non vengono associate a una subnet. La risorsa aws_route_table_association le collega.

resource "aws_route_table_association" "public" {
  subnet_id      = aws_subnet.public.id
  route_table_id = aws_route_table.public.id
}

Security group come firewall

Un security group è un firewall virtuale stateful che protegge un'istanza. Stateful significa che il traffico di risposta a una richiesta in entrata consentita viene autorizzato automaticamente; di solito è quindi necessario specificare solo le regole in entrata di interesse.

Definizione di un security group web

Di seguito consentiamo il traffico HTTP in entrata da qualsiasi origine e tutto il traffico in uscita. In ambienti reali, restringa il più possibile il CIDR di origine.

resource "aws_security_group" "web" {
  name   = "web-sg"
  vpc_id = aws_vpc.main.id

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

Collegamento di un'istanza alla rete

Colleghi la subnet e il security group a un'istanza EC2 tramite subnet_id e vpc_security_group_ids. In questo modo il server viene inserito nella rete personalizzata.

resource "aws_instance" "app" {
  ami                    = "ami-0abcd1234"
  instance_type          = "t3.micro"
  subnet_id              = aws_subnet.public.id
  vpc_security_group_ids = [aws_security_group.web.id]
}

Esposizione degli ID di rete

Esponga gli ID principali come output, così gli altri moduli o il Suo team potranno farvi riferimento dopo apply.

output "vpc_id" {
  value = aws_vpc.main.id
}

output "public_subnet_id" {
  value = aws_subnet.public.id
}

Verifica rapida

Verifichi la Sua comprensione del routing VPC.

Riepilogo: le fondamenta della rete

Ha creato una rete completa in Terraform:

  • aws_vpc con un intervallo CIDR.
  • Subnet distribuite tra le Availability Zone, pubbliche o private.
  • Internet gateway e tabelle di routing per l'accesso pubblico.
  • Security group come firewall stateful.

Questa rete è la struttura portante a cui si collega ogni altra risorsa AWS.

Domande Frequenti

La lezione «Configurare VPC e networking» è gratuita?

Sì — il testo completo di «Configurare VPC e networking» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Configurare VPC e networking»?

Effettui il provisioning con Terraform di una Virtual Private Cloud AWS, subnet e security group per fornire alla sua infrastruttura una base di rete sicura e isolata. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Configurare VPC e networking»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Configurazione del provider AWS
  2. Provisioning delle istanze EC2
  3. Gestione dei bucket S3 e di IAM
  4. Configurare VPC e networking
← Torna a DevOps Bootcamp