Come configurare un VPC in AWS

Avete appena intrapreso il vostro viaggio in AWS per migrare i vostri workload virtuali in istanze EC2 e non sapete quale sia la prima operazione da fare?

Bene, la prima cosa da fare è rimboccarsi le maniche configurare un VPC!

Cos’è un VPC in AWS?
Dal sito di AWS la definizione è questa:

Amazon Virtual Private Cloud (Amazon VPC) consente di effettuare il provisChe tradotto significa: VPC è l’insieme delle subnet di rete che si andranno a configurare nella region prescelta, affinché le varie risorse di AWS possano dialogare tra loro, con il web ed essere pubblicate.

Con questa breve guida, andrò anche a suggerire quali sono le best practices di configurazione e sicurezza suggerite da AWS.

1. Scelta della Region

Prima di addentrarci nella configurazione del VPC, dobbiamo scegliere in quale region andremmo ad utilizzare le risorse di AWS.

Questa scelta deve essere seguendo i questi criteri:

  1. Necessità di compliance
    Avete bisogno che i vostri dati debba risiedere in Italia? Bene, allora avete già fatto la scelta:  Region Europe (Milan) eu-south-1
  2. Risorse disponibili nella region
    Se avete assolutamente bisogno di utilizzare il servizio AWS Ground Station per controllare il vostro satellite, essendo questa una risorsa di nicchia non è disponibile in qualsiasi region, dovrete quindi orientarvi verso una che ospita tale servizio.
  3. Latenza
    Più una region è distante da voi, più la latenza aumenta, ovviamente! Sarà quindi vostra cura determinare se questo aspetto è fondamentale o meno.
  4. Prezzo
    Le region hanno costi diversi tra loro, date un’occhiata quindi ai loro prezzi. Quella più economica in Europa è quella Irlandese.

Una volta scelta la region, dobbiamo andare a selezionarla all’interno della nostra AWS Management Console.

  • Accediamo alla console con le nostre credenziali e scegliamo, dal menù in alto a destra, la region.
    aws_region

2. Esploriamo il VPC appena creato

  • Fatto ciò, accediamo al nostro VPC (cercando la parola “vpc” nella barra di ricerca in alto)
    aws_region
  • Cliccando su “VPCs”, noterete che AWS avrà già creato in automatico una subnet 172.31.0.0/16 la quale ha già accesso ad internet (mediante un Internet Gateway preconfigurato)aws_vpc3

3. Logica di configurazione delle subnet all’interno del VPC

Così com’è già configurato, il VPC è pronto per distribuire IP privati e pubblici alle nostre istanze EC2, le quali risiederanno però tutte all’interno della stessa subnet.
Noi però vogliamo seguire la best practice fornita da AWS, la quale consiglia di:

  • Creare un VPC per ogni Availability Zone presente nella Region
  • Il quale avrà una subnet pubblica (con accesso ad internet)
  • “n” subnet private (senza accesso ad internet)

Questo ci consentirà di connettere le nostre istanze EC2 con webservices (es. Apache) nella subnet pubblica, mentre quelle contenenti i database in quella privata così da ridurre ogni possibile breach.
Qui trovate la best practice ufficiale di AWS.

4. Configurazione di un nuovo VPC

  • Clicchiamo sul pulsante “Create VPC” in alto a destra e completiamo i campi richiesti come mostrato nello screen qui sotto:
    aws_create_vpc
  • Dobbiamo ora andare ad abilitare la funzionalità di assegnazione automatica dei nomi DNS pubblici al nostro VPN, altrimenti le istanze EC2 non navigheranno.
    Selezioniamo il VPC appena creato –> Actions –> Edit DNS hostnames
    aws_modify_vpc
  • Nella finestra che compare, mettiamo la spunta su “Enable” e clicchiamo su “Save changes”.
    aws_dns_vpc

5. Configurazione delle nostre subnet

