SlideShare une entreprise Scribd logo
1  sur  54
CLOUD COMPUTING IN PHP WITH THE AMAZON WEB SERVICES
Jeff Barr, Senior Web Services Evangelist
jbarr@amazon.com
@jeffbarr on Twitter
• Based in Seattle
• Unix since 1982; Linux since 1995
• Career path:
– Startups
– Microsoft
– Consultant to VCs and startups
– Amazon Web Services
• Lead AWS Blogger
• Author of
“Host Your Website in the Cloud”
INTRODUCTION
• Amazon / Cloud / AWS Intro
• AWS Overview
– Programmable Infrastructure
– S3, EC2, SDB, SQS
• Programming AWS in PHP
– CloudFusion library
– Scalable Image Processing
– Visualizing Infrastructure
– Dynamic Infrastructure
• Wrapup / Q & A
SESSION OUTLINE
AMAZON’S THREE BUSINESSES
Consumer (Retail)
Business
Tens of millions of
active customer
accounts
Seven countries: US,
UK, Germany, Japan,
France, Canada,
China
Seller
Business
Sell on Amazon
websites
Use Amazon
technology for your
own retail website
Leverage Amazon’s
massive fulfillment
center network
Developers &
IT Professionals
On-demand
infrastructure for
hosting web-scale
solutions
Hundreds of
thousands of
registered customers
WHAT IS CLOUD COMPUTING?
First, think of your electricity
service…
Power is available to you on-demand,
you pay only for what you use…
…and you plug into a vast electrical grid
managed by professionals to get you the
lowest cost, most reliable power with much
greater efficiency and safety than you could
probably do on your own.
INTRODUCING AMAZON WEB SERVICES
AWS provides flexible, scalable, secure, and cost-effective IT
infrastructure for businesses of all sizes around the world.
Compute power and storage is
available to you on-demand, you
pay only for the resources you
use…
…running on scalable, reliable, and secure
infrastructure operated by Amazon Web Services,
based on the knowledge gleaned from over a
decade of building efficient and dependable
infrastructure for Amazon.com.
AMAZON WEB SERVICES
Compute
Amazon Elastic Compute Cloud (EC2)
-Elastic Load Balancing
-Auto Scaling
Storage
Amazon Simple Storage Service (S3)
-AWS Import/Export
Your Custom Applications and Services
Content Delivery
Amazon CloudFront
Messaging
Amazon Simple Queue
Service (SQS)
Amazon Simple Notification
Service (SNS)
Payments
Amazon Flexible
Payments Service
(FPS)
On-Demand
Workforce
Amazon
Mechanical Turk
Parallel
Processing
Amazon Elastic
MapReduce
Monitoring
Amazon CloudWatch
Database
Amazon RDS
Amazon SimpleDB
Management
AWS Management Console
Tools
AWS Toolkit for Eclipse
Java, PHP, Ruby, Python,
.Net Developer Centers
Isolated Network
Amazon Virtual Private
Cloud
• All functionality accessed by APIs
• Amazon and third-party libraries
• Command-line tools
• AWS Management Console
• Third-party Tools
PROGRAMMABLE INFRASTRUCTURE
// Run an instance
$EC2 = new AmazonEC2();
$Options = array('KeyName' => "Jeff's Keys",
'InstanceType' => "m1.small");
$Res = $EC2->run_instances("ami-db7b9db2", 1, 1, $Options);
• Scalable data storage in-the-cloud
• Highly available and durable
• Pay-as-you-go pricing:
– Storage: tiered $0.15/GB to $0.055/GB
– Data Transfer Out: tiered $0.15/GB to $0.080/GB
– Data Transfer In: Free until June 30, 2010
– Requests: nominal charges
• Big and busy:
– 102 billion objects
– 100K requests/second
AMAZON SIMPLE STORAGE SERVICE (S3)
• Amazon EC2: on-demand compute power
– Obtain and boot new server instances in minutes
– Quickly scale capacity up or down
• Key features:
– Support for Linux, Windows, and OpenSolaris
– Supports all major web and application platforms
– Deploy across Availability Zones for reliability
– Elastic IPs provide greater flexibility
– Persistent storage with Amazon Elastic Block Store
– Monitoring (CloudWatch), Load Balancing, Auto-Scaling
AMAZON ELASTIC COMPUTE CLOUD (EC2)
EC2 PROGRAMMING INTERFACE (API)
• Images:
– RegisterImage
– DescribeImages
– DeregisterImage
– ModifyImageAttribute
– DescribeImageAttribute
– ResetImageAttribute
• Instances:
– RunInstances
– DescribeInstances
– TerminateInstances
– StopInstances
– GetConsoleOutput
– RebootInstances
• IP Addresses:
– AllocateAddress
– ReleaseAddress
– AssociateAddress
– DisassociateAddress
– DescribeAddresses
• Keypairs:
– CreateKeyPair
– DescribeKeyPairs
– DeleteKeyPair
• Security Groups:
– CreateSecurityGroup
– DescribeSecurityGroups
– DeleteSecurityGroup
– AuthorizeSecurityGroupIngress
– RevokeSecurityGroupIngress
• Block Storage Volumes:
– CreateVolume
– DeleteVolume
– DescribeVolumes
– AttachVolume
– DetachVolume
– CreateSnapshot
– DescribeSnapshots
– DeleteSnapshot
• VPC:
– CreateCustomerGateway
– DeleteCustomerGateway
– DescribeCustomerGateways
– AssociateDhcpOptions
– CreateDhcpOptions
– DeleteDhcpOptions
– DescribeDhcpOptions
– CreateSubnet
– DeleteSubnet
– DescribeSubnets
– CreateVpc
– DeleteVpc
– DescribeVpcs
– CreateVpnConnection
– DeleteVpnConnection
– DescribeVpnConnections
– AttachVpnGateway
– CreateVpnGateway
– DeleteVpnGateway
– DescribeVpnGateways
– DetachVpnGateway
• Simple, scalable storage solution for structured data
– Provides core database functionality for data storage and
querying
– No schema, no data modeling, no DBA
– SQL queries
AMAZON SIMPLEDB
item description color material
123 Sweater Blue, Red
789 Shoes Black Leather
Store:
PUT (item, 123), (description, Sweater), (color, Blue), (color, Red)
Query:
SELECT * FROM Inventory WHERE material='Leather'
• Reliable, highly scalable, hosted queue for messaging
• Build automated workflows for all applications
• Coordinate multiple Amazon EC2 instances
AMAZON SIMPLE QUEUE SERVICE
GETTING STARTED WITH AWS
Create
Developer Account
Enter Payment
Information
Sign Up for Desired
Services
Retrieve Private and
Public Keys
Build & Deploy
Application
Monitor and Scale
Application
MOVING RIGHT ALONG!
"Enough with the
talk, show us some
code, Jeff!"
PROGRAMMING AWS WITH PHP AND CLOUDFUSION
We’ll use the CloudFusion libraries from
www.getcloudfusion.com
CLOUDFUSION BASICS
 Download from SVN
 Add directory to PHP’s include_path
 Add AWS keys to config.inc.php
define('AWS_KEY', 'J35NTGFCQOIUY3OMNSQQ');
define('AWS_SECRET_KEY',
'99pizu2vVOK11rk9UAgWVj7PBGzWwertqJlgLV0c');
 Include one file:
