{"id":549,"date":"2025-01-16T08:58:36","date_gmt":"2025-01-16T07:58:36","guid":{"rendered":"https:\/\/www.tooldech.com\/?p=549"},"modified":"2025-07-10T07:02:54","modified_gmt":"2025-07-10T07:02:54","slug":"creare-uninfrastruttura-aws-con-terraform-per-una-web-app","status":"publish","type":"post","link":"https:\/\/tooldech.com\/en\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/","title":{"rendered":"Creating an AWS Infrastructure with Terraform for a Web App"},"content":{"rendered":"<p>Buongiorno a tutti cari lettori, iniziamo l&#8217;anno a bomba con nuovi articoli e una nuova categoria Cloud, questa categoria sar\u00e0 incentrata sul mondo del cloud computing, nell&#8217;articolo di oggi configureremo un&#8217;infrastruttura AWS utilizzando Terraform per ospitare una web app su un&#8217;istanza EC2. Questa guida include la configurazione della rete, il provisioning delle risorse e il deployment della web app.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Prerequisites<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Account AWS<\/strong> attivo.\n<ul class=\"wp-block-list\">\n<li>S\u00ec bisogna aver attivato un&#8217;account di Amazon Web Service, qui il <a href=\"https:\/\/eu-north-1.signin.aws.amazon.com\/oauth?client_id=arn%3Aaws%3Asignin%3A%3A%3Aconsole%2Fcanvas&amp;code_challenge=cWo11cBKPOvAq3PkZrM7s--RyUfEGdCa22X-PW9mFdY&amp;code_challenge_method=SHA-256&amp;response_type=code&amp;redirect_uri=https%3A%2F%2Fconsole.aws.amazon.com%2Fconsole%2Fhome%3FhashArgs%3D%2523%26isauthcode%3Dtrue%26nc2%3Dh_ct%26oauthStart%3D1735388434610%26src%3Dheader-signin%26state%3DhashArgsFromTB_eu-north-1_ba71d940c1faa336\">link<\/a> per registrarvi o accedere al portale, questo prerequisito serve per farvi creare le risorse in cloud, banalmante  il cloud \u00e8 creare risorse IT( server, database, reti &#8230;) via internet.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Terraform<\/strong> installato sul tuo sistema.\n<ul class=\"wp-block-list\">\n<li>Terraform \u00e8 uno strumentio Infrastructure as Code (IaC) consentono di gestire l&#8217;infrastruttura con i file di configurazione piuttosto che attraverso un&#8217;interfaccia utente grafica. IaC  \u00e8 progettato per creare, modificare e gestire le risorse sulla base della configurazione che scrivi nei file <code>.tf<\/code> .<\/li>\n\n\n\n<li>qui il <a href=\"https:\/\/developer.hashicorp.com\/terraform\/install\">link <\/a>per installarlo dal loro sito.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AWS CLI<\/strong> configurata con un profilo valido ecco qui il <a href=\"https:\/\/docs.aws.amazon.com\/cli\/v1\/userguide\/cli-configure-files.html?\">link ufficiale di aws <\/a>e questo video che lo spiega molto brevemente.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"AWS CLI Profile Configuration: Quick and Easy Setup for Beginners\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/dZgLNL869YU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Obiettivi<\/strong><\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Creare un&#8217;istanza EC2 utilizzando Terraform.<\/li>\n\n\n\n<li>Configurare Docker tramite uno script User Data.<\/li>\n\n\n\n<li>Scaricare automaticamente un&#8217;immagine Docker (es. <code>nginx<\/code> o altre immagini a vostro piacimento) durante l\u2019avvio.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span><strong>1. Scrivere il file<\/strong><\/span> <strong>Terraform<\/strong><\/h2>\n\n\n\n<p>Senza perdere altro tempo in questo punto, una volta configurata le credenziali di aws, si pu\u00f2 procedere con la creazione del file terraform. La configurazione del file <code>main.tf<\/code> serve per creare i componenti AWS con Terraform si basa sulla definizione di risorse che descrivono gli elementi infrastrutturali da creare su AWS, quindi fondamentale avere credenziali valide e ben configurate.<\/p>\n\n\n\n<p>Divideremo la struttura del file main.tf in varie parti per spiegare brevemente quello che andremo ad usare.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Provider<\/strong><\/h3>\n\n\n\n<p>Il <strong>provider <\/strong>specifica quale piattaforma cloud utilizzerai (in questo caso, AWS, potremmo usare altri cloud pubblici come Azure). Terraform utilizza il provider per autenticarsi e interagire con l&#8217;API di AWS.<\/p>\n\n\n\n<pre class=\"wp-block-code has-gray-background-color has-background\"><code>provider \"aws\" {\n  region = \"eu-west-1\"\n}\n<\/code><\/pre>\n\n\n\n<p><strong><code>region<\/code>:<\/strong> \u00c8 importante scegliere una regione, nel mio caso io scelgo eu-west-1 = Irlanda, potete visionare le regioni sulla console di AWS,  in cui vuoi che le tue risorse siano create. Assicurati che l&#8217;AMI che utilizzi sia disponibile nella regione scelta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Risorsa EC2 da inserire nel Terraform<\/strong><\/h3>\n\n\n\n<p>Questa \u00e8 la risorsa principale per creare un&#8217;istanza EC2. I valori pi\u00f9 importanti sono:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Parametri principali<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code has-gray-background-color has-background\"><code>resource \"aws_instance\" \"ec2_with_docker\" {\n  ami           = \"ami-01f5f2e96f603b15b\" \n  instance_type = \"t2.micro\"              \n  key_name      = \"terraform\"           \n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>ami<\/code>:<\/strong> L&#8217;Amazon Machine Image (AMI) \u00e8 il sistema operativo preconfigurato. Utilizza un&#8217;AMI compatibile con il tuo scopo, come Amazon Linux 2 (puoi trovare gli ID AMI nella documentazione AWS o nella tua console AWS).<\/li>\n\n\n\n<li><strong><code>instance_type<\/code>:<\/strong> Specifica il tipo di istanza, dalla sua grandezza alla sua velocit\u00e0 .<\/li>\n\n\n\n<li><strong><code>key_name<\/code>:<\/strong> Il nome del key pair necessario per accedere all&#8217;istanza via SSH. Devi gi\u00e0 aver creato un key pair nella console AWS, accedendo alla console EC2 .<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"752\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ami-1024x752.jpg\" alt=\"\" class=\"wp-image-891\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ami-1024x752.jpg 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ami-300x220.jpg 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ami-768x564.jpg 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ami.jpg 1236w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>Quando si \u00e8 capito che tipo di immagine avere e la dimensione dell&#8217;ec2, si segna il codice ID dell&#8217;ami e si procede con la creazione della coppia di chiavi o proseguendo in basso o nella sidebar di sinistra. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"616\" height=\"590\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/key.jpg\" alt=\"\" class=\"wp-image-893\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/key.jpg 616w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/key-300x287.jpg 300w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/figure>\n<\/div>\n\n\n<p>Un procedimento molto semplice per creare una coppia di chiavi, bisogna dare un nome, scegliere tra il tipo di coppia ed il formato che vi serve di pi\u00f9 a voi. Infine cliccate sulla creazione della coppia di chiave.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>User Data Script<\/strong><\/h4>\n\n\n\n<p>User Data \u00e8 uno script che Terraform esegue automaticamente al primo avvio dell&#8217;istanza EC2. Qui puoi configurare Docker e altre applicazioni.<\/p>\n\n\n\n<pre class=\"wp-block-code has-gray-background-color has-background\"><code>user_data = &lt;&lt;-EOF\n#!\/bin\/bash\nsudo yum update -y\nsudo yum install -y docker\nsudo service docker start\nsudo usermod -aG docker ec2-user\ndocker pull matteo29mar\/web-app-flask:latest\nEOF\n<\/code><\/pre>\n\n\n\n<p>Usa script di bash o PowerShell per configurazioni personalizzate.<\/p>\n\n\n\n<p>Questo script installa Docker, avvia il servizio e scarica l&#8217;immagine <code>docker pull matteo29mar\/web-app-flask:latest<\/code>, nel mio caso utilizzo la web-app dell&#8217;anatra fatta nel precedente <a href=\"https:\/\/www.tooldech.com\/pipeline-con-github-actions-devops-tutorial\/\">articolo<\/a>, ma voi potete usare qualsiasi altra immagine docker.<\/p>\n\n\n\n<p><strong>N.B<\/strong> ricordatevi di inserire il corretto path per pullare l&#8217;immagine perch\u00e9 se non riesce a trovare l&#8217;immagine installer\u00e0 tutto ma il container non ci sar\u00e0 ma tutto il resto s\u00ec.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Gruppo di Sicurezza <\/strong><\/h3>\n\n\n\n<p>Un gruppo di sicurezza definisce quali connessioni in entrata e in uscita sono consentite per la tua istanza.<\/p>\n\n\n\n<pre class=\"wp-block-code has-gray-background-color has-background\"><code>resource \"aws_security_group\" \"docker_sg\" {\n  name_prefix = \"docker-sg\"\n  ingress {\n    from_port   = 22\n    to_port     = 22\n    protocol    = \"tcp\"\n    cidr_blocks = &#91;\"0.0.0.0\/0\"]\n  }\n  ingress {\n    from_port   = 80\n    to_port     = 80\n    protocol    = \"tcp\"\n    cidr_blocks = &#91;\"0.0.0.0\/0\"]\n  }\n  egress {\n    from_port   = 0\n    to_port     = 0\n    protocol    = \"-1\"\n    cidr_blocks = &#91;\"0.0.0.0\/0\"]\n  }\n}\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ingress:<\/strong> Definisce le regole per il traffico in entrata (SSH sulla porta 22 e HTTP sulla porta 80).<\/li>\n\n\n\n<li><strong>Egress:<\/strong> Consente il traffico in uscita (necessario per Docker e aggiornamenti di sistema), se usate immagini docker particolari che rischiedono range particolari come me con la 5000 dovete modifcare il from_port ed il to_port con le porte desiderate.<\/li>\n\n\n\n<li><strong><code>cidr_blocks<\/code>:<\/strong> Pu\u00f2 essere ristretto a un IP specifico per maggiore sicurezza (es. <code>203.0.113.0\/32<\/code>).<\/li>\n<\/ul>\n\n\n\n<p>Il codice main.tdf completo<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"420\" height=\"1024\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/code-420x1024.png\" alt=\"\" class=\"wp-image-894\" style=\"width:760px;height:auto\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/code-420x1024.png 420w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/code-123x300.png 123w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/code-768x1870.png 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/code-841x2048.png 841w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/code-1024x2494.png 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/code-scaled.png 1051w\" sizes=\"auto, (max-width: 420px) 100vw, 420px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Esecuzione Completa del file Terraform <\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Inizializza Terraform usando il comando:<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-cyan-bluish-gray-background-color has-background\"><code>terraform init<\/code><\/pre>\n\n\n\n<p>Una volta completato il file di terraform si procede con l&#8217;inizializzare il file<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"806\" height=\"618\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra1.jpg\" alt=\"\" class=\"wp-image-895\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra1.jpg 806w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra1-300x230.jpg 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra1-768x589.jpg 768w\" sizes=\"auto, (max-width: 806px) 100vw, 806px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pianificare Terraform con il comando:<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-cyan-bluish-gray-background-color has-background\"><code>terraform plan<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"630\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra2-1024x630.jpg\" alt=\"\" class=\"wp-image-896\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra2-1024x630.jpg 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra2-300x185.jpg 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra2-768x472.jpg 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra2.jpg 1273w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra2.1-1024x573.jpg\" alt=\"\" class=\"wp-image-897\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra2.1-1024x573.jpg 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra2.1-300x168.jpg 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra2.1-768x429.jpg 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra2.1.jpg 1377w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Applicare Terraform con il comando:<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-gray-background-color has-background\"><code>terraform apply<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra3-1024x535.jpg\" alt=\"\" class=\"wp-image-898\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra3-1024x535.jpg 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra3-300x157.jpg 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra3-768x401.jpg 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra3.jpg 1276w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"803\" height=\"807\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra3.2.jpg\" alt=\"\" class=\"wp-image-899\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra3.2.jpg 803w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra3.2-300x300.jpg 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra3.2-150x150.jpg 150w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra3.2-768x772.jpg 768w\" sizes=\"auto, (max-width: 803px) 100vw, 803px\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Esecuzione dell&#8217;infrastruttura<\/strong><\/h2>\n\n\n\n<p>Quando vediamo la scritta &#8220;Apply complete!&#8221;siamo pronti per andare a vedere se la nostra infrastruttura \u00e8 pronta, ci colleghiamo su aws sezione Ec2 della regione che abbiamo scelto in fase di creazione del file e controlliamo se c&#8217;\u00e8 un&#8217;istanza attiva.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"329\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/awsfinale-1024x329.jpg\" alt=\"\" class=\"wp-image-901\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/awsfinale-1024x329.jpg 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/awsfinale-300x96.jpg 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/awsfinale-768x246.jpg 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/awsfinale-1536x493.jpg 1536w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/awsfinale.jpg 1907w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Ci prendiamo indirizzo Ipv4 pubblico che ci fornisce aws e andiamo a testare la web app.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"523\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ippublic-1024x523.jpg\" alt=\"\" class=\"wp-image-902\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ippublic-1024x523.jpg 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ippublic-300x153.jpg 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ippublic-768x392.jpg 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ippublic-1536x785.jpg 1536w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/ippublic.jpg 1898w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Funziona!<\/strong> io ho messo come web app python della paperella che trovate nel precedente <a href=\"https:\/\/www.tooldech.com\/pipeline-con-github-actions-devops-tutorial\/\">articolo<\/a>, visto che \u00e8 una web app personalizzata ho divuto inserire a mano la porta 5000 per farlo funzionare, infine ho qliccato la Q della mia tastiera e sono apparse le paperelle.<\/p>\n\n\n\n<p>Siamo alla fine di questo articolo, quando l&#8217;infrastruttura non ci serve pi\u00f9 andiamo a spegnere l&#8217;infrastruttura per evitare costi indesiderati, visto che paghiamo perci\u00f2 che utilizziamo sul cloud.<\/p>\n\n\n\n<p>Torniamo sul terminale e digitiamo il comando<\/p>\n\n\n\n<pre class=\"wp-block-code has-gray-background-color has-background\"><code>terraform destroy<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"437\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra4-1024x437.jpg\" alt=\"\" class=\"wp-image-903\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra4-1024x437.jpg 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra4-300x128.jpg 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra4-768x328.jpg 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra4.jpg 1292w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"862\" height=\"570\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra4.1.jpg\" alt=\"\" class=\"wp-image-904\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra4.1.jpg 862w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra4.1-300x198.jpg 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/terra4.1-768x508.jpg 768w\" sizes=\"auto, (max-width: 862px) 100vw, 862px\" \/><\/figure>\n\n\n\n<p>Vi lascio il link github per accedere al file terraform, se vi pu\u00f2 essere utile.<\/p>\n\n\n\n<ul class=\"wp-block-social-links has-huge-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-a89b3969 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a href=\"https:\/\/github.com\/Matteo29-mar\/duck-app\/blob\/main\/terraform\/main.tf\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\"><strong>Differenza principale tra i comandi<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Comando<\/strong><\/th><th><strong>Cosa fa<\/strong><\/th><th><strong>Quando usarlo<\/strong><\/th><\/tr><\/thead><tbody><tr><td><code>terraform init<\/code><\/td><td>Inizializza il progetto e configura il backend e i provider.<\/td><td>All&#8217;inizio o dopo aver aggiunto provider\/moduli.<\/td><\/tr><tr><td><code>terraform plan<\/code><\/td><td>Simula le modifiche all&#8217;infrastruttura e mostra un piano d&#8217;azione.<\/td><td>Per verificare cosa verr\u00e0 fatto prima di <code>apply<\/code>.<\/td><\/tr><tr><td><code>terraform apply<\/code><\/td><td>Esegue le modifiche effettive sull&#8217;infrastruttura, aggiornando lo stato.<\/td><td>Per creare o aggiornare risorse.<\/td><\/tr><tr><td><code>terraform destroy<\/code><\/td><td>Elimina tutte le risorse gestite da Terraform.<\/td><td>Per rimuovere l&#8217;infrastruttura gestita.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">3. Conclusione<\/h2>\n\n\n\n<p>Siamo arrivati alla fine di questo articolo abbiamo visto come creare un&#8217;istanza EC2 con Docker utilizzando Terraform e automatizzare il download di un&#8217;immagine Docker. Questa configurazione \u00e8 un ottimo punto di partenza per progetti pi\u00f9 complessi che includono containerizzazione e orchestrazione.<\/p>\n\n\n\n<p>Spero che questo articolo vi sia piaciuto e che la nuova categoria possa interessarvi.<\/p>\n\n\n\n<p>Se hai domande o vuoi approfondire, lascia un commento!<\/p>\n\n\n\n<div class=\"wp-block-comments\"><\/div>\n\n\n\n<p>Seguici sui social!<\/p>\n\n\n\n<ul class=\"wp-block-social-links has-huge-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-a89b3969 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-pinterest  wp-block-social-link\"><a href=\"https:\/\/pin.it\/2Bk2aTtDW\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Pinterest<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-instagram  wp-block-social-link\"><a href=\"https:\/\/www.instagram.com\/tooldech\/\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Instagram<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a href=\"https:\/\/github.com\/Matteo29-mar\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-etsy  wp-block-social-link\"><a href=\"https:\/\/www.etsy.com\/shop\/tooldech\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Etsy<\/span><\/a><\/li><\/ul>","protected":false},"excerpt":{"rendered":"<p>Buongiorno a tutti cari lettori, iniziamo l&#8217;anno a bomba con nuovi articoli e una nuova categoria Cloud, questa categoria sar\u00e0 incentrata sul mondo del cloud computing, nell&#8217;articolo di oggi configureremo un&#8217;infrastruttura AWS utilizzando Terraform per ospitare una web app su un&#8217;istanza EC2. Questa guida include la configurazione della rete, il provisioning delle risorse e il [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":890,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,4],"tags":[],"class_list":["post-549","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-devops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creare un&#039;Infrastruttura AWS con Terraform per una Web App - tooldech<\/title>\n<meta name=\"description\" content=\"Creare un&#039;Infrastruttura AWS con Terraform per una Web App il nuovo tutorial di tooldech , approfondisci la nuova categoria di tooldech\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tooldech.com\/en\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creare un&#039;Infrastruttura AWS con Terraform per una Web App - tooldech\" \/>\n<meta property=\"og:description\" content=\"Creare un&#039;Infrastruttura AWS con Terraform per una Web App il nuovo tutorial di tooldech , approfondisci la nuova categoria di tooldech\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tooldech.com\/en\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/\" \/>\n<meta property=\"og:site_name\" content=\"tooldech\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-16T07:58:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-10T07:02:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/copertina.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"785\" \/>\n\t<meta property=\"og:image:height\" content=\"786\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"tooldech\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tooldech\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/\"},\"author\":{\"name\":\"tooldech\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/#\\\/schema\\\/person\\\/4a554644f96951080896bbb327febe3b\"},\"headline\":\"Creare un&#8217;Infrastruttura AWS con Terraform per una Web App\",\"datePublished\":\"2025-01-16T07:58:36+00:00\",\"dateModified\":\"2025-07-10T07:02:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/\"},\"wordCount\":1070,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/#\\\/schema\\\/person\\\/4a554644f96951080896bbb327febe3b\"},\"image\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/copertina.jpg\",\"articleSection\":[\"Cloud\",\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/\",\"url\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/\",\"name\":\"Creare un'Infrastruttura AWS con Terraform per una Web App - tooldech\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/copertina.jpg\",\"datePublished\":\"2025-01-16T07:58:36+00:00\",\"dateModified\":\"2025-07-10T07:02:54+00:00\",\"description\":\"Creare un'Infrastruttura AWS con Terraform per una Web App il nuovo tutorial di tooldech , approfondisci la nuova categoria di tooldech\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/#primaryimage\",\"url\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/copertina.jpg\",\"contentUrl\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/copertina.jpg\",\"width\":785,\"height\":786},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/tooldech.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creare un&#8217;Infrastruttura AWS con Terraform per una Web App\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/#website\",\"url\":\"https:\\\/\\\/tooldech.com\\\/\",\"name\":\"tooldech\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/#\\\/schema\\\/person\\\/4a554644f96951080896bbb327febe3b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tooldech.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/tooldech.com\\\/#\\\/schema\\\/person\\\/4a554644f96951080896bbb327febe3b\",\"name\":\"tooldech\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/logo.png\",\"url\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/logo.png\",\"width\":1024,\"height\":1024,\"caption\":\"tooldech\"},\"logo\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/logo.png\"},\"sameAs\":[\"https:\\\/\\\/tooldech.com\"],\"url\":\"https:\\\/\\\/tooldech.com\\\/en\\\/author\\\/tooldech\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creare un'Infrastruttura AWS con Terraform per una Web App - tooldech","description":"Creare un'Infrastruttura AWS con Terraform per una Web App il nuovo tutorial di tooldech , approfondisci la nuova categoria di tooldech","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tooldech.com\/en\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/","og_locale":"en_US","og_type":"article","og_title":"Creare un'Infrastruttura AWS con Terraform per una Web App - tooldech","og_description":"Creare un'Infrastruttura AWS con Terraform per una Web App il nuovo tutorial di tooldech , approfondisci la nuova categoria di tooldech","og_url":"https:\/\/tooldech.com\/en\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/","og_site_name":"tooldech","article_published_time":"2025-01-16T07:58:36+00:00","article_modified_time":"2025-07-10T07:02:54+00:00","og_image":[{"width":785,"height":786,"url":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/copertina.jpg","type":"image\/jpeg"}],"author":"tooldech","twitter_card":"summary_large_image","twitter_misc":{"Written by":"tooldech","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/#article","isPartOf":{"@id":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/"},"author":{"name":"tooldech","@id":"https:\/\/tooldech.com\/#\/schema\/person\/4a554644f96951080896bbb327febe3b"},"headline":"Creare un&#8217;Infrastruttura AWS con Terraform per una Web App","datePublished":"2025-01-16T07:58:36+00:00","dateModified":"2025-07-10T07:02:54+00:00","mainEntityOfPage":{"@id":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/"},"wordCount":1070,"commentCount":0,"publisher":{"@id":"https:\/\/tooldech.com\/#\/schema\/person\/4a554644f96951080896bbb327febe3b"},"image":{"@id":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/#primaryimage"},"thumbnailUrl":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/copertina.jpg","articleSection":["Cloud","DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/","url":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/","name":"Creare un'Infrastruttura AWS con Terraform per una Web App - tooldech","isPartOf":{"@id":"https:\/\/tooldech.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/#primaryimage"},"image":{"@id":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/#primaryimage"},"thumbnailUrl":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/copertina.jpg","datePublished":"2025-01-16T07:58:36+00:00","dateModified":"2025-07-10T07:02:54+00:00","description":"Creare un'Infrastruttura AWS con Terraform per una Web App il nuovo tutorial di tooldech , approfondisci la nuova categoria di tooldech","breadcrumb":{"@id":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/#primaryimage","url":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/copertina.jpg","contentUrl":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/copertina.jpg","width":785,"height":786},{"@type":"BreadcrumbList","@id":"https:\/\/tooldech.com\/creare-uninfrastruttura-aws-con-terraform-per-una-web-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tooldech.com\/"},{"@type":"ListItem","position":2,"name":"Creare un&#8217;Infrastruttura AWS con Terraform per una Web App"}]},{"@type":"WebSite","@id":"https:\/\/tooldech.com\/#website","url":"https:\/\/tooldech.com\/","name":"tooldech","description":"","publisher":{"@id":"https:\/\/tooldech.com\/#\/schema\/person\/4a554644f96951080896bbb327febe3b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tooldech.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/tooldech.com\/#\/schema\/person\/4a554644f96951080896bbb327febe3b","name":"tooldech","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo.png","url":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo.png","contentUrl":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo.png","width":1024,"height":1024,"caption":"tooldech"},"logo":{"@id":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo.png"},"sameAs":["https:\/\/tooldech.com"],"url":"https:\/\/tooldech.com\/en\/author\/tooldech\/"}]}},"jetpack_featured_media_url":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/01\/copertina.jpg","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":806,"url":"https:\/\/tooldech.com\/en\/guida-alla-cloud-migration-con-aws-mgn\/","url_meta":{"origin":549,"position":0},"title":"Guide to Cloud Migration with AWS MGN","author":"tooldech","date":"May 5, 2025","format":false,"excerpt":"Salve a tutti e benvenuti in un nuovo articolo di tooldech! Oggi parleremo di come effettuare una cloud migration. La migrazione di infrastrutture IT dal data center locale al cloud \u00e8 essenziale per le aziende. Esse cercano scalabilit\u00e0, resilienza e ottimizzazione dei costi. In questo articolo esploreremo come effettuare una\u2026","rel":"","context":"In &quot;Cloud&quot;","block_context":{"text":"Cloud","link":"https:\/\/tooldech.com\/en\/category\/cloud\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-26-2025-08_41_01-AM.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-26-2025-08_41_01-AM.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-26-2025-08_41_01-AM.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-26-2025-08_41_01-AM.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1314,"url":"https:\/\/tooldech.com\/en\/project-web-app-from-local-docker-to-production-enviroment-on-cloud\/","url_meta":{"origin":549,"position":1},"title":"Project web app from local docker to production enviroment on cloud.","author":"tooldech","date":"March 12, 2026","format":false,"excerpt":"Buongiorno a tutti e benvenuti in nuovo articolo di tooldech! Oggi vedremo come realizzare una migrazione di un progetto di una web app in locale e portarlo in produzione sul cloud di AWS. In questo tutorial verranno spiegati i passaggi e i procedimenti necessari per spostare una web app locale\u2026","rel":"","context":"In &quot;Applicativi Vari&quot;","block_context":{"text":"Applicativi Vari","link":"https:\/\/tooldech.com\/en\/category\/applicativi-vari\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1009,"url":"https:\/\/tooldech.com\/en\/deployare-su-aws-ecs-con-load-balancer-guida-passo-passo\/","url_meta":{"origin":549,"position":2},"title":"Deploying on AWS ECS with Load Balancer: Step-by-Step Guide","author":"tooldech","date":"June 29, 2025","format":false,"excerpt":"Buongiorno a tutti e benvenuti in un nuovo articolo di tooldech oggi parleremo di AWS ECS! Sei pronto a portare la tua applicazione Python online in modo scalabile e sicuro? In questo articolo ti guider\u00f2 passo dopo passo nel deployment di una web app Python su AWS ECS (Elastic Container\u2026","rel":"","context":"In &quot;Cloud&quot;","block_context":{"text":"Cloud","link":"https:\/\/tooldech.com\/en\/category\/cloud\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1137,"url":"https:\/\/tooldech.com\/en\/serverless-su-aws\/","url_meta":{"origin":549,"position":3},"title":"Serverless on AWS: A Practical Guide with Lambda, API Gateway, and DynamoDB","author":"tooldech","date":"August 21, 2025","format":false,"excerpt":"Buongiorno a tutti e bentornati in nuovo articolo di tooldech, oggi parleremo di Serverless. Cos'\u00e8 il Serverless su AWS Il modello Serverless su AWS permette di eseguire codice senza dover gestire server fisici o virtuali. Utilizzando servizi come AWS Lambda, API Gateway e DynamoDB, puoi costruire applicazioni scalabili e a\u2026","rel":"","context":"In &quot;Cloud&quot;","block_context":{"text":"Cloud","link":"https:\/\/tooldech.com\/en\/category\/cloud\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/08\/immevi.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/08\/immevi.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/08\/immevi.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/08\/immevi.webp?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":775,"url":"https:\/\/tooldech.com\/en\/creare-una-rete-vpc-scalabile-su-aws\/","url_meta":{"origin":549,"position":4},"title":"Creating a Scalable VPC Network on AWS","author":"tooldech","date":"March 20, 2025","format":false,"excerpt":"Introduzione Buongiorno e benvenuti in un nuovo articolo di toodech, andiamo a parlare di un'argomento molto interessante. Quando si lavora con ambienti AWS complessi, spesso \u00e8 necessario connettere pi\u00f9 Virtual Private Cloud (VPC). Questo permette la comunicazione tra servizi distribuiti su diverse reti. Due delle soluzioni principali offerte da AWS\u2026","rel":"","context":"In &quot;Cloud&quot;","block_context":{"text":"Cloud","link":"https:\/\/tooldech.com\/en\/category\/cloud\/"},"img":{"alt_text":"logoarticolo","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/03\/logo.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/03\/logo.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/03\/logo.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/03\/logo.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":244,"url":"https:\/\/tooldech.com\/en\/nextcloud\/","url_meta":{"origin":549,"position":5},"title":"NextCloud","author":"tooldech","date":"July 31, 2024","format":false,"excerpt":"Benvenuti in un nuovo tutorial di tooldech! Oggi esploreremo un argomento collegato a un nostro precedente articolo su CasaOS: come creare un cloud personale privato con Nextcloud. Cos'\u00e8 Nextcloud? Nextcloud \u00e8 una piattaforma open source di file hosting e collaborazione che consente agli utenti di creare il proprio server cloud\u2026","rel":"","context":"In &quot;Applicativi Vari&quot;","block_context":{"text":"Applicativi Vari","link":"https:\/\/tooldech.com\/en\/category\/applicativi-vari\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/07\/nextcloud.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/posts\/549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/comments?post=549"}],"version-history":[{"count":2,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/posts\/549\/revisions"}],"predecessor-version":[{"id":1058,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/posts\/549\/revisions\/1058"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/media\/890"}],"wp:attachment":[{"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/media?parent=549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/categories?post=549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/tags?post=549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}