PRD-002 - Amazon Web Services

62
Community - Cloud AWS su Google+ Cloud AWS Amazon Web Services cloud-aws.com Panoramica sui servizi Hangout 02 del 23.12.2013 Davide Riboldi Massimo Della Rovere In questo hangout vedremo una panoramica generale di tutti i servizi presenti in amazon web services. CLOUD AWS #cloudaws

Transcript of PRD-002 - Amazon Web Services

Community - Cloud AWS su Google+

Cloud AWS

Amazon Web Services

cloud-aws.com

Panoramica sui servizi

Hangout 02 del 23.12.2013

● Davide Riboldi● Massimo Della Rovere

In questo hangout vedremo una panoramica generale di tutti i servizi presenti in amazon web services.

CLOUD AWS

#cloudaws

Amazon Web Services - Servizi disponibili

Cloud AWS

● In questa presentazione faremo una piccola panoramica sui 26 servizi presenti su Amazon Web Services, suddivisi in sei gruppi principali.

Compute &

Networking

Storage &

CDN

Sviluppo&

Gestione

DatabaseSQL/NoSQL

● Per ogni servizio AWS faremo un hangout dedicato, escludendo il servizio EC2 che necessità sicuramente di più incontri per essere affrontato in maniera dettagliata.Application

ServicesAnalytics

Amazon Web Services - Servizi disponibili

Cloud AWS

EC2 S3 DynamoDB CloudFormation SES

SNS

SWF

SQS

CloudSearch

Elastic Transcoder

CloudWatch

Elastic Beanstalk

IAM

ElastiCache

RDS

Redshift

Cloudfront

Glacier

Storage Gateway

Route 53

VPC

Direct Connect

MapReduce

Data Pipeline

OpsWorks

Compute & Networking Storage & CDN Database Sviluppo & Gestione Applicazioni

Analytics

CloudTrail

Amazon Web Services - Compute & Networking

Cloud AWS

Servizio Pagina ufficiale Guida

EC2 http://aws.amazon.com/ec2/

Route 53 http://aws.amazon.com/route53/ http://goo.gl/6LU1hE

VPC http://aws.amazon.com/vpc/ http://goo.gl/3K89g1

Direct Connect http://aws.amazon.com/directconnect/ http://goo.gl/uFJShc

Amazon Web Services - EC2

Cloud AWS

● Un servizio web che fornisce capacità di elaborazione dati. Amazon EC2 fornisce tramite la virtualizzazione la possibilità di scegliere tra diversi sistemi operativi.

● Il servizio EC2 può essere gestito tramite una console web o tramite la gestione delle API. Si possono eseguire operazioni di avvio, termine e chiusura.

● Amazon EC2 mette a disposizione una serie di servizi avanzati per la nostra istanza, come ad esempio il bilanciamento del traffico, il disaster recovery, etc, ect.

Amazon Web Services - EC2 (esempio)

Cloud AWS

Istanze

micro 0.020 $

small 0.065 $

medium 0.130 $

large 0.260 $

altre 0.520 $

LOAD BALANCER

ELASTIC IP

ELASTIC BLOCK STORE

FIREWALL

SPOT/RESERVED

aws.amazon.com/ec2/pricing/

Amazon Web Services - Route 53

Cloud AWS

● Un servizio DNS ad alta disponibilità e scalabilità progettato per integrarsi con i servizi AWS come ad esempio EC2, S3, CloudFront etc.

● Con questo servizio potete gestire un numero illimitato di domini ed usare anche delle feature avanzate di load balancing come Weighted Resource Record Sets.

● Essendo un servizio completo di DNS è possibile utilizzare Route 53 per la risoluzione DNS di indirizzamenti e servizi esterni agli AWS.

Amazon Web Services - Route 53 (esempio)

Cloud AWS

Route53

Request

DNSResolver

EdgeLocation

LoadBalancer

Amazon Web Services - VPC

Cloud AWS

