# Appunti partitioner
## Timestamps utili dopo l'esame, per JUMP
<https://www.youtube.com/watch?v=SOTamWNgDKc>
- Budget: 1:02:30 (approfondire actions anche se lui non le guarda)
- Free tier 1:07:00
- 1:22:00 c'è un link per rimpolpare le presentazioni
## PARTITIONER EXAM
Avanzamento Simo: <https://youtu.be/SOTamWNgDKc?t=9755> 4:06:38
Avanzamento Giadi: <https://youtu.be/SOTamWNgDKc?t=24015> 6:35:39
### How Long will take it to pass
Codice : CLF-C01 -> CCP (Corso base entry-level AWS)

### Exame Guide
50 domande con punteggio, ne puoi sbagliare 15.
15 domande sono senza punti, ma non lo sai. Possono essere mega difficili o nuove, servono a loro.
Divisione per Argomenti:
- 13 Domande su: **Cloud Concept**
- 16/17 Domande su: **Security and Compliance**
- 21/22 Domande su **Technology**
- 10/11 domande su **Billing and Pricing**
Dettagli esame:
- per passare 70%. (700/1000)
- non esiste alcuna penalità per le risposte sbagliate.
- possono essere a risposta multipla (2 o + risposte sono corrette) o a scelta multipla (1 sola risposta è corretta)
- Valido per 3 anni, poi lo devi rifare.
La durata dell'esame è di **2 ore** quindi abbiamo un tempo di risposta pari a 1,5 minuti per domanda.
### Free Practice Exam
Il **cloud computing** è la pratica dell'utilizzo di una rete di Server Remoti hostati su internet con lo scopo di immagazzinare, gestire e processare dati.
### Evolution of Cloud Hosting
#### Dedicated Server
Un singolo Hardware dedicato ad una singola azienda che runna una singola applicazione / Sito. Più performante ma estremamente costoso.
#### VPS
Un singolo Hardware dedicato ad una singola azienda che runna più web-app / siti (Sub-Machines). Meno costoso e miglior utilizzo ed isolamento delle risorse.
#### Shared Hosting
Un singolo Hardware dedicato a più aziende che runna più web-app / siti. Poco isolamento dei dati, limitate funzioni ma prezzo migliore.
#### Cloud Hosting
Più Hardware che attuano come una singola macchina (sistema astratto) con l'utilizzo di Cloud Server. E' flessibile, scalabile, costo pari al consumo e altamente configurabile.
### Cloud Service Provider (CSP)
E' un'azienda che offre servizi di Cloud che ospitano altri servizi e che possono formare, unendosi, un'**architettura cloud**. Tali servizi devono essere, inoltre, accessibili tramite **Single Unified API** (AWS API) e devono fornire una fatturazione basata sull'**utilizzo orario** del servizio stesso. Deve inoltre avere un'infrastruttura come un servizio (IaaS) e un'automazione tramite infrastruttura come codice (IaC).
### Market Research Reports
Gartner mette AWS come leader di mercato, poi Azure e Google Cloud Platform. DO e Linoide troppo piccoli
### Cloud Services
I metatipi di servizi su cloud più comuni sono
- Compute (EC2 per AWS)
- Networking (VPC)
- Storage
- Databases
Chiaramente ce ne sono molti di più, quelli sono i più usati e comuni sulle CSP.
### Evolution of Computing
#### Types of Cloud Computing
- SaaS: Software as a Service -> prodotto che è runnato e gestito da un service provider. (Gmail, SalesForce or Office365)
- PaaS: Platform as a Service -> Focus sulla gestione e deploy delle app. (heroku).
- IaaS: Infrastructure as a Service -> Costruisce blocchi per Cloud IT. (AWS, Microsoft Azure)
### Cloud Computing Deployment Models
- Public Cloud (Cloud Native) -> il progetto è costruito e buildato tutto su un CPS.
- Private Clound (On Promise) -> Tutti i progetti sono sui datacenter dell'azienda.
- Hybrid -> Usa entrambe le soluzioni scritte sopra.
- Cross Cloud -> Vengono utilizzati vari Cloud Provider.
### Metered Billing
Le GCP si pagano a uso e paghi solo quello che usi. Ci devi stare attento se alcuni "default" costano un casino.
Se ti sbagli puoi farti un ticket e c'è caso che ti danno un ok la prima volta per non pagarlo.
### Budget
Creare budget costa tipo 0,10€/giorno (2 gratis).
Lo puoi mettere ricorrente. Puoi filtrare per regione o servizio.
I servizi che ti mandano qualcosa, tipo una mail, possono usare il servizio AWS SNS (Simple Notification Service) (te lo setta in automatico).
### Free Tier
Disponibile per i primi 12 mesi. Se vai su /free/ ci sono tutti i servizi gratis con le condizioni per averlo gratis.
Puoi attivare una mail di alert quando sfondi il free tier.
10 allarmi gratuiti e 1000 notifiche email gratuite ogni mese.
### CloudWatch
Puoi mettere un allarme per il budget anche tramite CloudWatch.
CloudWatch è un insieme di sotto servizi. Se vai su alarm, c'è una sezione sugli allarmi sul billing.
Anche questo servizio è a pagamento dopo qualche alert.
Mette un SNS anche questo servizio.
### MFA
Mettilo sul root
### Innovation Waves
Glossario inutile 1: E' un onda innovativa che si divide in 4 Fasi
- P rosperity
- R ecession
- D epression
- E mprovement
### Burning Platform
Glossario inutile 2: Una tecnologia che non viene più usata e che le aziende abbandonano velocemente perché temono di rimanere troppo indietro
### Digital Trasformation Checklist
AWS Digital Trasformation -> Public Sector page. Serve per i documenti fuffa sulla trasformazione cloud.
### Evolution of computing power
Potenza di computing. Le CPU general, la GPU e la quantum. Servono a cose diverse, quindi non si sostituiscono. Ce ne saranno altre in futuro.
### Amazon Braket
E' il servizio per il quantum computing di AWS. Non è troppo utile, ma esiste.
### Benefits of Cloud
- **Agilità**: Maggiore velocità ed agilità
- **Pay-as-you go pricing**
- **Economia di Scala**: Benefici dovuti dalla massiva economia di scala
- **Ricerca Globale**: Diventa globale in poco tempo
- **Sicurezza**
- **Affidabilità**
- **Alta disponibilità**
- **Scalabilità**
- **Elasticità**
#### I 6 vantaggi dell'uso del Cloud
- **Pay on Demand**: paghi solo quanto utilizzi con un costo a chiamata o a minuti, secondi o ore.
- **Sharing Costs**: è possibile condividere i costi con i propri clienti.
- **Scale up or down**: è possibile scalare l'utilizzo a seconda della richiesta.
- **Increase Speed and Agility**: è possibile lanciare le risorse con pochi click in pochi secondi.
- **Focus on your Costumers**
- **Go global in a few seconds**
https://docs.aws.amazon.com/it_it/whitepapers/latest/aws-overview/six-advantages-of-cloud-computing.html
### AWS Global Infrastructure
Regions: una zona geograficamente separata dall'altra in una location diversa
Ogni regione ha 3 availability zone
US-EAST-1 è la prima ad avere i nuovi servizi. Non tutti i servizi sono in tutte le regioni.
Ci sono servizi per regione e servizi globale. I globali sono quelli che cooperano su tutte le regioni
### Availability Zones
Datacenter vicini, in edifici differenti ma abbastanza vicini per avere poca latency (< 10ms) entro 100km.
High availability è un termine che indica che un servizio è disponibile su 3 datacenters, una sorta di certificazione.
Certi servizi ti permettono di settare una subnet che è legata alle availability zones.
Esempio di AZ: US-EAST-1a,US-EAST-1b
### Fault Tolerance
Usare più AZ permette di essere più fault tolerant, in quanto ogni AZ è isolata. Alcuni servizi li devi settare tu multi-az, altri lo sono di deafult e non devi fare nulla. Ogni AZ è isoltata dalle altre e mantiene unicamente un collegatmento tramite una rete privata: la **global Network**.
#### Fault Domain -> Availability Zones
Il Fault Domain è una sezione della rete che è vulnerabile a danni se sono presenti criticità al device o al sistema. Il suo scopo è quello di limitare i danni unicamente al dominio e NON all'esterno di esso, limitando i danni.
#### Fault Level -> AWS Region
Il Fault Level è l'insieme di Fault Domain.
### Global Network
AWS Global Network (scheletro di AWS) è un rete privata che mette in connessione le region, usando edge location (PoP)per entrare ed uscire dall'internet publico. Le edge location sono molte di più che i data center e se non devi uscire su internet è meglio stare dentro la global network in quanto è molto più veloce
### Point of Presence
POP è un datacenter o un insieme di hardware che si pone come intermediario tra le regioni AWS e lo user finale
Per AWS sono, quindi, **edge location** (datacenters che mantengono una copia di tutti i più popolari file che consegnano all'utente finale) e **regional edge caches** (Datacenters che mantengono cache maggiori di file meno popolari), hardware in giro per il mondo per cacheare file e dati e servirli più velocemente tra region
le usano
- Cloudfront
- Amazon S3 Transfer Acceleration: permette di uppare un file su un edge invece che direttamente su s3 in modo che sia tutto più veloce una volta caricato
- AWS Global Accelerator: permette di portare le richieste di un servizio
### Aws Direct Connect
EC2 è una connessione dedicata, privata e protetta per connettere i data center più velocemente che internet normale usando la global network
### Local Zones
sono datacenter vicino ad aree metropolitane altamente popolate che puoi usare se il tuo traffico è li, ce ne è una a Los Angeles per esempio. Sono opt-in (serve un ticket)
### Wavelenght Zones
Puoi collegare una subnet ad una Wavelenght Zones, è come se fosse una avaiability zone ma ci si connettono più velocemente quelli che usano un operatore specifico in quella zona in 5g (es: vodafone uk )
### Data Residency
Residency è il luogo dove le risorse delle organizzazioni risiedono. Data Sovereignty e la Compliance Boundaries sono le giudisdizioni che regolano quei dati.
Puoi usare:
- AWS Outpost -> Ti prendi una rack fisica di server e tuoi dati stanno li. Costa tanto.
- AWS Config -> puoi avere degli alert quando qualcuno provisiona fuori alla giurisdizione di riferimento
- IAM policies -> puoi mettere delle regole su tutta l'organizzazione sulla redidency
### AWS for Government
Ci sono region isolate solo per le entità governative americane
### AWS in China
Aws in china è su un pannello separato perché i cinesi non vogliono.
amazonaws.cn dei avere una p.iva cinese per usarlo. devi ri-registrarti.
Su aws global invece c'è Singapore ma è fuori da The Great Firewall, aws china è già dentro.
Ci sono 2 regioni.
### Sustainability
The Climate Pledge -> progetto per arrivare a net zero carbon entro 2040.
- 2025 tutta energia rinnovabile e maggiore efficienza cloud
- server più efficienti degli altri a livello energetico
- usano acqua non potabile per raffreddare i data center
https://aws.amazon.com/it/sustainability/
### AWS Ground Station
Ti fa controllare satelliti senza sviluppare antenne da terra. ok.
Per esempio se devi scaricare le immagini satellitari da un server e mettere su s3.
### Outpost
E' un servizio di AWS che fornisce una rack di server fisica (un frame design per mantenere ed organizzare equipaggaimento IT) per il tuo account.
Esistono 3 forme diverse:
* 42U
* 1U
* 2U
## Cloud architect
Solution Architect -> Qualcuno che organizza una progetto usando più sistemi via ricerca, documentazione e sperimentazione.
Un **cloud architect** si occupa solamente di architettare una soluzione utilizzando i servizi Cloud, ma deve tenere conto dei seguenti termini:
### Availability
Availability è l'abilità che assicura che un servizio rimanga disponibile. High Availability, significa no single point of faulure. Su AWS per esempio puoi usare ELB per trasferire il traffico su diverse macchine
### Scalability
High Scalability significa scalare le risorse in base al traffico ricevuto, alla memoria e alla capacity computativa.
Puoi fare vertical scaling (server più grosso) o orizontal scaling (più server uguali + ELB). Di solito è meglio la 2.
Auto Scaling Groups (ASG) è una funzionalità di AWS che permette di aumentare o diminuire i server basandosi sulle metriche.
### Elasticity
High Elasticity fare quello solo in maniera automatica, encrease o decrease.
### Fault tolerant
Avere un sistema pronto per switchare se qualcosa va storto. Il secondario switcha solo se qualcosa va male.
RDS Multi AZ lo fa.
### Durability
High Durability è quanto facilmente fai disaster recovery. Guardare CloudEndure Disaster Recovery.
## Business Continuity Plan
Un piano di continuità è quello che devi fare se succede un incidente. Devi capire quanto tempo puoi stare giù senza perdere troppi soldi
RPO: quanti dati puoi perdere, nel senso l'ultimo backup che hai e che recupererei se qualcosa va giù.
RTO: quanto tempo puoi stare giu, massimo, prima di causare problemi enormi all'azienda.
### Disaster Recovery Options
**Low**: Backup & Restore: backuppi i dati e quando salta qualcosa ricrei una nuova infranstruttura. Ci vogliono ore ma costa poco mantenerlo.
**Low-mid**: Pilot Light: copi tutto in un'altra regione ma tieni tutto spento. ci vogliono 10 minuti, costa ancora poco.
**Scalability**: Warm Standby: hai una copia dell'infrastruttura in un'altra regione, scalata al minimo. ci metti minuti ma costicchia
**Scalability**: Multi-site active: hai una copia scalata al massimo in un'altra regione. ci metti un secondo ma costa tutto x2
## Architecture Diagram
- Puoi scaricare le icone e metterle su XD, PS o quello che vuoi
- Puoi usare lucidchart
- Sono anche in powerpoint
## AWS API
ogni servizio ha un host diverso
autorization hai bisogno di un token
Sia la console, che la cli che l'SDK usano le api.
Le api sono su docs.aws.amazon.com
Di solito non si usano, ma si usa l'SDK.
## AWS Managment Console
L'interfaccia Web di AWS, la home della dashboard. Le interfaccie dei servizio sono diverse, ogni interfaccia è gestita da team diversi.
## AWS Tools for Powershell
C'è una implementazione di AWS per powershell che si può utilizzare su win. Si può usare anche dal pannello web tramite cloudshell.
## Amazon Resources Names (ARN)
Le risorse su AWS hanno un identificativo che è composto da:
- partition (AWS, AWS cina o AWS GOV US)
- servizio (ec2, s3,iam)
- regione (us-central, eu-central)
- account ID del creatore
- resource id
es:arn:partition:service:region:account-id:resource-id
## CLI
C'è anche una bash, si può usare anche tramite cloudshell tramite pannello oppure installandola sulla tua macchina. Usa python.
## AWS SDK
SDK ufficiale per integrare AWS in diversi linguaggi di programmazione, facendo le stesse cose che si fanno tramite interfaccia o cli.
## Access Keys
Le "Access Keys" si compongono di una **key e di un secret** e permettono di fare accessi programmatici alle risorse AWS quando si utilizzano le API AWS al di fuori della console.
Le chiavi:
* non devono mai essere condivise da più utenti (l'utente stesso le crea),
* non devono mai essere commitate all'interno di una codebase
* possono essere disattivate e riattivate
* possono essere attive contemporaneamente massimo due chiavi
* hanno gli stessi permessi alle risorse degli utenti che le hanno create
Le chiavi si trovano all'interno della cartella nascosta .aws/credentials se si utilizza la cli.
(saltare da 4.09 a 4.12 parla di come attivare e disattivare le chiavi)
## AWS Doc
AWS Documentation è una lunga collezione di documentazione tecnica su come utilizzare i servizi AWS.
Leggi [QUI](https://docs.aws.amazon.com/) la documentazione
(Dal minuto 4.12 al minuto 4.15 parla di come leggere la doc)
## AWS Shared Responsibility Model
Shared Responsibility Model è un framework cloud sicuro che definisce gli obblighi di sicurezza di un cliente verso il Cloud Service Provider (CSP), in questo caso AWS.

### Riassumento l'immagine sopra
**AWS** mette a disposizione:
* **lato HARDWARE** e Infrastruttura globale:
* Regions
* Availability Zones
* Edge Locations
* Physical Security
* **lato SOFTWARE**:
* Compute
* Storage
* Database
* Networking
Il **cliente** invece si prende la responsabilità per:
* le configurazioni di software o servizi di terzi parti
* la piattaforma di utilizzo
* le applicazioni installate
* IAM settate
* le configurazioni di infrastrutture Virtuali e sistemi
* sistemi operativi
* network
* firewall
* le configurazioni di sicurezza inerenti i dati
* Encryption Data Client-Side
* Encryption Server Side
* Protezione del traffico sulla rete
* Dati del cliente
In breve il cliente è responsabile della sicureazza all'interno del cloud e nella configurazione dei dati, mentre AWS è responsabile per la sicurezza al di fuori del cloud.

### Tipi di Responsabilità Cloud Computing

### Compute
* Infrastructure as a Service (Iaas)
* **Bare Metal** => EC2 Bare Metal Instance: Il cliente è responsabile della configurazione del sistema operativo e ne è supervisore, mentre AWS è responsabile della macchina fisica
* **Virtual Machine** => Elastic Cloud Compute (EC2): Il cliente è responsabile delle configurazioni del sistema operativo lato client e del runtime del container, mentre AWS è supervisore e si occupa della macchina fisica.
* **Containers** => AWS Elastic Container Service (ECS): il cliente è responsabile della configurazione, del deploy e dello storage dei containers, mentre AWS è responsabile del sistema operativo, ha il ruolo di supervisore, e del tempo di runtime dello stesso.
* Platform as a Service (PaaS)
* **Managed Platform** => AWS Elastic Beanstalk: Il cliente è responsabile del proprio codice, della configurazione dell'ambiente, delle strategie di deploy e delle configurazioni dei servizi collegati, mentre AWS è responsabile dei servers, del sistema operativo, della rete, dello storage e della sicurezza.
* Software as a Service (SaaS)
* **Content Collaboration** => Amazon WorkDocs: Il cliente è responsabile del contenuto del documento, della gestione dei files e della configurazione dei permessi di accesso e condivisione, mentre AWS è responsabile dei server, del sistema operativo, della rete, dello storage e della sicurezza.
* Functions as a Service (FaaS)
* **Functions** => AWS Lambda: Il cliente è responsabile del proprio codice, mentre AWS è responsabile del deployment, del runtime del containter, della rete, dello storage e della macchina fisica.
### Shared Responsibility Model Alternate

> Riassumendo: Il cliente è responsabile per i dati che risiedono su AWS e tutte le loro configurazioni di condivisione ed accesso, mentre il CSP è responsabile a grandi linee della infrastruttura.
## Computing Services
### Elastic Compute Cloud
**Elastic Compute Cloud** (EC2) è un servizio che permette di lanciare Macchine Virtuali (VM) che permettono di creare, copiare, ridimensionare e migrare i server. E' possibile runnare multiple VM all'interno di uno stesso server fisico permettendo la condivisione dei costi con altri clienti.
La macchina virutale prende il nome di **Instance**.
EC2 è un server che permette di avere configurazioni altamente modificabili dove è possibile scegliere **AMI** come:
* Il numero di CPU
* La quantità di RAM
* La quantità di Bandwidth
* Il sistema operativo
* La possibilità di attaccare degli Hard Disk per lo storage (EBS).
EC2 viene considerata la **spina dorsale** di AWS in quanto la maggior parte dei servizi offerti utilizzano EC2, come ad esempio s3, RDS, Lightsail, DynamoDb e Lamba.
#### Macchine Virtuali
Le Virtual Machine sono un'emulazione di un computer fisico e vengono utilizzate come software.
**Amazon Lightsail** è un servizio di server virtuali gestiti e viene considerato come una versione semplificata di EC2.
#### Containers
I containers sono un'emulazione di un sistema operativo che runnano multipli workloads su una singola instanza. I containers sono usati in architetutture di microservizi.
**Elastic Container Service** (ECS) è un servizio gestito tramite container che supporta i Docker Containers. Va di fatto a lanciare un EC2 con un container Docker installato.
**Elastic Container Registry** (ECR) è una repository per la gestione immagini di container. Per poter lanciare un container è necessario avere un'immagine.
**ECS Fargate** è un servizio di container serverless. Può essere considerato con un ECS pay-on-demand, quindi come un servizio scalabile.
**Elastic Kubernetes Service** (EKS) è un servizio **Kubernetes** (K8, un software open source creato da Google) totalmente gestito.
#### Serverless
Sono servizi totalmente gestiti da AWS e che prevedono un'alta scalabilità.
AWS Lambda è un servizio serverless che si basa sulle funzioni. Di fatto è possibile runnare codice senza provisionare o gestire un server.
(Dal minuto 4.39 al minuto 4:58 viene mostrato come creare una ECS e una lambda).
#### High Perfomarce Computing (HPC)
**HPC** è un insieme di centinai di migliaia di server con connessioni veloci tra loro con lo scopo di aumentare la capacità di calcolo.
AWS ParallelCluster è uno strumento di gestione open-source di cluster che permette di avere un deploy molto semplice e una gestione dell'HPC clusters.
##### Nitro System
**Nitro System **è una combinazione di hardware dedicati e hypervisor che permettono una maggiore sicurezza e maggioare velocità. Tutte le nuove istance EC2 utilizzano Nitro System.
* **Nitro Cards** => carte specifiche per VPC, EBS e Instance Storage
* **Nitro Security Chips** => integrate all'interno della scheda madre, si occupano di proteggere le risorse hardware.
* **Nitro Hypervisors** => hypervisor leggeri che si occupano di gestire le perfomances andando ad allocare la memoria e la CPU
##### Bare Metal Instance
**Bare Metal Instance** instanze che non prevedono l'utilizzo di un hypervisors in modo da runnare direttamente i workloads sulla macchina assicurando performances massime e controllo. M5 e R5 sono instanze EC2 che runnano come bare metal.
**Bottlerocket** è un sistema operativo open-source Linux-based di AWS che permette di runnare containers su macchine virtuali o su host bare metal.
### Edge and Hybrid Computing Services
**Edge Computing** è quando si pusha il computing workloads fuori dalla propria rete per arrivare ad un altro hardware come ad esempio il cellulare.
**Hybrid Computing** è quando si è in grado di runnare il workloads sia sul datacenter on-premise che su una VPC (Virtual Private Cloud).
**AWS Outposts** che è un insieme di server dove è possibile inserire il datacenter. Questo permette di usare le API di Aws e i servizi come ad esempio EC2 come datacenter.
**AWS WaveLength** permette di buildare e lanciare la propria applicazione in un datacenter di telecomunicazioni. Sono molto più veloci grazi alla rete 5G.
**VMWare Cloud** on AWS permette di gestire on-premise macchine virtuali usando VMWare come istanze EC2.
**AWS Local Zones** sono datacenters che si trovano fuori dalle regioni di AWS.
### Cost and Capacity Management
**Cost Management** corrisponde al come poter salvare denaro
**Capacity Management** corrisponde al come poter far incontrare la domanda di traffico ed uso aggiungendo o aumentando le prestazioni di server.
#### EC2 Spot Instances, Reserved Instanced and Savings Plan
E' possibile risparmiare in termini di computing, pagando totalmente o parzialmente, creando un contratto annuale o essendo flessibile su avalaibility o sull'interruzione del servizio di computing.
#### AWS Batch
AWS Batch pianifica, schedula ed esegue i batch di workloads computing attraverso il full range dei servizi compute, si può utilizzare instanze spot per risparmiare soldi.
#### AWS Compute Optimizer
AWS Compute Optimizer suggerisce come ridurre i costi e aumenta le performance usando Machine learning per analizzare i vecchi costi
#### EC2 Autoscaling Groups (ASGs)
Automaticamente aggiunge o rimuove EC2 Servers per incontrare la corrente domanda di traffico. Sarà possibile risparmiare denare in quanto si utilizzeranno solamente i server necessari.
#### Elastic Load Balancer (ELB)
Distribuisce traffico a instanze multiple, può reindirizzare quindi il traffico da instanze instabili a instanze salutare o può spostare traffico su "Availability Zones" differenti.
### Tipi di Servizi di Storage
#### Elastic Block Store (EBS) - Block
Viene utilizzato quando si ha la necessità di avere un hard drive attaccato a una virtual machine.

- I dati sono splittati in ogni split block.
- Si può direttamente accedere al sistema operativo.
- Supporta solamente una scrittura alla volta
#### AWS Elastic File Storage (EFS) - File
Viene utilizzato quando si ha la necessità di condividere un file con multipli user o quando le VM hanno bisogno di accedere allo stesso drive.

- I file sono immagazzinati sia con i dati che con i metadati
- E' possibile fare multiple connessioni con la condivisione della rete
- Supporta read multiple mentre i file possono essere solo fatti da una persona
#### Amazon Simple Storage Service (S3) - Object
Viene utilizzato quando si vuole uplodare file senza preoccuparsi sull'infrastruttura.

- Gli oggetti sono immagazzinati con dati, metadati e id univoci.
- Scala senza limiti di storage o limiti di file
- Supporto letture e scrittura illimitate
##### S3 Object
Gli oggetti contengono i dati come se fossero file. Nel dettaglio contengono:
- **key**: è la chiave che identifica l'oggetto ed è di fatto il nome dell'oggetto stesso
- **value**: è il valore espresso in sequenze di byte
- **version ID**: versione dell'oggetto caricato
- **metadata**: sono informazioni aggiuntive sull'immagine.
##### S3 Bucket
I bucket contengono gli oggetti, essi possono essere divisi in cartelle. Gli s3 Buckets devono avere un nome univoco.
##### S3 Storage Classes
Le classi di storage sono:
- S3 Standard (default): sono veloci ed hanno un grande percentuale di disponibilità
- S3 Intelligent Tiering: Usa ML per analizzare l'utilizzo degli oggetti e determinare la clacce più giusta dello storage.
- S3 Standard-IA (Infrequent Access): è veloce e risulta essere economico se si accede ai file meno di una volta al mese. La percentuale di disponibilità è però più bassa dello standard
- S3 One-Zone-IA: è veloce ma gli oggetti esistono solo nella zona di Avalaibility. Ha un'altra percentuale di disponibilità ed è più economia della standard ma i dati possono venire distrutti.
- S3 Glacier: Serve per tenere in memoria per lungo tempo gli oggetti, ma il get di questi può prendere molto tempo. è molto cheap.
- S3 Glacier Deep Archive: il servizio meno costoso. Il tempo per avere un oggetto è pari a 12 ore.
#### AWS Snow Family
Sono storage e device usati per muovere fisicamente data in un cloud esterno, usati quando muovere tali dati su internet o tramite connessioni private risulta essere troppo difficoltoso, costoso o lento.
- Snowcone è una versione moolto piccola di Snowball che può trasferire un massimo di 8 TB
- Snowball Edge and Snowball sono device di Storage di medie dimensioni (50-80 TB).
- Snowmobile is a container con un'alta capacità computazionale che trasporta fino a 100PB di dati per viaggio.
#### Storage Service
- **Simple Storage Service** (S3) è uno storage ad oggetti serverless dove è possibile caricare file molto grandi e un numero illimitato di file. Si paga a seconda di quanto viene storato al suo interno.
- **S3 Glacier** è uno servizio storage cold, il cui design viene considerato come una soluzione a basso costo per i backup a lungo termine. Viene considerato duratura e a lunga durata
- **Elastic Block Store (EBS)** è un servizio di storage a blocchi persistente, corrisponde in pratica ad un Hard Drive virtuale nel cloud al quale si può attaccare un'instanza EC2.
- **Elastic File Storage (EFS)** è un servizio Cloud-Native per la gestione dei file. E' utilizzato per condividere file tra multipli server.
- **Storage Gateway** è uno storage cloud ibrido che estende lo storage on-premise al cloud.
- **File Gateway** estende il local storage verso AWS S3
- **Volume Gateway** è in grado di cachare i file locali verso s3 di modo da avere continui backup sul cloud
- **Tape Gateway** stora i file all'interno di tape virtuali
- **AWS Backup** è un servizio di backup managed che rende facile centralizzare ed automatizzare i backup di data su multipli servizi.
- **CloudEndure Disaster Recovery** crea continue repliche delle tue macchine in uno staging low cost all'interno della Region preferita permettendo veloci recovery in caso di down di data center.
- **Amazon SFX** è un file system ricco di feature e altamente performante.
## Database
Un **Database** è uno store di dati strutturati e semi strutturati che richiede di utilizzare un linguaggio formale e delle tecniche di modellazione.
### Tipologie di Database
- **Database Relazionali** => Dati strutturati che sono rappresentati come dati tabellari (tabelle, righe e colonne). Può essere orientato sia sulle colonne che sulle righe.
- **Database non Relazionali** => Dati semi strutturati che possono o meno essere rappresentati in modalità tabellare.
### Funzionalità
I Database possiedono un sacco di funzionalità:
- linguaggi specializzati per le query
- strategie di modello per ottimizzare i dati per casi differenti
- trasformazione dei dati in strutture o report
### Data Warehouse

Il Data Warehouse è un database relazionale per workloads analitici che è generalmente orientato sulle colonne. Viene utilizzato solitamente dalle grande aziende che necessitano di Terabytes di dati e di report analitici sugli stessi.
Caratteristiche Principali:
- Solitamente i dati warehouse utilizzano l'**aggregazione**, cioè la possibilità di raggruppare i dati per trovare un totale o una media.
- sono ottimizzati sulle colonne in quanto hanno bisogno di aggregare i dati velocemente
- sono solitamente disegnati per essere HOT (query veloci anche con grandi quantità di dati)
I Data Warehouse non hanno accessi frequenti in quanto servono per generare report su business e utenti.
### Key / Value Store
Un database **key / value** è un tipo di database non relazionale che usa il metodo semplice "key/value" per imagazzinare i dati.
Questa tipologia di database sono semplici e veloci e permettono le seguenti funzionalità:
- Relazioni
- Indici
- Aggregazione


### Document Database
Un Document Database è un database NOSQL che immagazzina documenti (XML e JSON) come prima struttura di dati. Questa tipologia di Database è una sottoclasse degli Store Key-Value.
### Database NoSQL su AWS
- DynamoDB è un database noSQL key/value e di tipo document. E' disegnato per scalare bilioni di record garantendo consistenza dei dati al secondo.
- DocumentDB è un document database NoSQL che è compatibile con MongoDB
- Amazon Keyspaces è un database totalmente gestito da Apache Cassandra, che è un Database NoSQL key/value simile a Dynamo DB ma che possiede maggiori funzionalità.
### Database Relazionali su AWS
- RDS (Relational Database Service) è un database relazionale che supporta multiple Engines di SQL. E' il database più utilizzato e supporta tutti i seguenti engine:
- MySQL
- MariaDB
- Postgres (PSQL)
- Oracle
- Microsoft SQL Server
- Aurora
- Aurora è un database totalmente gestito di MySQL e PSQL.
- Aurora Serverless è un versione di Aurora Serverless
- RDS su VMware permete di deployare RDS supportando Engine all'interno di un data center on-premise.
### Altri Database su AWS
- RedShift è un data-warehouse con una dimensione in petabyte.
- ElastiCache è un database gestito che mantiene in memoria e attua cache sui maggiori database di Redis e Memcached.
- Neptune è un database gestito di grafi. I dati sono rappresentati da nodi interconessi
- Amazon TimeStreams è un database totalmente gestito di serie di dati
- Amazon Quantum Ledger Database è un database totalmente gestito che offre log di transazioni crittografati, trasparenti e immutabili.
- Database Migration Service (DMS) è un servizio di migrazione per i database.
## Cloud Networking Service

- **VPC** è una sezione isolata del cloud di AWS dove è possibile lanciare le risorse AWS
- **Route Tables** determinano dove è diretto il traffico rete dalle sottoreti
- **Internet Gateway** permette l'accesso a internet
- **Region** rappresenta la locazione geografica della rete
- **Availability Zone** (AZ) il datacenter dove si trovano le risorse AWS
- **Subnets** sono partizioni logiche di una rete IP in multipli e più piccoli segmenti
- **NACLs** è di fatto un firewall per le Subnets
## Enterprise/Hybrid Networking Service

- **AWS Virtual Private Network** (VPN) una connessione sicura tra on-premise, remote offices, mobile employees.
- **DirectConnect** connessioni dedicate da dati on-premise verso AWS.
- **Private Links** mantiene il traffico all'interno della rete AWS e non tramite internet per mantenere il traffico sicuro.
## VPC & Subnets
Virtual Private Cloud (VPC) è un sezione isolata della rete AWS dove puoi lanciare le tue risorse AWS. Puoi scegliere un range di IP:
10000/16 = 65536
Subnets (Sottoreti) sono una partizione logica di una rete di IP in multipli segmenti della rete.
Possono essere:
- pubbliche = raggiungibili da internet
- private = NON raggiungibili da Internet