Adesso il nostro nuovo VPC chiamato my-vpc-01 (o qualsiasi altro nome da voi attribuito) è configurato con una gigantesca subnet.
Procediamo quindi con la configurazione della subnet pubblica e privata.

  • Dal menù di sinistra selezioniamo “Subnets” e poi “Create subnet” in alto a destra
  • Nella schermata che compare selezioniamo dal menù a tendina in quale VPC vogliamo creare le subnet
    aws_create_subnet
  • Subito sotto inseriamo le specifiche della nostra subnet pubblica:
    – Subnet name: nome scelto da noi per la subnet.
    – Availability Zone: selezionare in quale Availability Zone creare la subnet. Lasciando su “No preference”, verrà creata in una delle Availability Zone disponibili.
    – IPv4 CIDR block: inseriamo qui la classe di IP privati che abbiamo deciso di voler assegnare alle istance che risiederanno in questa subnet. (Ovviamente dovrà far parte del range del CIDR del VPC.)
    aws_subnet_public
  • Clicchiamo su “Add new subnet” e configuriamo quella privata seguendo la stessa logica.
    aws_subnet_private
    Note: la subnet mask può essere anche più piccola (es. /24), ma questo dipende ovviamente dalle vostre esigenze.
  • Ora, nella sezione “Subnets” troveremo anche le nostre 2 nuove subnet (oltre a quelle preconfigurate da AWS)
    aws_subnets

6. Creazione di un Internet Gateway

Procediamo con la creazione di un Internet Gateway da assegnare al nostro VPC, il quale ci consetirà di “far uscire” il traffico su internet delle subnet che sceglieremo noi.

  • Molto semplicemente, sempre dal menù di sinistra, selezioniamo “Internet Gateways” e poi “Create new internet gateway”.
    Scegliamo un nome ed eventualmente dei tag e confermiamo.
    aws_internet_gateway

7. Creazione e configurazione Route Tables

Arrivati a questo punto abbiamo: un nuovo VPC, due nuove subnet e un nuovo Internet Gateway.
Manca quindi la creazione di una Route Table per instradare il traffico verso l’Internet Gateway.

  • Come sempre: menù di sinistra –> Route Tables –> Create route table
  • Selezioniamo il nostro VPC creato in precedenza e confermiamo.
    aws_route_tables
  • Selezioniamo ora la Route Table appena creata e dal menu “Actions” selezioniamo “Edit route”: dobbiamo ora creare la route per instradare il traffico su internet.
    aws_route_mod
  • Aggiungiamo una nuova route che avrà questi parametri:
    – destination: 0.0.0.0/0
    – target: l’internet gateway creato prima
    In questo modo abbiamo detto che tutto il traffico in uscita, deve passare attraverso l’Internet Gateway.
    aws_route_mod2

8. Configurazione subnet pubblica per la navigazione

Ora non ci resta che modificare l’associazione della route table della nostra subnet pubblica per consentire la navigazione.

  • Dal menù “Subnets” selezioniamo la nostra subnet pubblica e dal menù “Actions” selezioniamo “Edit route table association”
    aws_subnet_route
  • Dal menù a tendina selezioniamo la Route Table configurata poco fa e salviamo.
    aws_subnet_route2
  • Così facendo tutte le istanze EC2 che verranno configurate con questa subnet potranno navigare ed essere accessibili dal web secondo le regole del Security Group associato.

NB: le istanze configurate nella subnet privata, non saranno accessibili in SSH via web, ameno che non disponiate di una VPN con il VPC creato pocanzi.

By |2020-12-20T18:57:45+01:00December 19th, 2020|0 Comments

About the Author:

Sysadmin, Cloud Architect, Cyber Security Specialist, Network Administrator, Webdesigner, elettronico, chitarrista e molto altro. Insomma, un nerd che è riuscito a trasformare in lavoro la propria passione per la tecnologia e l’IT.

Leave A Comment

Chi Sono

Mi chiamo Simone Glerean, sono un Senior IT & Cyber Security Specialist.
Da anni lavoro nel mondo dell’IT ed ho aperto questo blog con lo scopo di raccogliere e condividere con tutti voi il mio know how.

Post Recenti