● Amazon VPC (Virtual Private Cloud) mette a disposizione una sezione isolata all’interno di AWS dove è possibile lanciare risorse AWS in una rete virtuale privata.

● Pieno controllo della rete virtuale. E’ possibile scegliere il proprio range di indirizzamento, le sottoreti, la configurazione delle tabelle di routing e i gateway.

● E’ possibile mettere in comunicazione la rete VPC con la propria rete aziendale attraverso una VPN utilizzando gli standard ipsec. Come avviene dall’esterno dell’azienda.

Amazon Web Services - VPC (esempio)

Cloud AWS

EC2 InstancesVPN Gateway

VPN ConnectionAzienda

Amazon Web Services - Direct Connect

Cloud AWS

● Per le aziende che necessitano di un collegamento sicuro è possibile tramite questo servizio creare una linea diretta tra l’azienda e il data center di Amazon.

● Uno dei punti deboli è il collegamento, infatti i servizi AWS vengono apprezzati sulle risorse pubbliche mentre sono più problematici in quelle private con VPN.

● Sono messe a disposizione diverse tipologie di collegamento con differenti velocità, i costi dipendono dalla regione geografica e dalle caratteristiche.

Amazon Web Services - Direct Connect (esempio)

Cloud AWS

AziendaDirect Connect

Sicurezza

Performance Scalabilità

Flessibilità

Amazon Web Services - Storage & CDN

Cloud AWS

Servizio Pagina ufficiale Guida

S3 http://aws.amazon.com/s3/ http://goo.gl/P8MYLN

Cloudfront http://aws.amazon.com/cloudfront/ http://goo.gl/hmAATg

Glacier http://aws.amazon.com/glacier/ http://goo.gl/1PRlTZ

Storage Gateway http://aws.amazon.com/storagegateway/ http://goo.gl/RajNjS

Amazon Web Services - S3

Cloud AWS

● S3 è un servizio di “storage online” dove è possibile memorizzare e recuperare grandi quantità di dati, in qualsiasi momento e da qualsiasi punto del web.

● Questo servizio può essere utilizzato anche come backup, sia per servizi AWS come ad esempio EC2, ma anche per server aziendali e postazioni personali.

● S3 mette a dispozione anche funzionalità avanzate come pubblicazione di siti statici, gestione delle revisioni, utility a linea di comando e autorizzazioni.

paginaweb

CSSimage

ect

Amazon Web Services - S3 (esempio)

Cloud AWSCloud AWS

S3 S3

postazione risorse statiche

S3

web statico

www.dominio.com

Amazon Web Services - Cloudfront

Cloud AWS

● CloudFront è un servizio web per la distribuzione di contenuti statici o in streaming (nel caso di file video) ad alta velocità e con bassa latenza.

● Per la configurazione basta associare la risorsa che abbiamo su S3 a CloudFront e automaticamente questa sarà replicata nei edge point sparsi nel mondo.

● La replica è l’aggiornamento delle risorse statiche che vengono modificate viene gestito automaticamente da Amazon senza dover eseguire operazioni aggiuntive.

Amazon Web Services - Cloudfront (esempio)

Cloud AWS

InternetRoute

53

refresh

esempio.com/img.jpgbucket

S3

write

Amazon Web Services - Glacier

Cloud AWS

● Glacier è un servizio di storage online a basso costo sempre basato su S3 e offre spazio di storage sicuro e durevole per l'archiviazione dati di backup.

● Glacier è ottimizzato per dati che vengono letti raramente e per il quale i tempi di recupero più elevati non costituiscono nessun problema.

● Il caricamento, il download e la cancellazione richiedono programmazione. Amazon Glacier è supportato da AWS SDK Java, .NET, PHP e Python.

ManagementConsole AWS

Amazon Web Services - Glacier (esempio)

Cloud AWS

Upload archivio di backup

Download archivio di backupda 3.5 a 4.5 ore dopo la richiesta

21

3

Richiesta Esecuzione Download

Creazione

Sicurezza

Notifiche