require_once('cloudfusion.class.php');
CLOUDFUSION XML / PHP SIMPLEXML
• CloudFusion methods return a SimpleXML Object:
[body] => SimpleXMLElement Object
(
[Name] => sitepoint-aws-cloud-book
[Prefix] => SimpleXMLElement Object ()
[Marker] => SimpleXMLElement Object ()
[MaxKeys] => 1000
[IsTruncated] => false
[Contents] => Array
(
[0] => SimpleXMLElement Object
(
[Key] =>
images/2008_shiller_housing_projection.jpg
• Access as $Res->body->Contents[0]->Key
EXAMPLE 1 – SCALABLE PROCESSING PIPELINE
BUILDING A SCALABLE IMAGE PROCESSING PIPELINE
• Fetch a web page, store in Amazon S3
• Parse page and extract links to images
• Fetch first 16 images on page, store in Amazon S3
• Render images as composite image
URL
Queue
Fetch &
Store Page
Parse
Queue
Parse Page
Image
Queue
Fetch
Images
S3
Render
Queue
Render
Images &
Pages
S3S3
SQS-BASED APPLICATION ARCHITECTURE
ARCHITECTURE ATTRIBUTES
• Simple
– Each stage is easy to understand
– AWS reduces low-level coding
• Scalable
– Add more processes
– Add more instances
– Add more stages
– Storage any amount of data
• Fault Tolerant
– Messages remain in queues until processed
– Messages reappear in queues if process dies
• Asynchronous
– Each stage runs at its own speed
– Build, test,run one stage at a time
DEFINE QUEUES
// Queues
define('URL_QUEUE', 'c_url');
define('PARSE_QUEUE', 'c_parse');
define('IMAGE_QUEUE', 'c_image');
define('RENDER_QUEUE', 'c_render');
define('FEED_QUEUE', 'c_feed');
CREATE QUEUES
// Create the SQS access object
$SQS = new AmazonSQS();
for ($i = 1; $i < count($argv); $i++)
{
$Queue = $argv[$i];
$Res = $SQS->create_queue($Queue);
if ($Res->isOK())
{
print("Created queue '${Queue}'n");
}
}
CREATE QUEUES & CHECK STATUS
$ ./create_queues.php c_url c_parse c_image c_render c_feed
$ ./crawl_queue_status.php
c_url c_parse c_image c_render
----- ------- ------- --------
0 0 0 0
LOCATE A QUEUE'S URL
// Create the SQS access object
$SQS = new AmazonSQS();
// Locate the queue
$QueueURL = FindQueueURL($SQS, URL_QUEUE);
POST MESSAGE TO QUEUE
// Create message
$HistItem = array('Posted by ' . $argv[0] . ' at ' .
date('c'));
$Message = json_encode(array('Action' => 'FetchPage',
'Origin' => $argv[0],
'Data' => $argv[$i],
'History' => $HistItem));
// Post message
$Res = $SQS->send_message($QueueURL, $Message);
if ($Res->isOK())
{
print("Posted '${Message}' to QueueURL '${QueueURL}'n");
}
RECEIVE MESSAGE FROM QUEUE
function PullMessage($SQS, $QueueURL)
{
while (true)
{
$Res = $SQS->receive_message($QueueURL);
if ($Res->isOk())
{
if (IsSet($Res->body->ReceiveMessageResult->Message))
{
}
else
{
sleep(1);
}
}
}
RETURN RECEIVED MESSAGE
$Message = $Res->body->ReceiveMessageResult->Message;
$MessageBody = $Message->Body;
$MessageDetail = json_decode($MessageBody, true);
$ReceiptHandle = $Message->ReceiptHandle;
return array('QueueURL' => $QueueURL,
'Timestamp' => date('c'),
'Message' => $Message,
'MessageBody' => $MessageBody,
'MessageDetail' => $MessageDetail,
'ReceiptHandle' => $ReceiptHandle);
SAMPLE PROCESSING STAGE
// Pull, process, post
while (true)
{
// Pull the message from the queue
$Message = PullMessage($SQS, $QueueURL);
if ($Message != null)
{
// Extract message detail
$MessageDetail = $Message['MessageDetail'];
$ReceiptHandle = $Message['ReceiptHandle'];
$PageURL = $MessageDetail['Data'];
…
}
}
DETAILED PROCESSING
// Fetch the page
print("Processing URL '${PageURL}':n");
$HTML = file_get_contents($PageURL);
print(" Retrieved " . strlen($HTML) .
" bytes of HTMLn");
// Store the page in S3
$Key = 'page_' . md5($PageURL) . '.html';
if (UploadObject($S3, BOOK_BUCKET, $Key, $HTML,
S3_ACL_PUBLIC))
{
// Get URL in S3
$S3URL = $S3->get_object_url(BOOK_BUCKET, $Key);
print(" Uploaded page to S3 as '${Key}'n");
DETAILED PROCESSING
// Form message to pass page along to parser
$Origin = $MessageDetail['Origin'];
$History = $MessageDetail['History'];
$History[] = 'Fetched by ' . $argv[0] . ' at ' .
date('c');
$Message = json_encode(array('Action' => 'ParsePage',
'Origin' => $Origin,
'Data' => $S3URL,
'PageURL' => $PageURL,
'History' => $History));
// Pass the page along to the parser
$Res = $SQS->send_message($QueueParse, $Message);
RENDER IMAGES
foreach ($ImageKeys as $ImageKey)
{
// Fetch the image
print(" Fetch image '${ImageKey}'n");
$Image = $S3->get_object(BOOK_BUCKET, $ImageKey);
// Convert it to GD format
$ImageBits = ImageCreateFromString($Image->body);
// Copy it to proper spot in the destination
print(" Render image at ${NextX}, ${NextY}n");
ImageCopy($ImageOut, $ImageBits, $NextX, $NextY,
0, 0, ImageSx($ImageBits), ImageSy($ImageBits));
// Update position for next image
$NextX += THUMB_SIZE + GAP_SIZE;
if (($NextX + THUMB_SIZE) > $OutX)
{
$NextX = BORDER_LEFT;
$NextY += THUMB_SIZE + GAP_SIZE;
}
}
EXAMPLE 2 – CREATE INFRASTRUCTURE GRAPH
PROCESSING FLOW
Get AWS
Metadata
Build Object
Model
Render Object
Model as DOT
Graph
Render Dot
Graph as PDF
GET AWS METADATA
// Create the service access objects
$Service_EC2 = new AmazonEC2);
$Service_S3 = new AmazonS3);
$Service_SDB = new AmazonSDB);
$Service_CF = new AmazonCloudFrontetKey);
// Fetch information about all of the EC2 objects
$ResElasticIP = $Service_EC2->describe_addresses();
$ResAvailabilityZones = $Service_EC2-
>describe_availability_zones();
$ResInstances = $Service_EC2->describe_instances();
$ResVolumes = $Service_EC2->describe_volumes();
$ResSnapshots = $Service_EC2->describe_snapshots();
BUILD OBJECT MODEL
// EC2 Instances
foreach ($ResInstances->body->reservationSet->item as $ItemSet)
{
foreach ($ItemSet->instancesSet->item as $Item)
{
$InstanceId = (string) $Item->instanceId;
$ImageId = (string) $Item->imageId;
$State = (string) $Item->instanceState->name;
$InstanceType = (string) $Item->instanceType;
$AvailabilityZone = (string) $Item->placement->availabilityZone;
$LaunchTime = (string) $Item->launchTime;
$Region->AddInstance(new Instance($AvailabilityZone, $InstanceId,
$ImageId, $State, $InstanceType, $LaunchTime));
}
}
SAMPLE OBJECT (EC2 INSTANCE)
class Instance
{
var $State;
var $ImageId;
var $InstanceId;
var $LaunchTime;
var $InstanceType;
var $AvailabilityZone;
function __construct(…) {}
public function GetAvailabilityZone() {}
private function GetLabel() {}
function Render() {}
function RenderEdges() {}
}
RENDER OBJECT MODEL AS DOT GRAPH
function WriteNode($FP, $IndentLevel, $Node, $Label,
$NodeType)
{
fwrite($FP, Indent($IndentLevel) . Quote($Node) .
' [' .
'label=' . Quote($Label) . ', ' .
GetNodeStyle($NodeType) .
"];n");
}
DOT TEXT
graph aws
{
// Region
subgraph "cluster_us-east-1"
{
label="Region us-east-1";
style=filled; fillcolor=yellow; color=black;
// Elastic IP Addresses
subgraph "cluster_us-east-1_ips"
{
label="Elastic IP Addresses";
style=filled; fillcolor=darksalmon; color=black;
"75.101.154.199" [label="Elastic IP 75.101.154.199nec2-75-101-
154-199.compute-1.amazonaws.com", color=black, style=filled,
fillcolor=wheat, shape=rect];
"us-east-1_phantom_ips" [label="", shape=point, style=invis];
}
RENDER DOT TEXT TO PDF
$ dot –Tpdf aws_meta.dot > ~jeff/public_html/aws_meta.pdf
FINISHED INFRASTRUCTURE GRAPH
EXAMPLE 3 – DYNAMICALLY INSTANTIATE INFRASTRUCTURE
EC2 Instance
10 GB
EBS
Volume
100 GB
EBS
Volume
Elastic
IP
Address
RUN AN EC2 INSTANCE
// Create the EC2 access object
$EC2 = new AmazonEC2(AWS_PUBLIC_KEY, AWS_SECRET_KEY);
// Run an instance
$Options = array('KeyName' => "Jeff's Keys",
'InstanceType' => "m1.small");
$Res = $EC2->run_instances("ami-db7b9db2", 1, 1, $Options);
GET INSTANCE INFO
// Get the Id and Availability Zone of the instance
$Instances = $Res->body->instancesSet;
$InstanceId = $Instances->item->instanceId;
$AvailabilityZone = $Instances->item->placement
->availabilityZone;
print("Launched instance ${InstanceId} " .
"in availability zone ${AvailabilityZone}.n");
ALLOCATE ELASTIC IP ADDRESS
// Allocate an Elastic IP address
$Res = $EC2->allocate_address();
if (!$Res->isOK())
{
exit("Could not allocate public IP address.n");
}
// Get the allocated Elastic IP address
$PublicIP = $Res->body->publicIp;
print("Assigned IP address ${PublicIP}.n");
ATTACH IP ADDRESS TO INSTANCE
// Associate the Elastic IP address with the instance
$Res = $EC2->associate_address($InstanceId, $PublicIP);
if (!$Res->IsOK())
{
exit("Could not associate IP address ${PublicIP} " .
"with instance ${InstanceId}.n");
}
print("Associated IP address ${PublicIP} " .
"with instance ${InstanceId}.n");
CREATE 2 EBS VIRTUAL DISK VOLUMES
// Create two EBS volumes in the instance's availability
zone
$Res1 = $EC2->create_volume(10, $AvailabilityZone);
$Res2 = $EC2->create_volume(100, $AvailabilityZone);
if (!$Res1->isOK() || !$Res2->isOK())
{
exit("Could not create EBS volumes.n");
}
// Get the volume Ids
$VolumeId1 = $Res1->body->volumeId;
$VolumeId2 = $Res2->body->volumeId;
ATTACH THE VOLUMES TO THE INSTANCE
$Res1 =
$EC2->attach_volume($VolumeId1, $InstanceId, '/dev/sdf');
$Res2 =
$EC2->attach_volume($VolumeId2, $InstanceId, '/dev/sdg');
if (!$Res1->isOK() || !$Res2->isOK())
{
exit("Could not attach EBS volumes " .
"${VolumeId1} and ${VolumeId2} " .
"to instance ${InstanceId}.n");
}
NOW HIRING
• Northern Virginia:
– SDE – Virtual Private Cloud
– Front End Web Developer – Virtual Private Cloud
• Seattle:
– SDE
– Program Management
– Developer Support
• More Info:
– AWS booth in lobby
– http://aws.amazon.com/jobs
Q & A
• Amazon Web Services: http://aws.amazon.com
• Virtual Private Cloud: http://aws.amazon.com/vpc
• Relational Database Service: http://aws.amazon.com/rds
• jbarr@amazon.com
• twitter.com/jeffbarr
FOR MORE INFORMATION
Thanks!
jbarr@amazozn.com

Contenu connexe

Tendances

2017 AWSome day Taichung sharing
2017 AWSome day Taichung sharing2017 AWSome day Taichung sharing
2017 AWSome day Taichung sharingYu-Lin Huang
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWSAmazon Web Services
 
Deep Dive: Amazon Relational Database Service (March 2017)
Deep Dive: Amazon Relational Database Service (March 2017)Deep Dive: Amazon Relational Database Service (March 2017)
Deep Dive: Amazon Relational Database Service (March 2017)Julien SIMON
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingAmazon Web Services
 
AWS basics session
AWS basics sessionAWS basics session
AWS basics sessionSharad Gupta
 
AWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant systemAWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant systemNaoya Hashimoto
 
Overview of Amazon Web Services
Overview of Amazon Web ServicesOverview of Amazon Web Services
Overview of Amazon Web ServicesHarish Ganesan
 
Amazon S3 - Masterclass - Pop-up Loft Tel Aviv
Amazon S3 - Masterclass - Pop-up Loft Tel AvivAmazon S3 - Masterclass - Pop-up Loft Tel Aviv
Amazon S3 - Masterclass - Pop-up Loft Tel AvivAmazon Web Services
 
The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:In...
The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:In...The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:In...
The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:In...Amazon Web Services
 
AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)Julien SIMON
 
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAn introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAmazon Web Services
 
EC2 Container Service - Distributed Applications at Scale - Pop-up Loft Tel Aviv
EC2 Container Service - Distributed Applications at Scale - Pop-up Loft Tel AvivEC2 Container Service - Distributed Applications at Scale - Pop-up Loft Tel Aviv
EC2 Container Service - Distributed Applications at Scale - Pop-up Loft Tel AvivAmazon Web Services
 
Secure Content Delivery with AWS
Secure Content Delivery with AWSSecure Content Delivery with AWS
Secure Content Delivery with AWSAmazon Web Services
 
Scaling up to your first 10 million users - Pop-up Loft Tel Aviv
Scaling up to your first 10 million users - Pop-up Loft Tel AvivScaling up to your first 10 million users - Pop-up Loft Tel Aviv
Scaling up to your first 10 million users - Pop-up Loft Tel AvivAmazon Web Services
 
Amazon Ec2 Application Design
Amazon Ec2 Application DesignAmazon Ec2 Application Design
Amazon Ec2 Application Designguestd0b61e
 
Amazon EC2 - Masterclass - Pop-up Loft Tel Aviv
Amazon EC2 - Masterclass - Pop-up Loft Tel AvivAmazon EC2 - Masterclass - Pop-up Loft Tel Aviv
Amazon EC2 - Masterclass - Pop-up Loft Tel AvivAmazon Web Services
 
Serverless architectures on aws
Serverless architectures on awsServerless architectures on aws
Serverless architectures on awsPaolo latella
 
Introduction to Amazon Lightsail
Introduction to Amazon LightsailIntroduction to Amazon Lightsail
Introduction to Amazon LightsailAmazon Web Services
 

Tendances (20)

2017 AWSome day Taichung sharing
2017 AWSome day Taichung sharing2017 AWSome day Taichung sharing
2017 AWSome day Taichung sharing
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWS
 
Deep Dive: Amazon Relational Database Service (March 2017)
Deep Dive: Amazon Relational Database Service (March 2017)Deep Dive: Amazon Relational Database Service (March 2017)
Deep Dive: Amazon Relational Database Service (March 2017)
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
 
Amazon EC2 Masterclass
Amazon EC2 MasterclassAmazon EC2 Masterclass
Amazon EC2 Masterclass
 
AWS basics session
AWS basics sessionAWS basics session
AWS basics session
 
AWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant systemAWS CloudFormation template with single & redundant system
AWS CloudFormation template with single & redundant system
 
Overview of Amazon Web Services
Overview of Amazon Web ServicesOverview of Amazon Web Services
Overview of Amazon Web Services
 
Amazon S3 - Masterclass - Pop-up Loft Tel Aviv
Amazon S3 - Masterclass - Pop-up Loft Tel AvivAmazon S3 - Masterclass - Pop-up Loft Tel Aviv
Amazon S3 - Masterclass - Pop-up Loft Tel Aviv
 
The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:In...
The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:In...The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:In...
The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:In...
 
AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)
 
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAn introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
 
EC2 Container Service - Distributed Applications at Scale - Pop-up Loft Tel Aviv
EC2 Container Service - Distributed Applications at Scale - Pop-up Loft Tel AvivEC2 Container Service - Distributed Applications at Scale - Pop-up Loft Tel Aviv
EC2 Container Service - Distributed Applications at Scale - Pop-up Loft Tel Aviv
 
Secure Content Delivery with AWS
Secure Content Delivery with AWSSecure Content Delivery with AWS
Secure Content Delivery with AWS
 
Introduction to Amazon EC2
Introduction to Amazon EC2Introduction to Amazon EC2
Introduction to Amazon EC2
 
Scaling up to your first 10 million users - Pop-up Loft Tel Aviv
Scaling up to your first 10 million users - Pop-up Loft Tel AvivScaling up to your first 10 million users - Pop-up Loft Tel Aviv
Scaling up to your first 10 million users - Pop-up Loft Tel Aviv
 
Amazon Ec2 Application Design
Amazon Ec2 Application DesignAmazon Ec2 Application Design
Amazon Ec2 Application Design
 
Amazon EC2 - Masterclass - Pop-up Loft Tel Aviv
Amazon EC2 - Masterclass - Pop-up Loft Tel AvivAmazon EC2 - Masterclass - Pop-up Loft Tel Aviv
Amazon EC2 - Masterclass - Pop-up Loft Tel Aviv
 
Serverless architectures on aws
Serverless architectures on awsServerless architectures on aws
Serverless architectures on aws
 
Introduction to Amazon Lightsail
Introduction to Amazon LightsailIntroduction to Amazon Lightsail
Introduction to Amazon Lightsail
 

En vedette

Amazon web services : "How Does Cloud Computing Change the Business Model for...
Amazon web services : "How Does Cloud Computing Change the Business Model for...Amazon web services : "How Does Cloud Computing Change the Business Model for...
Amazon web services : "How Does Cloud Computing Change the Business Model for...Software Park Thailand
 
The assessment of Loreal Thailand Case Study
The assessment of Loreal Thailand Case StudyThe assessment of Loreal Thailand Case Study
The assessment of Loreal Thailand Case StudyRoziana Mohammad
 
2011 Introduction to Cloud Computing and Amazon Web Services
2011 Introduction to Cloud Computing and Amazon Web Services2011 Introduction to Cloud Computing and Amazon Web Services
2011 Introduction to Cloud Computing and Amazon Web ServicesSimone Brunozzi
 
AWS Enterprise Summit Manila Windows .net
AWS Enterprise Summit Manila Windows .netAWS Enterprise Summit Manila Windows .net
AWS Enterprise Summit Manila Windows .netAmazon Web Services
 
Jump Start your First Hour with AWS
Jump Start your First Hour with AWSJump Start your First Hour with AWS
Jump Start your First Hour with AWSAmazon Web Services
 
(ISM312) SMB Panel—Using The Cloud to Achieve Business Agility
(ISM312) SMB Panel—Using The Cloud to Achieve Business Agility(ISM312) SMB Panel—Using The Cloud to Achieve Business Agility
(ISM312) SMB Panel—Using The Cloud to Achieve Business AgilityAmazon Web Services
 
AWS Summit 2013 | India - Running High Churn Development & Test Environments,...
AWS Summit 2013 | India - Running High Churn Development & Test Environments,...AWS Summit 2013 | India - Running High Churn Development & Test Environments,...
AWS Summit 2013 | India - Running High Churn Development & Test Environments,...Amazon Web Services
 
Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Advanced Topics - Session 1 - Continuous Deployment Practices on AWSAdvanced Topics - Session 1 - Continuous Deployment Practices on AWS
Advanced Topics - Session 1 - Continuous Deployment Practices on AWSAmazon Web Services
 
Deep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudDeep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudAmazon Web Services
 
Getting Started with Amazon DynamoDB
Getting Started with Amazon DynamoDBGetting Started with Amazon DynamoDB
Getting Started with Amazon DynamoDBAmazon Web Services
 
Modern Security and Compliance Through Automation
Modern Security and Compliance Through AutomationModern Security and Compliance Through Automation
Modern Security and Compliance Through AutomationAmazon Web Services
 
AWS Customer Presentation - Cruxy.com
AWS Customer Presentation - Cruxy.com AWS Customer Presentation - Cruxy.com
AWS Customer Presentation - Cruxy.com Amazon Web Services
 
AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...
AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...
AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...Amazon Web Services
 
AWS Summit Bogotá Track Avanzado: Virtual Private Cloud
AWS Summit Bogotá Track Avanzado: Virtual Private Cloud AWS Summit Bogotá Track Avanzado: Virtual Private Cloud
AWS Summit Bogotá Track Avanzado: Virtual Private Cloud Amazon Web Services
 
AWS Summit 2013 | Auckland - Big Data Analytics
AWS Summit 2013 | Auckland - Big Data AnalyticsAWS Summit 2013 | Auckland - Big Data Analytics
AWS Summit 2013 | Auckland - Big Data AnalyticsAmazon Web Services
 
Running Microsoft Enterprise Workloads on Amazon Web Services
Running Microsoft Enterprise Workloads on Amazon Web ServicesRunning Microsoft Enterprise Workloads on Amazon Web Services
Running Microsoft Enterprise Workloads on Amazon Web ServicesAmazon Web Services
 

En vedette (20)

Amazon web services : "How Does Cloud Computing Change the Business Model for...
Amazon web services : "How Does Cloud Computing Change the Business Model for...Amazon web services : "How Does Cloud Computing Change the Business Model for...
Amazon web services : "How Does Cloud Computing Change the Business Model for...
 
The assessment of Loreal Thailand Case Study
The assessment of Loreal Thailand Case StudyThe assessment of Loreal Thailand Case Study
The assessment of Loreal Thailand Case Study
 
2011 Introduction to Cloud Computing and Amazon Web Services
2011 Introduction to Cloud Computing and Amazon Web Services2011 Introduction to Cloud Computing and Amazon Web Services
2011 Introduction to Cloud Computing and Amazon Web Services
 
AWS Enterprise Summit Manila Windows .net
AWS Enterprise Summit Manila Windows .netAWS Enterprise Summit Manila Windows .net
AWS Enterprise Summit Manila Windows .net
 
Jump Start your First Hour with AWS
Jump Start your First Hour with AWSJump Start your First Hour with AWS
Jump Start your First Hour with AWS
 
(ISM312) SMB Panel—Using The Cloud to Achieve Business Agility
(ISM312) SMB Panel—Using The Cloud to Achieve Business Agility(ISM312) SMB Panel—Using The Cloud to Achieve Business Agility
(ISM312) SMB Panel—Using The Cloud to Achieve Business Agility
 
AWS Summit 2013 | India - Running High Churn Development & Test Environments,...
AWS Summit 2013 | India - Running High Churn Development & Test Environments,...AWS Summit 2013 | India - Running High Churn Development & Test Environments,...
AWS Summit 2013 | India - Running High Churn Development & Test Environments,...
 
Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
Advanced Topics - Session 1 - Continuous Deployment Practices on AWSAdvanced Topics - Session 1 - Continuous Deployment Practices on AWS
Advanced Topics - Session 1 - Continuous Deployment Practices on AWS
 
Deep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudDeep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private Cloud
 
Getting Started with Amazon DynamoDB
Getting Started with Amazon DynamoDBGetting Started with Amazon DynamoDB
Getting Started with Amazon DynamoDB
 
Managing Media Transcoding
Managing Media TranscodingManaging Media Transcoding
Managing Media Transcoding
 
Modern Security and Compliance Through Automation
Modern Security and Compliance Through AutomationModern Security and Compliance Through Automation
Modern Security and Compliance Through Automation
 
Cost Optimization at Scale
Cost Optimization at ScaleCost Optimization at Scale
Cost Optimization at Scale
 
AWS Customer Presentation - Cruxy.com
AWS Customer Presentation - Cruxy.com AWS Customer Presentation - Cruxy.com
AWS Customer Presentation - Cruxy.com
 
Masterclass Live: Amazon EC2
Masterclass Live: Amazon EC2 Masterclass Live: Amazon EC2
Masterclass Live: Amazon EC2
 
AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...
AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...
AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...
 
AWS Summit Bogotá Track Avanzado: Virtual Private Cloud
AWS Summit Bogotá Track Avanzado: Virtual Private Cloud AWS Summit Bogotá Track Avanzado: Virtual Private Cloud
AWS Summit Bogotá Track Avanzado: Virtual Private Cloud
 
AWS Summit 2013 | Auckland - Big Data Analytics
AWS Summit 2013 | Auckland - Big Data AnalyticsAWS Summit 2013 | Auckland - Big Data Analytics
AWS Summit 2013 | Auckland - Big Data Analytics
 
Running Microsoft Enterprise Workloads on Amazon Web Services
Running Microsoft Enterprise Workloads on Amazon Web ServicesRunning Microsoft Enterprise Workloads on Amazon Web Services
Running Microsoft Enterprise Workloads on Amazon Web Services
 
AWS Customer Service - Sonian
AWS Customer Service - Sonian AWS Customer Service - Sonian
AWS Customer Service - Sonian
 

Similaire à CLOUD PHP AWS

Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesAmazon Web Services
 
Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesAmazon Web Services
 
Amazon Web Services for PHP Developers
Amazon Web Services for PHP DevelopersAmazon Web Services for PHP Developers
Amazon Web Services for PHP DevelopersJeremy Lindblom
 
(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduce(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduceAmazon Web Services
 
Julien Simon "Scaling ML from 0 to millions of users"
Julien Simon "Scaling ML from 0 to millions of users"Julien Simon "Scaling ML from 0 to millions of users"
Julien Simon "Scaling ML from 0 to millions of users"Fwdays
 
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션Amazon Web Services Korea
 
Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudVladimir Ilic
 
RMG203 Cloud Infrastructure and Application Monitoring with Amazon CloudWatch...
RMG203 Cloud Infrastructure and Application Monitoring with Amazon CloudWatch...RMG203 Cloud Infrastructure and Application Monitoring with Amazon CloudWatch...
RMG203 Cloud Infrastructure and Application Monitoring with Amazon CloudWatch...Amazon Web Services
 
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and ToolsDeployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and ToolsDanilo Poccia
 
AWS as platform for scalable applications
AWS as platform for scalable applicationsAWS as platform for scalable applications
AWS as platform for scalable applicationsRoman Gomolko
 
AWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAmazon Web Services
 
Deep Dive on Amazon RDS (May 2016)
Deep Dive on Amazon RDS (May 2016)Deep Dive on Amazon RDS (May 2016)
Deep Dive on Amazon RDS (May 2016)Julien SIMON
 
Amazon Web Services for Application Hosting | SugarCon 2011
Amazon Web Services for Application Hosting | SugarCon 2011Amazon Web Services for Application Hosting | SugarCon 2011
Amazon Web Services for Application Hosting | SugarCon 2011SugarCRM
 
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel AvivSelf Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel AvivAmazon Web Services
 
Scalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWSScalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWSFernando Rodriguez
 
Your First 10 Million Users with Amazon Web Services
Your First 10 Million Users with Amazon Web ServicesYour First 10 Million Users with Amazon Web Services
Your First 10 Million Users with Amazon Web ServicesAmazon Web Services
 
AWS re:Invent 2016: IoT Visualizations and Analytics (IOT306)
AWS re:Invent 2016: IoT Visualizations and Analytics (IOT306)AWS re:Invent 2016: IoT Visualizations and Analytics (IOT306)
AWS re:Invent 2016: IoT Visualizations and Analytics (IOT306)Amazon Web Services
 

Similaire à CLOUD PHP AWS (20)

Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web Services
 
Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web Services
 
Amazon Web Services for PHP Developers
Amazon Web Services for PHP DevelopersAmazon Web Services for PHP Developers
Amazon Web Services for PHP Developers
 
(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduce(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduce
 
Julien Simon "Scaling ML from 0 to millions of users"
Julien Simon "Scaling ML from 0 to millions of users"Julien Simon "Scaling ML from 0 to millions of users"
Julien Simon "Scaling ML from 0 to millions of users"
 
SRV410 Deep Dive on AWS Batch
SRV410 Deep Dive on AWS BatchSRV410 Deep Dive on AWS Batch
SRV410 Deep Dive on AWS Batch
 
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션
윈도 닷넷 개발자를 위한 솔루션 클라우드 데브옵스 솔루션
 
Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloud
 
Carlos Conde : AWS Game Days - TIAD Paris
Carlos Conde : AWS Game Days - TIAD ParisCarlos Conde : AWS Game Days - TIAD Paris
Carlos Conde : AWS Game Days - TIAD Paris
 
RMG203 Cloud Infrastructure and Application Monitoring with Amazon CloudWatch...
RMG203 Cloud Infrastructure and Application Monitoring with Amazon CloudWatch...RMG203 Cloud Infrastructure and Application Monitoring with Amazon CloudWatch...
RMG203 Cloud Infrastructure and Application Monitoring with Amazon CloudWatch...
 
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and ToolsDeployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
 
AWS as platform for scalable applications
AWS as platform for scalable applicationsAWS as platform for scalable applications
AWS as platform for scalable applications
 
AWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWS
 
Amazon RDS Deep Dive
Amazon RDS Deep DiveAmazon RDS Deep Dive
Amazon RDS Deep Dive
 
Deep Dive on Amazon RDS (May 2016)
Deep Dive on Amazon RDS (May 2016)Deep Dive on Amazon RDS (May 2016)
Deep Dive on Amazon RDS (May 2016)
 
Amazon Web Services for Application Hosting | SugarCon 2011
Amazon Web Services for Application Hosting | SugarCon 2011Amazon Web Services for Application Hosting | SugarCon 2011
Amazon Web Services for Application Hosting | SugarCon 2011
 
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel AvivSelf Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
 
Scalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWSScalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWS
 
Your First 10 Million Users with Amazon Web Services
Your First 10 Million Users with Amazon Web ServicesYour First 10 Million Users with Amazon Web Services
Your First 10 Million Users with Amazon Web Services
 
AWS re:Invent 2016: IoT Visualizations and Analytics (IOT306)
AWS re:Invent 2016: IoT Visualizations and Analytics (IOT306)AWS re:Invent 2016: IoT Visualizations and Analytics (IOT306)
AWS re:Invent 2016: IoT Visualizations and Analytics (IOT306)
 

Plus de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Plus de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Dernier (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

CLOUD PHP AWS

  • 1. CLOUD COMPUTING IN PHP WITH THE AMAZON WEB SERVICES Jeff Barr, Senior Web Services Evangelist jbarr@amazon.com @jeffbarr on Twitter
  • 2. • Based in Seattle • Unix since 1982; Linux since 1995 • Career path: – Startups – Microsoft – Consultant to VCs and startups – Amazon Web Services • Lead AWS Blogger • Author of “Host Your Website in the Cloud” INTRODUCTION
  • 3. • Amazon / Cloud / AWS Intro • AWS Overview – Programmable Infrastructure – S3, EC2, SDB, SQS • Programming AWS in PHP – CloudFusion library – Scalable Image Processing – Visualizing Infrastructure – Dynamic Infrastructure • Wrapup / Q & A SESSION OUTLINE
  • 4. AMAZON’S THREE BUSINESSES Consumer (Retail) Business Tens of millions of active customer accounts Seven countries: US, UK, Germany, Japan, France, Canada, China Seller Business Sell on Amazon websites Use Amazon technology for your own retail website Leverage Amazon’s massive fulfillment center network Developers & IT Professionals On-demand infrastructure for hosting web-scale solutions Hundreds of thousands of registered customers
  • 5. WHAT IS CLOUD COMPUTING? First, think of your electricity service… Power is available to you on-demand, you pay only for what you use… …and you plug into a vast electrical grid managed by professionals to get you the lowest cost, most reliable power with much greater efficiency and safety than you could probably do on your own.
  • 6. INTRODUCING AMAZON WEB SERVICES AWS provides flexible, scalable, secure, and cost-effective IT infrastructure for businesses of all sizes around the world. Compute power and storage is available to you on-demand, you pay only for the resources you use… …running on scalable, reliable, and secure infrastructure operated by Amazon Web Services, based on the knowledge gleaned from over a decade of building efficient and dependable infrastructure for Amazon.com.
  • 7. AMAZON WEB SERVICES Compute Amazon Elastic Compute Cloud (EC2) -Elastic Load Balancing -Auto Scaling Storage Amazon Simple Storage Service (S3) -AWS Import/Export Your Custom Applications and Services Content Delivery Amazon CloudFront Messaging Amazon Simple Queue Service (SQS) Amazon Simple Notification Service (SNS) Payments Amazon Flexible Payments Service (FPS) On-Demand Workforce Amazon Mechanical Turk Parallel Processing Amazon Elastic MapReduce Monitoring Amazon CloudWatch Database Amazon RDS Amazon SimpleDB Management AWS Management Console Tools AWS Toolkit for Eclipse Java, PHP, Ruby, Python, .Net Developer Centers Isolated Network Amazon Virtual Private Cloud
  • 8. • All functionality accessed by APIs • Amazon and third-party libraries • Command-line tools • AWS Management Console • Third-party Tools PROGRAMMABLE INFRASTRUCTURE // Run an instance $EC2 = new AmazonEC2(); $Options = array('KeyName' => "Jeff's Keys", 'InstanceType' => "m1.small"); $Res = $EC2->run_instances("ami-db7b9db2", 1, 1, $Options);
  • 9. • Scalable data storage in-the-cloud • Highly available and durable • Pay-as-you-go pricing: – Storage: tiered $0.15/GB to $0.055/GB – Data Transfer Out: tiered $0.15/GB to $0.080/GB – Data Transfer In: Free until June 30, 2010 – Requests: nominal charges • Big and busy: – 102 billion objects – 100K requests/second AMAZON SIMPLE STORAGE SERVICE (S3)
  • 10. • Amazon EC2: on-demand compute power – Obtain and boot new server instances in minutes – Quickly scale capacity up or down • Key features: – Support for Linux, Windows, and OpenSolaris – Supports all major web and application platforms – Deploy across Availability Zones for reliability – Elastic IPs provide greater flexibility – Persistent storage with Amazon Elastic Block Store – Monitoring (CloudWatch), Load Balancing, Auto-Scaling AMAZON ELASTIC COMPUTE CLOUD (EC2)
  • 11. EC2 PROGRAMMING INTERFACE (API) • Images: – RegisterImage – DescribeImages – DeregisterImage – ModifyImageAttribute – DescribeImageAttribute – ResetImageAttribute • Instances: – RunInstances – DescribeInstances – TerminateInstances – StopInstances – GetConsoleOutput – RebootInstances • IP Addresses: – AllocateAddress – ReleaseAddress – AssociateAddress – DisassociateAddress – DescribeAddresses • Keypairs: – CreateKeyPair – DescribeKeyPairs – DeleteKeyPair • Security Groups: – CreateSecurityGroup – DescribeSecurityGroups – DeleteSecurityGroup – AuthorizeSecurityGroupIngress – RevokeSecurityGroupIngress • Block Storage Volumes: – CreateVolume – DeleteVolume – DescribeVolumes – AttachVolume – DetachVolume – CreateSnapshot – DescribeSnapshots – DeleteSnapshot • VPC: – CreateCustomerGateway – DeleteCustomerGateway – DescribeCustomerGateways – AssociateDhcpOptions – CreateDhcpOptions – DeleteDhcpOptions – DescribeDhcpOptions – CreateSubnet – DeleteSubnet – DescribeSubnets – CreateVpc – DeleteVpc – DescribeVpcs – CreateVpnConnection – DeleteVpnConnection – DescribeVpnConnections – AttachVpnGateway – CreateVpnGateway – DeleteVpnGateway – DescribeVpnGateways – DetachVpnGateway
  • 12. • Simple, scalable storage solution for structured data – Provides core database functionality for data storage and querying – No schema, no data modeling, no DBA – SQL queries AMAZON SIMPLEDB item description color material 123 Sweater Blue, Red 789 Shoes Black Leather Store: PUT (item, 123), (description, Sweater), (color, Blue), (color, Red) Query: SELECT * FROM Inventory WHERE material='Leather'
  • 13. • Reliable, highly scalable, hosted queue for messaging • Build automated workflows for all applications • Coordinate multiple Amazon EC2 instances AMAZON SIMPLE QUEUE SERVICE
  • 14. GETTING STARTED WITH AWS Create Developer Account Enter Payment Information Sign Up for Desired Services Retrieve Private and Public Keys Build & Deploy Application Monitor and Scale Application
  • 15. MOVING RIGHT ALONG! "Enough with the talk, show us some code, Jeff!"
  • 16. PROGRAMMING AWS WITH PHP AND CLOUDFUSION We’ll use the CloudFusion libraries from www.getcloudfusion.com
  • 17. CLOUDFUSION BASICS  Download from SVN  Add directory to PHP’s include_path  Add AWS keys to config.inc.php define('AWS_KEY', 'J35NTGFCQOIUY3OMNSQQ'); define('AWS_SECRET_KEY', '99pizu2vVOK11rk9UAgWVj7PBGzWwertqJlgLV0c');  Include one file: require_once('cloudfusion.class.php');
  • 18. CLOUDFUSION XML / PHP SIMPLEXML • CloudFusion methods return a SimpleXML Object: [body] => SimpleXMLElement Object ( [Name] => sitepoint-aws-cloud-book [Prefix] => SimpleXMLElement Object () [Marker] => SimpleXMLElement Object () [MaxKeys] => 1000 [IsTruncated] => false [Contents] => Array ( [0] => SimpleXMLElement Object ( [Key] => images/2008_shiller_housing_projection.jpg • Access as $Res->body->Contents[0]->Key
  • 19. EXAMPLE 1 – SCALABLE PROCESSING PIPELINE
  • 20. BUILDING A SCALABLE IMAGE PROCESSING PIPELINE • Fetch a web page, store in Amazon S3 • Parse page and extract links to images • Fetch first 16 images on page, store in Amazon S3 • Render images as composite image
  • 21. URL Queue Fetch & Store Page Parse Queue Parse Page Image Queue Fetch Images S3 Render Queue Render Images & Pages S3S3 SQS-BASED APPLICATION ARCHITECTURE
  • 22.
  • 23. ARCHITECTURE ATTRIBUTES • Simple – Each stage is easy to understand – AWS reduces low-level coding • Scalable – Add more processes – Add more instances – Add more stages – Storage any amount of data • Fault Tolerant – Messages remain in queues until processed – Messages reappear in queues if process dies • Asynchronous – Each stage runs at its own speed – Build, test,run one stage at a time
  • 24. DEFINE QUEUES // Queues define('URL_QUEUE', 'c_url'); define('PARSE_QUEUE', 'c_parse'); define('IMAGE_QUEUE', 'c_image'); define('RENDER_QUEUE', 'c_render'); define('FEED_QUEUE', 'c_feed');
  • 25. CREATE QUEUES // Create the SQS access object $SQS = new AmazonSQS(); for ($i = 1; $i < count($argv); $i++) { $Queue = $argv[$i]; $Res = $SQS->create_queue($Queue); if ($Res->isOK()) { print("Created queue '${Queue}'n"); } }
  • 26. CREATE QUEUES & CHECK STATUS $ ./create_queues.php c_url c_parse c_image c_render c_feed $ ./crawl_queue_status.php c_url c_parse c_image c_render ----- ------- ------- -------- 0 0 0 0
  • 27. LOCATE A QUEUE'S URL // Create the SQS access object $SQS = new AmazonSQS(); // Locate the queue $QueueURL = FindQueueURL($SQS, URL_QUEUE);
  • 28. POST MESSAGE TO QUEUE // Create message $HistItem = array('Posted by ' . $argv[0] . ' at ' . date('c')); $Message = json_encode(array('Action' => 'FetchPage', 'Origin' => $argv[0], 'Data' => $argv[$i], 'History' => $HistItem)); // Post message $Res = $SQS->send_message($QueueURL, $Message); if ($Res->isOK()) { print("Posted '${Message}' to QueueURL '${QueueURL}'n"); }
  • 29. RECEIVE MESSAGE FROM QUEUE function PullMessage($SQS, $QueueURL) { while (true) { $Res = $SQS->receive_message($QueueURL); if ($Res->isOk()) { if (IsSet($Res->body->ReceiveMessageResult->Message)) { } else { sleep(1); } } }
  • 30. RETURN RECEIVED MESSAGE $Message = $Res->body->ReceiveMessageResult->Message; $MessageBody = $Message->Body; $MessageDetail = json_decode($MessageBody, true); $ReceiptHandle = $Message->ReceiptHandle; return array('QueueURL' => $QueueURL, 'Timestamp' => date('c'), 'Message' => $Message, 'MessageBody' => $MessageBody, 'MessageDetail' => $MessageDetail, 'ReceiptHandle' => $ReceiptHandle);
  • 31. SAMPLE PROCESSING STAGE // Pull, process, post while (true) { // Pull the message from the queue $Message = PullMessage($SQS, $QueueURL); if ($Message != null) { // Extract message detail $MessageDetail = $Message['MessageDetail']; $ReceiptHandle = $Message['ReceiptHandle']; $PageURL = $MessageDetail['Data']; … } }
  • 32. DETAILED PROCESSING // Fetch the page print("Processing URL '${PageURL}':n"); $HTML = file_get_contents($PageURL); print(" Retrieved " . strlen($HTML) . " bytes of HTMLn"); // Store the page in S3 $Key = 'page_' . md5($PageURL) . '.html'; if (UploadObject($S3, BOOK_BUCKET, $Key, $HTML, S3_ACL_PUBLIC)) { // Get URL in S3 $S3URL = $S3->get_object_url(BOOK_BUCKET, $Key); print(" Uploaded page to S3 as '${Key}'n");
  • 33. DETAILED PROCESSING // Form message to pass page along to parser $Origin = $MessageDetail['Origin']; $History = $MessageDetail['History']; $History[] = 'Fetched by ' . $argv[0] . ' at ' . date('c'); $Message = json_encode(array('Action' => 'ParsePage', 'Origin' => $Origin, 'Data' => $S3URL, 'PageURL' => $PageURL, 'History' => $History)); // Pass the page along to the parser $Res = $SQS->send_message($QueueParse, $Message);
  • 34. RENDER IMAGES foreach ($ImageKeys as $ImageKey) { // Fetch the image print(" Fetch image '${ImageKey}'n"); $Image = $S3->get_object(BOOK_BUCKET, $ImageKey); // Convert it to GD format $ImageBits = ImageCreateFromString($Image->body); // Copy it to proper spot in the destination print(" Render image at ${NextX}, ${NextY}n"); ImageCopy($ImageOut, $ImageBits, $NextX, $NextY, 0, 0, ImageSx($ImageBits), ImageSy($ImageBits)); // Update position for next image $NextX += THUMB_SIZE + GAP_SIZE; if (($NextX + THUMB_SIZE) > $OutX) { $NextX = BORDER_LEFT; $NextY += THUMB_SIZE + GAP_SIZE; } }
  • 35. EXAMPLE 2 – CREATE INFRASTRUCTURE GRAPH
  • 36. PROCESSING FLOW Get AWS Metadata Build Object Model Render Object Model as DOT Graph Render Dot Graph as PDF
  • 37. GET AWS METADATA // Create the service access objects $Service_EC2 = new AmazonEC2); $Service_S3 = new AmazonS3); $Service_SDB = new AmazonSDB); $Service_CF = new AmazonCloudFrontetKey); // Fetch information about all of the EC2 objects $ResElasticIP = $Service_EC2->describe_addresses(); $ResAvailabilityZones = $Service_EC2- >describe_availability_zones(); $ResInstances = $Service_EC2->describe_instances(); $ResVolumes = $Service_EC2->describe_volumes(); $ResSnapshots = $Service_EC2->describe_snapshots();
  • 38. BUILD OBJECT MODEL // EC2 Instances foreach ($ResInstances->body->reservationSet->item as $ItemSet) { foreach ($ItemSet->instancesSet->item as $Item) { $InstanceId = (string) $Item->instanceId; $ImageId = (string) $Item->imageId; $State = (string) $Item->instanceState->name; $InstanceType = (string) $Item->instanceType; $AvailabilityZone = (string) $Item->placement->availabilityZone; $LaunchTime = (string) $Item->launchTime; $Region->AddInstance(new Instance($AvailabilityZone, $InstanceId, $ImageId, $State, $InstanceType, $LaunchTime)); } }
  • 39. SAMPLE OBJECT (EC2 INSTANCE) class Instance { var $State; var $ImageId; var $InstanceId; var $LaunchTime; var $InstanceType; var $AvailabilityZone; function __construct(…) {} public function GetAvailabilityZone() {} private function GetLabel() {} function Render() {} function RenderEdges() {} }
  • 40. RENDER OBJECT MODEL AS DOT GRAPH function WriteNode($FP, $IndentLevel, $Node, $Label, $NodeType) { fwrite($FP, Indent($IndentLevel) . Quote($Node) . ' [' . 'label=' . Quote($Label) . ', ' . GetNodeStyle($NodeType) . "];n"); }
  • 41. DOT TEXT graph aws { // Region subgraph "cluster_us-east-1" { label="Region us-east-1"; style=filled; fillcolor=yellow; color=black; // Elastic IP Addresses subgraph "cluster_us-east-1_ips" { label="Elastic IP Addresses"; style=filled; fillcolor=darksalmon; color=black; "75.101.154.199" [label="Elastic IP 75.101.154.199nec2-75-101- 154-199.compute-1.amazonaws.com", color=black, style=filled, fillcolor=wheat, shape=rect]; "us-east-1_phantom_ips" [label="", shape=point, style=invis]; }
  • 42. RENDER DOT TEXT TO PDF $ dot –Tpdf aws_meta.dot > ~jeff/public_html/aws_meta.pdf
  • 44. EXAMPLE 3 – DYNAMICALLY INSTANTIATE INFRASTRUCTURE EC2 Instance 10 GB EBS Volume 100 GB EBS Volume Elastic IP Address
  • 45. RUN AN EC2 INSTANCE // Create the EC2 access object $EC2 = new AmazonEC2(AWS_PUBLIC_KEY, AWS_SECRET_KEY); // Run an instance $Options = array('KeyName' => "Jeff's Keys", 'InstanceType' => "m1.small"); $Res = $EC2->run_instances("ami-db7b9db2", 1, 1, $Options);
  • 46. GET INSTANCE INFO // Get the Id and Availability Zone of the instance $Instances = $Res->body->instancesSet; $InstanceId = $Instances->item->instanceId; $AvailabilityZone = $Instances->item->placement ->availabilityZone; print("Launched instance ${InstanceId} " . "in availability zone ${AvailabilityZone}.n");
  • 47. ALLOCATE ELASTIC IP ADDRESS // Allocate an Elastic IP address $Res = $EC2->allocate_address(); if (!$Res->isOK()) { exit("Could not allocate public IP address.n"); } // Get the allocated Elastic IP address $PublicIP = $Res->body->publicIp; print("Assigned IP address ${PublicIP}.n");
  • 48. ATTACH IP ADDRESS TO INSTANCE // Associate the Elastic IP address with the instance $Res = $EC2->associate_address($InstanceId, $PublicIP); if (!$Res->IsOK()) { exit("Could not associate IP address ${PublicIP} " . "with instance ${InstanceId}.n"); } print("Associated IP address ${PublicIP} " . "with instance ${InstanceId}.n");
  • 49. CREATE 2 EBS VIRTUAL DISK VOLUMES // Create two EBS volumes in the instance's availability zone $Res1 = $EC2->create_volume(10, $AvailabilityZone); $Res2 = $EC2->create_volume(100, $AvailabilityZone); if (!$Res1->isOK() || !$Res2->isOK()) { exit("Could not create EBS volumes.n"); } // Get the volume Ids $VolumeId1 = $Res1->body->volumeId; $VolumeId2 = $Res2->body->volumeId;
  • 50. ATTACH THE VOLUMES TO THE INSTANCE $Res1 = $EC2->attach_volume($VolumeId1, $InstanceId, '/dev/sdf'); $Res2 = $EC2->attach_volume($VolumeId2, $InstanceId, '/dev/sdg'); if (!$Res1->isOK() || !$Res2->isOK()) { exit("Could not attach EBS volumes " . "${VolumeId1} and ${VolumeId2} " . "to instance ${InstanceId}.n"); }
  • 51. NOW HIRING • Northern Virginia: – SDE – Virtual Private Cloud – Front End Web Developer – Virtual Private Cloud • Seattle: – SDE – Program Management – Developer Support • More Info: – AWS booth in lobby – http://aws.amazon.com/jobs
  • 52. Q & A
  • 53. • Amazon Web Services: http://aws.amazon.com • Virtual Private Cloud: http://aws.amazon.com/vpc • Relational Database Service: http://aws.amazon.com/rds • jbarr@amazon.com • twitter.com/jeffbarr FOR MORE INFORMATION

Notes de l'éditeur

  1. First, it’s useful to provide the context that the way we think about what Amazon.com is, the way we think about it at the highest levels of the Company, is that we have three macro and distinct businesses: our Consumer/Retail business, our Seller business, and our Developer business.
  2. Amazon Web Services is a set of primitive building blocks to enable developers to build applications and, ultimately, businesses, on our battle-tested infrastructure. So what kinds of building blocks do developers need? First, you need compute resources. The Elastic Compute Cloud, or EC2, allows developers to rent virtual computers, running in our data centers, and pay for them by the hour. Provision as many as you need – 1, 10, 1000, for as long as you need them, and you pay only for what you use (starting at 10 cents/hour). Next, you probably need somewhere to durably store and retrieve data. The Simple Storage Service, is, well, a simple storage service that allows to store and retrieve objects in the cloud using simple put and get API calls. You might need to index and query for that data, or create other structured data that you want to query, which is what we built SimpleDB.
  3. On the application platforms point, good to mention: Microsoft .NET IBM WebSphere Ruby PHP Oracle Fusion Middleware JBoss Also a good place to mention IBM AMIs (bring your own license or pay by the hour)
  4. SimpleDB is a very easy to use database service that can be used for a variety of tasks, including indexing information stored in S3, maintaining access and other types of logs for your applications, and storing all kinds of structured data in a reliable, scalable database. You can see a quick example of how easy SimpleDB is to use. Here’s your classic products table with an item number, description, and other attributes for each product. You can see the queries we’d use to store and retrieve data from SimpleDB. With SimpleDB, the API for putting data into the database is very flexible. I can add as much data as I’d like to each of the attributes for a given product. Querying the database is just as easy. I specify the “Domain” (or table) and the fields on which I’d like to execute the query. In this case, I’d like to obtain all items in the table whose description matches the given parameter.
  5. SQS is an easy to use queueing service. The most typical use case for SQS is to coordinate activity between multiple EC2 instances. Take, for example, a typical web application with a presentation tier, application server or business logic tier, and database tier. You’d typically have multiple EC2 instances on the presentation and application server tiers, which would be working independently to process requests coming to your site. Amazon SQS is a queueing service that can provide the glue between your web server and your application server. The most common setup will involve configuring two queues. The first queue will accept messages from the web server hosted on Amazon EC2. Application servers, also hosted on Amazon EC2, will pluck those messages off the queue, process data based on the contents of the message, and then place the equivalent of an “I’m done! Here are the results.” message on the second queue. The web server would then pluck the message off the second queue and return results back to the client that made the initial request. In this way, your Amazon EC2 instances can grow or shrink, startup and fail with impunity, while you can rest assured that all of your data processing happens reliably.