Amazon Web Services - Storage Gateway

Cloud AWS

● AWS Storage gateway è un servizio di connessione tra il proprio datacenter e il cloud di Amazon che permette la sincronizzazione automatica delle unità disco.

● Se si dovesse rompere qualche disco locale, possiamo ripristinarlo velocemente da Amazon S3 e riavviare il sistema al suo funzionamento normale.

● Se invece dovessimo avere un guasto generale che non ci permette una ripartenza immedita, possiamo avviare delle istanze EC2 e ripristinare le snapshot.

Amazon Web Services - Storage Gateway (esempio)

Cloud AWS

Storagegateway

VM

SSL

Datacenter

AWS StorageGateway

S3

EBS + EC2

Amazon Web Services - Database

Cloud AWS

Servizio Pagina ufficiale Guida

DynamoDB http://aws.amazon.com/dynamodb/ http://goo.gl/rooWrP

RDS http://aws.amazon.com/rds/ http://goo.gl/azUuwh

ElastiCache http://aws.amazon.com/elasticache/ http://goo.gl/SNcYyC

Redshift http://aws.amazon.com/redshift/

Amazon Web Services - DynamoDB

Cloud AWS

● Gestione completa di un database NoSQL in cloud. Un binomio eccezionale per la scalabilità e l’eliminazione di alcuni limiti presenti nei database relazionali.

● Questo servizio nasce dopo 15 anni di esperienza con SimpleDB e Dynamo usati dal sito amazon.com, i quali avevano dei limiti sulla dimensione del dataset.

● Il servizio di DynamoDB non avrà limiti di dimensione legati al dataset. Il servizio ci svincola anche dalle problematiche di backup e recovery.

Amazon Web Services - DynamoDB (esempio)

Cloud AWS

Amazon Web Services - RDS

Cloud AWS

● Relational Database Service: Un servizio web per la gestione di un database relazionale direttamente nel cloud da integrare con gli altri servizi AWS.

● Semplificazione delle attività di backup, scalabilità e patching. Al momento i database SQL disponibili sono (MySQL, Postgres, Oracle e Microsoft SQL Server).

● Con questa tecnica non saremo costretti ad installare un software di database sulle nostre istanze virtuali, liberandole anche dal carico di lavoro richiesto.

Amazon Web Services - RDS (esempio)

Cloud AWS

EC2

EC2

EC2

EC2

Internet

ZO

NA

A

ZO

NA

B

LoadBalancer

Richiesta della pagina web

Amazon Web Services - ElastiCache

Cloud AWS

● Gestione semplificata di un cluster di caching RAM. Questo servizio supporta due motori di cache open-source: Memcached, Redis.

● ElasticCache migliora le prestazioni delle applicazioni, recuperano i dati dalla cache gestita in memoria invece di basarsi sempre sui database residenti sul disco.

● Su AWS questa gestione diventa molto semplice e incredibilmente scalabile. Si possono generare con pochi click server di cache con oltre 200G di RAM.

Amazon Web Services - ElastiCache (esempio)

Cloud AWS

EC2

EC2

Internet

Richiesta della pagina web

Amazon Web Services - Redshift

Cloud AWS

● Con questo servizio possiamo crearci in pochissimi minuti un sistema di data warehouse ed eseguire tutte le query SQL di database che necessitiamo.

● Con Redshift si possono abbattere tutti i costi iniziali di un sistema data warehouse ed evitare tutte le complessità legate a questa tipologia di soluzione.

● Utilizzando Redshift possiamo pensare solo alla gestione dei dati e non preoccuparci della complessità legata alla struttura hardware necessaria.

Amazon Web Services - Redshift (esempio)

Cloud AWS

Amazon Web Services - Sviluppo & Gestione

Cloud AWS

Servizio Pagina ufficiale Guida

CloudFormation http://aws.amazon.com/cloudformation/ http://goo.gl/argDxu

CloudWatch http://aws.amazon.com/cloudwatch/ http://goo.gl/GazPgS

Elastic Beanstalk http://aws.amazon.com/elasticbeanstalk/ http://goo.gl/WTGsev

IAM http://aws.amazon.com/iam/http://goo.gl/W3P2NK

OpsWorks http://aws.amazon.com/opsworks/

CloudTrail http://aws.amazon.com/cloudtrail/ http://goo.gl/7zEG0T

Amazon Web Services - CloudFormation

Cloud AWS

● Con il servizio CloudFormation è possibile creare dei template per la creazione di configurazioni predefinite che possono essere avviate senza passaggi manuali.

● Potremmo preparare una template che configuri la partenza di una istanza con uno specifico OS, elenco di software da installare e avvio dei servizi richiesti.

● Sul sito ufficiale si trovano anche template già pronti per le configurazioni più comuni, ad esempio sono presenti template per WordPress, Joomla e Drupal.

Amazon Web Services - CloudFormation (esempio)

Cloud AWS

EC2 EC2

EC2 EC2

RDS RDSTem

plate

CloudFormation

Amazon Web Services - CloudWatch

Cloud AWS

● Uno degli aspetti fondamentali da tenere sotto controllo dopo aver sviluppato un’applicazione è quella di controllare le performance tramite un monitoring.

● Amazon CloudWatch è la soluzione di monitoring e allarmistica di AWS. L’utilizzo di Simple Notification Service (SNS) permette l’invio degli allarmi.

● Le metriche presenti in CloudWatch posso anche essere usate per le funzioni di auto scaling o essere considerate tramite degli script personalizzati.

Amazon Web Services - CloudWatch

Cloud AWS

RISORSE AWS

CUSTOM DATAMETRICHE Statistiche

Allarmi

Cloudwatch

Amazon Web Services - Elastic Beanstalk

Cloud AWS

● Il servizio EC2 mette a disposizione solo potenza computazionale, la quale una volta avviata e configurata può far girare qualsiasi applicazione.

● Per molti questo si traduce in un’inconveniente, perchè bisogna farsi carico di tutte le problematiche legate alla configurazione e all’avvio dell’istanza virtuale.

● Elastic Beanstalk permette di caricare l’applicazione senza preoccuparsi di altro. I linguaggi supportati sono .NET, Java, PHP, Node.js, Python e Ruby.

Amazon Web Services - Elastic Beanstalk

Cloud AWS

EC2 Instance (1)

application

tomcat

apache

amazon linux

EC2 Instance (n)

application

tomcat

apache

amazon linux

LOAD BALANCER

AUTO SCALING

VERSIONI

EDITOR

Amazon Web Services - IAM

Cloud AWS

● Identity and Access Management: Tramite questo servizio è possibile gestire in maniera sicura l’accesso ai servizi e alle risorse AWS da parte dei propri utenti.

● Usando IAM è possibile creare e gestire utenti e gruppi in AWS e utilizzare le autorizzazioni per consentire e/o negare gli accessi tramite ruoli e permessi.

● Il servizio IAM permette anche l’integrazione con gli utenti esistenti nella propria rete aziendale, inoltre mette a disposizione una serie di API.

Amazon Web Services - IAM

Cloud AWS

S3 EC2 IAM

ADMIN

Amazon Web Services - OpsWorks

Cloud AWS

● OpsWorks è un servizio di gestione delle applicazioni creato per agevolare chi utilizza un modello di sviluppo DevOps, ulteriori info http://it.wikipedia.org/wiki/Devops

● OpsWorks può scalare in maniera automatica l'applicazione e mantenere in salute l'infrastruttura sostituendo automaticamente le istanze che si bloccano.

● OpsWorks a differenza di Beanstalk offre maggiore flessibilità e controllo, consentendo di personalizzare i tipi di server e servizi che verranno impiegati.

Amazon Web Services - OpsWorks

Cloud AWS

A stack is a set of Amazon EC2 instances. AWS resources, and configurations that servers a single purpose. For example, one stack might be used for your staging envronment and another for production.

A layer is a blueprint for setting up and configuring a set of instances and related resources such as volumes and Elastic IPs. OpsWorks provides a set o bult-in layers and makes it easy to create custom layers.

Simply tell OpsWorks where to find yourcode and define any additional configuration tasks. OpsWorks take care of deploying your app the way you want.

Scale your stack based on time or load. Clone your production stack to a different region. Setup user permission and access.

Amazon Web Services - CloudTrail

Cloud AWS

● AWS CloudTrail è un servizio web che registra tutte le chiamate API degli AWS generate da qualsiasi sorgente come console o applicazioni e scrive dei file di log.

● Vengono registrate la tipologia delle chiamante, l'ora delle chiamate, l'indirizzo IP di origine, i parametri di richiesta e gli elementi di risposta restituiti dal servizio AWS.

● Lo storico delle chiamata AWS API prodotto da CloudTrail consente un'analisi completa riguardo la sicurezza e di tracciare il cambiamento delle risorse AWS.

Amazon Web Services - CloudTrail

Cloud AWS

AWS Management Console

AWS SDK Applications

AWS CLI

AWSCloudTrail

S3Bucket

Log Analysis Apps

IAM

EC2

RDS EBS

VPC

RedShift

Amazon Web Services - Application Services

Cloud AWS

Servizio Pagina ufficiale Guida

SES http://aws.amazon.com/ses/ http://goo.gl/BeCd42

SNS http://aws.amazon.com/sns/ http://goo.gl/mVVTKr

SQS http://aws.amazon.com/sqs/ http://goo.gl/mdn8T6

SWF http://aws.amazon.com/swf/

Elastic Transcoder http://aws.amazon.com/elastictranscoder/ http://goo.gl/QDZWwQ

CloudSearch http://aws.amazon.com/cloudsearch/ http://goo.gl/WtfLLY

Amazon Web Services - SES

Cloud AWS

● Simple Email Service: Questo servizio permette l’invio di email direttamente tramite l’infrastruttura AWS, senza la necessità di server o postazioni dedicate.

● Questo è sicuramente un servizio dedicato alle aziende che devono fare azioni di Marketing tramite posta elettronica o devono gestire grandi mailing list.

● Per chi utilizza regolamente il servizio EC2 può usufruire di 2000 email gratuite al giorno. Utile per gestire tutti gli avvisi a livello sistemistico.

Amazon Web Services - SES

Cloud AWS

Amazon SES Console

SMTP Interface

Amazon SES API

Amazon SES

Amazon Web Services - SNS

Cloud AWS

● Simple Notification Service: Questo servizio è un componente molto importante di AWS e permette la notifica dei messaggi tramite diversi supporti.

● E’ stato aggiunto il supporto SMS (per ora solo su numeri di telefono USA) mentre sono attivi da tempo email, code dati e messaggistica HTTP/HTTPS.

● La notifica è molto utile quando si strutturano sistemi in cluster, infatti è possibile ricevere informazioni sullo stato di altri componenti e reagire di conseguenza.

Amazon Web Services - SNS

EMAILEMAIL/JSON

HTTPS HTTPAMAZON

SQSSMS

WEB SERVERS SQSQUEQUE

APPLICATIONS CLOUDWATCH

Cloud AWS

Amazon Web Services - SQS

Cloud AWS

● Simple Queue Service: Uno dei primissimi servizi rilasciati da Amazon che permette tramite delle code messaggi presenti su uno o più server la distribuzione delle operazioni e quindi del carico di lavoro.

● Potremmo avere un server che analizza una pagina web ed inserisce in una coda i riferimenti a tutte le immagini presenti in questa pagina, la coda viene analizzate da una serie di altri server che possono dividersi il lavoro e marcare il messaggio come completato.

Amazon Web Services - SQS

Cloud AWS

WEBSERVER

Response Queue

Request Queue

PHOTO

PHOTO

PHOTO

PHOTO

PHOTOPROCESSING

SERVER

EC

2 In

stan

ces

Amazon S3

Amazon Web Services - SWF

Cloud AWS

● Simple Workflow Service: Tramite questo servizio è possibile creare un controllore di flusso per coordinare l’esecuzione di vari task secondo una logica predefinita.

● Questa particolarità permette il risparmio sulla scrittura di codice complesso che dovrebbe tenere sotto controllo tutte le fasi di elaborazione di un workflow che però è gestito da diverse macchine.

● Il servizio di SWF si prende carico di questa complessità e deciderà automaticamente i task da elaborare in base alle singole risposte di ogni singola unità di task.

Amazon Web Services - SWF

Cloud AWS

ORDINE

PREPARAZIONE MERCE

CONFERMA PAGAMENTO

CONSEGNA MERCE

CARTA DI CREDITO

Amazon Web Services - Elastic Transcoder

Cloud AWS

● Amazon Elastic Transcoder è un servizio di transcodifica o conversione di file multimediali audio e video elaborato direttamente in ambiente cloud.

● Grazie all'utilizzo di questo servizio è possibile sviluppare applicazioni web per poter eseguire in automatico la conversione di file multimediale in diversi formati.

● Il servizio permette di convertire i file multimediali dal loro formato originale in versioni che possono essere agevolmente visualizzati su smartphone, pc o tablets.

Amazon Web Services - Elastic Transcoder

Cloud AWS

Amazon Web Services - CloudSearch

Cloud AWS

● Questo servizio permette agli utenti di ricercare contenuti all’interno di applicazioni o siti web in modo rapido ed efficace e svincolato dai motori di ricerca.

● La tecnologia CloudSearch è un servizio molto affidabile in quanto è la stessa utilizzata da amazon.com per le ricerche legate ai suoi prodotti.

● Utilizzando questo servizio, gli sviluppatori potranno creare un dominio di ricerca e memorizzare tutte le informazioni in un database personale.

Amazon Web Services - CloudSearch

Cloud AWS

Amazon Web Services - Analytics

Cloud AWS

Servizio Pagina ufficiale Guida

Elastic MapReduce http://aws.amazon.com/elasticmapreduce/ http://goo.gl/u3yI1R

Data Pipeline http://aws.amazon.com/datapipeline/ http://goo.gl/qEGmKd

Amazon Web Services - Elastic MapReduce

Cloud AWS

● Amazon Elastic MapReduce è un servizio web che consente alle aziende, ai ricercatori, agli analisti di dati e sviluppatori di elaborare in modo semplice enormi quantità di dati.

● Amazon EMR utilizza Hadoop, un framework open source che permette di distribuire e processare i dati attraverso un cluster ridimensionabile di istanze EC2.

● Amazon EMR trova il suo impiego in una grande varietà di applicazioni tra cui: l'analisi dei log, l'indicizzazione web, il data warehousing, machine learning, l'analisi finanziaria, la simulazione scientifica e bioinformatica.

Amazon Web Services - Elastic MapReduce

Cloud AWS

Amazon S3

Input Data

Output Results

Amazon EMR job flow

Amazon CloudWatch

Amazon EC2 Instances

Amazon Web Services - Data Pipeline

Cloud AWS

● AWS Data Pipeline è un servizio web che consente di elaborare e movimentare dati tra i diversi servizi AWS e da fonti di dati on-premise a intervalli specifici.

● Con AWS Data Pipeline è possibile accedere ai propri dati, trasformarli, elaborarli e trasferire poi il risultato ai vari servizi: S3, RDS, DynamoDB o MapReduce (EMR).

● Con AWS Data Pipeline, è possibile definire flussi di lavoro basati sui dati di modo che le attività dipendano dal completamento delle precedenti attività.

Amazon Web Services - Data Pipeline

Cloud AWS

Task: Copy Log Files

Task: Launch Data Analysis

EC2 S3 EMR

AWS Data Pipeline

Daily Task Weekly Task