SlideShare a Scribd company logo
1 of 112
Taking advantage of the Amazon Web Services Family @Ben_Hall Ben@BenHall.me.uk Blog.BenHall.me.uk MaydayHQ.com
Agenda S3 EC2 Structuring applications Others
What is AWS? The way most startups survive Collection of services each solving one small part of the overall problem Platform / Foundation
http://www.cargolaw.com/images/disaster2007.Ital.Florida7.GIF Amazon S3Amazon Simple Storage Service
Amazon Product ImagesTwitter Profile ImagesSmugMug – 10tb each monthDropboxCurrently has 449 billion files
AppHarbour’s (or any PaaS) storage recommendation
Designed to provide 99.99% durability and 99.99% availability  Designed to provide 99.999999999% durability and 99.99% availability Also versioning allows you to preserve, retrieve, and restore  every version of every object stored in your bucket
How to access files?
Bucket Name https://s3.amazonaws.com/DDDNorth_Demo_1/ ddd_north_s3.html File Name
REST API GET DELETE PUT http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html
GET / HTTP/1.1 Host: BucketName.s3.amazonaws.com Authorization: AWS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= <?xml version="1.0" encoding="UTF-8"?> <ListBucketResultxmlns="http://s3.amazonaws.com/doc/2006-03-01">     <Name>bucket</Name>     <Prefix/>     <Marker/>     <MaxKeys>1000</MaxKeys>     <IsTruncated>false</IsTruncated>     <Contents> <Key>my-image.jpg</Key>         <LastModified>2009-10-12T17:50:30.000Z</LastModified>         <ETag>&quot;fba9dede5f27731c9771645a39863328&quot;</ETag>         <Size>434234</Size>         <StorageClass>STANDARD</StorageClass>         <Owner>             <ID>8a6925ce4a7f21c32aa379004fef</ID>             <DisplayName>mtd@amazon.com</DisplayName>         </Owner>     </Contents> </ListBucketResult>
PUT /my-image.jpg HTTP/1.1 Host: myBucket.s3.amazonaws.com Authorization: AWS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain Content-Length: 11434 Expect: 100-continue HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-amz-request-id: 0A49CE4060975EAC x-amz-version-id: 43jfkodU8493jnFJD9fjj3HHNVfdsQUIFDNsidf038jfdsjGFDSIRp Date: Wed, 12 Oct 2009 17:50:00 GMT ETag: "fbacf535f27731c9771645a39863328" Content-Length: 0 Connection: close Server: AmazonS3
.NET SDK using (AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretKey)) { MemoryStreamms = new MemoryStream(); PutObjectRequest request = new PutObjectRequest(); request.WithBucketName("Demo_1")     .WithCannedACL(S3CannedACL.PublicRead)     .WithKey("image.jpg").InputStream = file.InputStream;     S3Response response = client.PutObject(request); } http://aws.amazon.com/sdkfornet/
.NET SDK ListObjectsRequest request = new ListObjectsRequest(); request.BucketName = bucketName; using (ListObjectsResponse response = client.ListObjects(request)) { foreach (S3Object entry in response.S3Objects)     { Console.WriteLine("key = {0} size = {1}", entry.Key, entry.Size);     } }
https://s3.amazonaws.com/DDDNorth_Demo_1/ ddd_north_s3.html?torrent S3 Torrent Support
CloudFront Video Streaming
Index Page
Bucket Name
date = Time.now.strftime("%a, %d %b %Y %H:%M:%S %Z") digest = Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha1'), aws_secret, date)).strip uri = URI.parse("https://cloudfront.amazonaws.com/2010-08-01/distribution/#{distribution}/invalidation") req = Net::HTTP::Post.new(uri.path) req.initialize_http_header({   'x-amz-date' => date,   'Content-Type' => 'text/xml',   'Authorization' => "AWS %s:%s" % [aws_account, digest] }) req.body = "<InvalidationBatch><Path>" + path + "</Path><CallerReference>ref_#{Time.now.utc.to_i}</CallerReference></InvalidationBatch>" http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE res = http.request(req)
WARNING HTTPS and CNAMEs are not supported S3 bucket name must only contain lower case alphanumeric characters, periods, or hyphens Bucket names must be unique across entire AWS You can’t rename – Delete + Recreate (which costs)
Cost Data transfer from EC2 machines in same region are free AppHarbour runs out of US East Region, meaning transfers to US Standard are free.
1gb stored, 10gb downloaded via 1,000,000 requests == $2.22 per month 1gb stored, 1tb downloaded via 10,000,000 requests == $132.90 per month CloudFront has additional pricing. 10gb = $2 http://calculator.s3.amazonaws.com/calc5.html
Amazon EC2Amazon Elastic compute cloud http://www.flickr.com/photos/clarkk/38817024/
Heroku, AppHarbouretcZynga > 12,000 nodesAmazon SilkAmazon
Built on top of XEN virtualisationYes, you could run a private EC2
Be safe
Instance Types On demand Reserved Spot
Spot Instance Bidding Think Differently. Design a system capable of supporting it Save!
Instance Sizes 32bit – micro, small, medium 64bit – Extra-large > Super computer – GPU 1 ECU (biggest == 20) == 2007 Xeon processor / 1.0-1.2 GHz 2007 Opteron
Availability Zones Availability Zones are distinct locations that are engineered to be insulated from failures in other Availability Zone 2-3 per region.
Regions US East (Northern Virginia) US West (Northern California) EU (Ireland) Asia Pacific (Singapore) Asia Pacific (Tokyo)
Business / Technical Decisions Geo-location It’s a data centre, it can die. Scale across multiple regions for maximum up-time.
EBS & Snapshots EBS == Hard drive. Can increase volume size, but means taking machine down.  Snapshots == Backup. Can attach to new / different AMI
Keypairs BE CAREFUL – DON’T LOSE THE FILE Used to generate password / SSH auth What do you do if you lose the key pair? Storing in AMI? Encrypt with key passed in via user-data
User Data Install-lamp #!/bin/bash set -e -x export DEBIAN_FRONTEND=noninteractive apt-get update && apt-get upgrade -y tasksel install lamp-server echo "Please remember to set the MySQL root password!” ec2-run-instances --key KEYPAIR --user-data-file install-lamp ami-bf5eb9d6
AMI Amazon Machine Image Official base snapshots or private AMI images allow you to spin up multiple machines. Great when combined with Spot Pricing. Before creating AMI for Windows: Disable SysPrep (BundleConfig.xml) Disable machine renaming (Config.xml)
CloudWatch Alerts
Auto-scaling Spin up / down nodes
Starting machines via cmd
ec2-describe-images -o amazon IMAGE   ami-23b6534a    ec2-public-images/fedora-core4-apache.manifest.xml IMAGE   ami-25b6534c    ec2-public-images/fedora-core4-apache-mysql.manifest.xml IMAGE   ami-26b6534f    ec2-public-images/developer-image.manifest.xml IMAGE   ami-2bb65342    ec2-public-images/getting-started.manifest.xml ec2-run-instances ami-23b6534a -k windows RESERVATION     r-xxxxxxxxxxxxxxxxxxxx    default INSTANCE        i-xxxxxxxx      ami-23b6534a                    pending windows ec2-describe-instances RESERVATION     r-xxxxxxxxxxxxxxxxxxxx    default INSTANCE        i-xxxxxxxx      ami-23b6534a    ec2-xx-xxx-xx-xx.compute-1.amazonaws.com ec2-terminate-instances i-xxxxxxxx
Via .NET SDK
public void LaunchEc2ImageWithSqlServerInstalled() { RunningInstancetargetMachineToStart = null;     string ami = "ami-e0916389"; varrunInstancesRequest = new RunInstancesRequest(); runInstancesRequest.ImageId = ami; runInstancesRequest.MinCount = 1; runInstancesRequest.MaxCount = 1; runInstancesRequest.KeyName = "aws"; runInstancesRequest.InstanceType = "t1.micro"; runInstancesRequest.Placement = new Placement { AvailabilityZone = "us-east-1b" }; var response = _ec2.RunInstances(runInstancesRequest); foreach (var instance in response.RunInstancesResult.Reservation.RunningInstance)     {          if(instance.InstanceState.Name == "pending") //NEED TO WAIT FOR "Running” targetMachineToStart = WaitUntilInstanceStateIs(instance.InstanceId, "running");      } }
DescribeInstancesRequest request = new DescribeInstancesRequest(); varresponse = _ec2.DescribeInstances(request); varcount = response.DescribeInstancesResult.Reservation.Count; foreach(var reservation in response.DescribeInstancesResult.Reservation) { var instance = reservation.RunningInstance[0]; }
public string GetPassword(string instanceId) {     string rsaPrivateKey;     using (StreamReader reader = new StreamReader(pathToPem))     { rsaPrivateKey = reader.ReadToEnd();     } GetPasswordDataResult result = _ec2.GetPasswordData(new GetPasswordDataRequest()         .WithInstanceId(instanceId)).GetPasswordDataResult; var pass = result.GetDecryptedPassword(rsaPrivateKey); Console.WriteLine(pass);     return pass; }
WinRM string path = “C:indowsystem32inrs.exe” string args = string.Format("-r:{0} -u:Administrator -p:{1} quot;{2}quot;", machine.Url, GetPassword(machine.InstanceId), cmd); Process.start(path, args); Remotely connects to EC2 machine, executes command.
List<String> commands = new List<string>(); commands.Add(@"New-Item c:mp -type directory -ErrorActionSilentlyContinue"); commands.Add(@"$memcached_url = ""http://www.meerkatalyst.com/beta/agent.zip"""); commands.Add(@"$memcached_path = ""c:mpeerkatalyst_agent.zip"""); commands.Add(@"$zip_url = ""https://s3.amazonaws.com/meerkatalyst-us/utilities/unzip.exe"""); commands.Add(@"$zip_path = ""c:mpnzip.exe"""); commands.Add("$client = new-object System.Net.WebClient"); commands.Add("$client.DownloadFile( $memcached_url, $memcached_path )"); commands.Add("$client.DownloadFile( $zip_url, $zip_path )"); commands.Add(@"invoke-expression ""C:mpnzip.exe -o C:mpeerkatalyst_agent.zip -d C:mpgent"""); StringBuilder builder = new StringBuilder(); foreach (var command in commands) builder.AppendFormat("echo {0} >> script.ps1 && ", command); cmd = “string.Format("{0} powershell -File script.ps1 && del script.ps1 && {1} &", builder, pathToAgent)” var output = ExecuteRemoteCommand(cmd, machine); //ask me for the code
WARNINGS http://www.flickr.com/photos/gagilas/2659695352/
Temp Data It will get deleted on reboots. RabbitMQ + Hbase both used temp locations as default storage.  Reboot == lost work.  Takes a long time to debug.
Sharepoint / SQL Server + Rename Microsoft products generally don’t like a machine to be renamed. Reboots == rename as it’s based on IP. Return it off as described earlier.
Regions, Zones. They can go down.
Unofficial AMIs They are configured by someone else… Who knows what they have done.
Double prices if you want SQL Server More of less anyway. Large	$0.48 per hour	 => $1.08 per hour Extra Large	$0.96 per hour	 => $1.56 per hour
Architecture & AWSApplication considerations for AWS  http://www.flickr.com/photos/wouterpostma/695850212/
Configuration Self discovery Use DNS + Load Balancers to reduce config changes  Internal DNS on EC2? HAProxy Store in external system which can update / replicate to other nodes.
Hybrid Cloud Providers One won’t fit all Optimize for use-case Best of breed CAN BE REALLY EXPENSIVE + COMPLEX!
Think! At some point and scale, the cloud doesn’t make sense.  Zynga has around 12,000 EC2 nodes Once game is proven, moved to private cloud. EC2 for experiments and additional load.
Small, isolated components Design system for scale Design system for failure Message Queues are great! Use them. Keep everything async
User’s Browser Javascript File  via Lighttpd ELB Single EC2 Machine Easily add additional nodes to ELB User’s Browser Javascript File  via S3 CloudFront
Heroku + NodeJS Data Collection Ruby Data Processor RabbitMQ Queue HBase Data Storage Heroku + Rails UI Single EC2 Machine Three separate components, designed to scale each individually when required. Deployment, Scale, Cost
Chaos Monkey Kill random machines. See what breaks, fix it. Amazon will do it without telling you, be prepared and plan ahead! http://techblog.netflix.com/2010/12/5-lessons-weve-learned-using-aws.html
Other AWS ServicesElasticCache, MapReduce, SQS, SNS, etc http://www.flickr.com/photos/kky/704056791/
Elastic Beanstalk – Easily deploy Java based applications + Stack VPC – virtual network topology Elastic MapReduce – Hosted Hadoop CloudFormation – Similar to Chef / Puppet. Start group of machines RDS – Hosted MySQL / Oracle ElastiCache – Hosted Memcached SNS - Simple Notification Service. Similar to a queue IAM – Sharing access to AWS with a team
Amazon Mechanical Turk EC2 for Humans! Crowdsourcing work Grockit used it to verify content - http://mechanicalturk.typepad.com/blog/2011/10/editors-note-ari-bader-natal-is-the-chief-learning-architect-at-grockit-the-fast-growing-online-social-learning-startup-bac.html “Usability Test on www.somewebsite.com #1148” - $10 “Click on google +1 for my website - $0.01”
http://awsdocs.s3.amazonaws.com/toolkit-visualstudio/latest/aws-tkv-ug.pdf AWS Toolkit for Visual Studio http://aws.amazon.com/visualstudio/
Summary http://www.flickr.com/photos/leon_homan/2856628778/
Amazon Web Services Fast Cheap Flexible http://highscalability.com/
THANK YOU! @Ben_Hall Ben@BenHall.me.uk Blog.BenHall.me.uk

More Related Content

What's hot

Deploy Mediawiki Using FIWARE Lab Facilities
Deploy Mediawiki Using FIWARE Lab FacilitiesDeploy Mediawiki Using FIWARE Lab Facilities
Deploy Mediawiki Using FIWARE Lab FacilitiesFIWARE
 
ARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CIARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CICosmin Poieana
 
Networking and Data Access with Eqela
Networking and Data Access with EqelaNetworking and Data Access with Eqela
Networking and Data Access with Eqelajobandesther
 
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Adin Ermie
 
Artem Zhurbila - docker clusters (solit 2015)
Artem Zhurbila - docker clusters (solit 2015)Artem Zhurbila - docker clusters (solit 2015)
Artem Zhurbila - docker clusters (solit 2015)Artem Zhurbila
 
DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your TeamGR8Conf
 
Sherlock Homepage - A detective story about running large web services - WebN...
Sherlock Homepage - A detective story about running large web services - WebN...Sherlock Homepage - A detective story about running large web services - WebN...
Sherlock Homepage - A detective story about running large web services - WebN...Maarten Balliauw
 
Rally - Benchmarking_as_a_service - Openstack meetup
Rally - Benchmarking_as_a_service - Openstack meetupRally - Benchmarking_as_a_service - Openstack meetup
Rally - Benchmarking_as_a_service - Openstack meetupAnanth Padmanabhan
 
How to scheduled jobs in a cloudera cluster without oozie
How to scheduled jobs in a cloudera cluster without oozieHow to scheduled jobs in a cloudera cluster without oozie
How to scheduled jobs in a cloudera cluster without oozieTiago SimĂľes
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)Wesley Beary
 
Optimize Is (Not) Bad For You - Rafał Kuć, Sematext Group, Inc.
Optimize Is (Not) Bad For You - Rafał Kuć, Sematext Group, Inc.Optimize Is (Not) Bad For You - Rafał Kuć, Sematext Group, Inc.
Optimize Is (Not) Bad For You - Rafał Kuć, Sematext Group, Inc.Lucidworks
 
Dpilot Source Code With ScreenShots
Dpilot Source Code With ScreenShots Dpilot Source Code With ScreenShots
Dpilot Source Code With ScreenShots DeepAnshu Sharma
 
Source Code for Dpilot
Source Code for Dpilot Source Code for Dpilot
Source Code for Dpilot Nidhi Chauhan
 
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOAltinity Ltd
 
How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2Fernando Lopez Aguilar
 
Build, migrate and deploy apps for any environment with project Hammr , OW2co...
Build, migrate and deploy apps for any environment with project Hammr , OW2co...Build, migrate and deploy apps for any environment with project Hammr , OW2co...
Build, migrate and deploy apps for any environment with project Hammr , OW2co...OW2
 
Appium Automation with Kotlin
Appium Automation with KotlinAppium Automation with Kotlin
Appium Automation with KotlinRapidValue
 
Set up Hadoop Cluster on Amazon EC2
Set up Hadoop Cluster on Amazon EC2Set up Hadoop Cluster on Amazon EC2
Set up Hadoop Cluster on Amazon EC2IMC Institute
 

What's hot (19)

Deploy Mediawiki Using FIWARE Lab Facilities
Deploy Mediawiki Using FIWARE Lab FacilitiesDeploy Mediawiki Using FIWARE Lab Facilities
Deploy Mediawiki Using FIWARE Lab Facilities
 
ARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CIARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CI
 
Networking and Data Access with Eqela
Networking and Data Access with EqelaNetworking and Data Access with Eqela
Networking and Data Access with Eqela
 
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
 
Artem Zhurbila - docker clusters (solit 2015)
Artem Zhurbila - docker clusters (solit 2015)Artem Zhurbila - docker clusters (solit 2015)
Artem Zhurbila - docker clusters (solit 2015)
 
DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your Team
 
Sherlock Homepage - A detective story about running large web services - WebN...
Sherlock Homepage - A detective story about running large web services - WebN...Sherlock Homepage - A detective story about running large web services - WebN...
Sherlock Homepage - A detective story about running large web services - WebN...
 
Rally - Benchmarking_as_a_service - Openstack meetup
Rally - Benchmarking_as_a_service - Openstack meetupRally - Benchmarking_as_a_service - Openstack meetup
Rally - Benchmarking_as_a_service - Openstack meetup
 
How to scheduled jobs in a cloudera cluster without oozie
How to scheduled jobs in a cloudera cluster without oozieHow to scheduled jobs in a cloudera cluster without oozie
How to scheduled jobs in a cloudera cluster without oozie
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
 
Optimize Is (Not) Bad For You - Rafał Kuć, Sematext Group, Inc.
Optimize Is (Not) Bad For You - Rafał Kuć, Sematext Group, Inc.Optimize Is (Not) Bad For You - Rafał Kuć, Sematext Group, Inc.
Optimize Is (Not) Bad For You - Rafał Kuć, Sematext Group, Inc.
 
Dpilot Source Code With ScreenShots
Dpilot Source Code With ScreenShots Dpilot Source Code With ScreenShots
Dpilot Source Code With ScreenShots
 
Source Code for Dpilot
Source Code for Dpilot Source Code for Dpilot
Source Code for Dpilot
 
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
 
How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2
 
Angular2 rxjs
Angular2 rxjsAngular2 rxjs
Angular2 rxjs
 
Build, migrate and deploy apps for any environment with project Hammr , OW2co...
Build, migrate and deploy apps for any environment with project Hammr , OW2co...Build, migrate and deploy apps for any environment with project Hammr , OW2co...
Build, migrate and deploy apps for any environment with project Hammr , OW2co...
 
Appium Automation with Kotlin
Appium Automation with KotlinAppium Automation with Kotlin
Appium Automation with Kotlin
 
Set up Hadoop Cluster on Amazon EC2
Set up Hadoop Cluster on Amazon EC2Set up Hadoop Cluster on Amazon EC2
Set up Hadoop Cluster on Amazon EC2
 

Viewers also liked

Continuous deployment
Continuous deploymentContinuous deployment
Continuous deploymentBen Hall
 
The Art Of Building Prototypes and MVPs
The Art Of Building Prototypes and MVPsThe Art Of Building Prototypes and MVPs
The Art Of Building Prototypes and MVPsBen Hall
 
Testing ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NETTesting ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NETBen Hall
 
Lessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containersLessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containersBen Hall
 
What Designs Need To Know About Visual Design
What Designs Need To Know About Visual DesignWhat Designs Need To Know About Visual Design
What Designs Need To Know About Visual DesignBen Hall
 
Node.js Anti Patterns
Node.js Anti PatternsNode.js Anti Patterns
Node.js Anti PatternsBen Hall
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsBen Hall
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Ben Hall
 
Kata - Devops CDSummit LA 2015
Kata - Devops CDSummit LA 2015 Kata - Devops CDSummit LA 2015
Kata - Devops CDSummit LA 2015 John Willis
 
Learning Patterns for the Overworked Developer
Learning Patterns for the Overworked DeveloperLearning Patterns for the Overworked Developer
Learning Patterns for the Overworked DeveloperBen Hall
 
Alibaba Cloud Conference 2016 - Docker Open Source
Alibaba Cloud Conference   2016 - Docker Open Source Alibaba Cloud Conference   2016 - Docker Open Source
Alibaba Cloud Conference 2016 - Docker Open Source John Willis
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Ben Hall
 
Implementing Google's Material Design Guidelines
Implementing Google's Material Design GuidelinesImplementing Google's Material Design Guidelines
Implementing Google's Material Design GuidelinesBen Hall
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsBen Hall
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Ben Hall
 
Lessons from running potentially malicious code inside containers
Lessons from running potentially malicious code inside containersLessons from running potentially malicious code inside containers
Lessons from running potentially malicious code inside containersBen Hall
 
The How and Why of Windows containers
The How and Why of Windows containersThe How and Why of Windows containers
The How and Why of Windows containersBen Hall
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionBen Hall
 
How I learned to stop worrying and love the cloud
How I learned to stop worrying and love the cloudHow I learned to stop worrying and love the cloud
How I learned to stop worrying and love the cloudShlomo Swidler
 
Deploying applications to Windows Server 2016 and Windows Containers
Deploying applications to Windows Server 2016 and Windows ContainersDeploying applications to Windows Server 2016 and Windows Containers
Deploying applications to Windows Server 2016 and Windows ContainersBen Hall
 

Viewers also liked (20)

Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
The Art Of Building Prototypes and MVPs
The Art Of Building Prototypes and MVPsThe Art Of Building Prototypes and MVPs
The Art Of Building Prototypes and MVPs
 
Testing ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NETTesting ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NET
 
Lessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containersLessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containers
 
What Designs Need To Know About Visual Design
What Designs Need To Know About Visual DesignWhat Designs Need To Know About Visual Design
What Designs Need To Know About Visual Design
 
Node.js Anti Patterns
Node.js Anti PatternsNode.js Anti Patterns
Node.js Anti Patterns
 
Real World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js ApplicationsReal World Lessons on the Pain Points of Node.js Applications
Real World Lessons on the Pain Points of Node.js Applications
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
 
Kata - Devops CDSummit LA 2015
Kata - Devops CDSummit LA 2015 Kata - Devops CDSummit LA 2015
Kata - Devops CDSummit LA 2015
 
Learning Patterns for the Overworked Developer
Learning Patterns for the Overworked DeveloperLearning Patterns for the Overworked Developer
Learning Patterns for the Overworked Developer
 
Alibaba Cloud Conference 2016 - Docker Open Source
Alibaba Cloud Conference   2016 - Docker Open Source Alibaba Cloud Conference   2016 - Docker Open Source
Alibaba Cloud Conference 2016 - Docker Open Source
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
Implementing Google's Material Design Guidelines
Implementing Google's Material Design GuidelinesImplementing Google's Material Design Guidelines
Implementing Google's Material Design Guidelines
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016
 
Lessons from running potentially malicious code inside containers
Lessons from running potentially malicious code inside containersLessons from running potentially malicious code inside containers
Lessons from running potentially malicious code inside containers
 
The How and Why of Windows containers
The How and Why of Windows containersThe How and Why of Windows containers
The How and Why of Windows containers
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
How I learned to stop worrying and love the cloud
How I learned to stop worrying and love the cloudHow I learned to stop worrying and love the cloud
How I learned to stop worrying and love the cloud
 
Deploying applications to Windows Server 2016 and Windows Containers
Deploying applications to Windows Server 2016 and Windows ContainersDeploying applications to Windows Server 2016 and Windows Containers
Deploying applications to Windows Server 2016 and Windows Containers
 

Similar to Taking advantage of the Amazon Web Services (AWS) Family

How to build a Citrix infrastructure on AWS
How to build a Citrix infrastructure on AWSHow to build a Citrix infrastructure on AWS
How to build a Citrix infrastructure on AWSDenis Gundarev
 
Big Data Tools in AWS
Big Data Tools in AWSBig Data Tools in AWS
Big Data Tools in AWSShu-Jeng Hsieh
 
Scale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App FabricScale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App FabricChris Dufour
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingFelix Meschberger
 
Building Your First Big Data Application on AWS
Building Your First Big Data Application on AWSBuilding Your First Big Data Application on AWS
Building Your First Big Data Application on AWSAmazon Web Services
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)Igor Bronovskyy
 
Docker & ECS: Secure Nearline Execution
Docker & ECS: Secure Nearline ExecutionDocker & ECS: Secure Nearline Execution
Docker & ECS: Secure Nearline ExecutionBrennan Saeta
 
Building Your First Big Data Application on AWS
Building Your First Big Data Application on AWSBuilding Your First Big Data Application on AWS
Building Your First Big Data Application on AWSAmazon Web Services
 
Viktor Tsykunov: Azure Machine Learning Service
Viktor Tsykunov: Azure Machine Learning ServiceViktor Tsykunov: Azure Machine Learning Service
Viktor Tsykunov: Azure Machine Learning ServiceLviv Startup Club
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSYevgeniy Brikman
 
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 202010 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020Matt Raible
 
[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade ServerlessKatyShimizu
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade ServerlessKatyShimizu
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersBurr Sutter
 
General Principles of Web Security
General Principles of Web SecurityGeneral Principles of Web Security
General Principles of Web Securityjemond
 
Programming Amazon Web Services for Beginners (1)
Programming Amazon Web Services for Beginners (1)Programming Amazon Web Services for Beginners (1)
Programming Amazon Web Services for Beginners (1)Markus Klems
 
Scaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersScaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersoazabir
 
Systems Bioinformatics Workshop Keynote
Systems Bioinformatics Workshop KeynoteSystems Bioinformatics Workshop Keynote
Systems Bioinformatics Workshop KeynoteDeepak Singh
 
Setting Up Amazon EC2 server
Setting Up Amazon EC2 serverSetting Up Amazon EC2 server
Setting Up Amazon EC2 serverTahsin Hasan
 

Similar to Taking advantage of the Amazon Web Services (AWS) Family (20)

How to build a Citrix infrastructure on AWS
How to build a Citrix infrastructure on AWSHow to build a Citrix infrastructure on AWS
How to build a Citrix infrastructure on AWS
 
Big Data Tools in AWS
Big Data Tools in AWSBig Data Tools in AWS
Big Data Tools in AWS
 
Scale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App FabricScale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App Fabric
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with Sling
 
Building Your First Big Data Application on AWS
Building Your First Big Data Application on AWSBuilding Your First Big Data Application on AWS
Building Your First Big Data Application on AWS
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
Docker & ECS: Secure Nearline Execution
Docker & ECS: Secure Nearline ExecutionDocker & ECS: Secure Nearline Execution
Docker & ECS: Secure Nearline Execution
 
Building Your First Big Data Application on AWS
Building Your First Big Data Application on AWSBuilding Your First Big Data Application on AWS
Building Your First Big Data Application on AWS
 
Viktor Tsykunov: Azure Machine Learning Service
Viktor Tsykunov: Azure Machine Learning ServiceViktor Tsykunov: Azure Machine Learning Service
Viktor Tsykunov: Azure Machine Learning Service
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECS
 
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 202010 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
 
[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
 
AWS Java SDK @ scale
AWS Java SDK @ scaleAWS Java SDK @ scale
AWS Java SDK @ scale
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java Developers
 
General Principles of Web Security
General Principles of Web SecurityGeneral Principles of Web Security
General Principles of Web Security
 
Programming Amazon Web Services for Beginners (1)
Programming Amazon Web Services for Beginners (1)Programming Amazon Web Services for Beginners (1)
Programming Amazon Web Services for Beginners (1)
 
Scaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersScaling asp.net websites to millions of users
Scaling asp.net websites to millions of users
 
Systems Bioinformatics Workshop Keynote
Systems Bioinformatics Workshop KeynoteSystems Bioinformatics Workshop Keynote
Systems Bioinformatics Workshop Keynote
 
Setting Up Amazon EC2 server
Setting Up Amazon EC2 serverSetting Up Amazon EC2 server
Setting Up Amazon EC2 server
 

More from Ben Hall

The Art Of Documentation - NDC Porto 2022
The Art Of Documentation - NDC Porto 2022The Art Of Documentation - NDC Porto 2022
The Art Of Documentation - NDC Porto 2022Ben Hall
 
The Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source ProjectsThe Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source ProjectsBen Hall
 
Three Years of Lessons Running Potentially Malicious Code Inside Containers
Three Years of Lessons Running Potentially Malicious Code Inside ContainersThree Years of Lessons Running Potentially Malicious Code Inside Containers
Three Years of Lessons Running Potentially Malicious Code Inside ContainersBen Hall
 
Containers without docker
Containers without dockerContainers without docker
Containers without dockerBen Hall
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetesBen Hall
 
The Art of Documentation and Readme.md for Open Source Projects
The Art of Documentation and Readme.md for Open Source ProjectsThe Art of Documentation and Readme.md for Open Source Projects
The Art of Documentation and Readme.md for Open Source ProjectsBen Hall
 
How Secure Are Docker Containers?
How Secure Are Docker Containers?How Secure Are Docker Containers?
How Secure Are Docker Containers?Ben Hall
 
The Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud NativeThe Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud NativeBen Hall
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceBen Hall
 
The art of documentation and readme.md
The art of documentation and readme.mdThe art of documentation and readme.md
The art of documentation and readme.mdBen Hall
 
Experimenting and Learning Kubernetes and Tensorflow
Experimenting and Learning Kubernetes and TensorflowExperimenting and Learning Kubernetes and Tensorflow
Experimenting and Learning Kubernetes and TensorflowBen Hall
 
Running .NET on Docker
Running .NET on DockerRunning .NET on Docker
Running .NET on DockerBen Hall
 
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationReal World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationBen Hall
 
Tips on solving E_TOO_MANY_THINGS_TO_LEARN with Kubernetes
Tips on solving E_TOO_MANY_THINGS_TO_LEARN with KubernetesTips on solving E_TOO_MANY_THINGS_TO_LEARN with Kubernetes
Tips on solving E_TOO_MANY_THINGS_TO_LEARN with KubernetesBen Hall
 
Real World Lessons On The Anti-Patterns of Node.JS
Real World Lessons On The Anti-Patterns of Node.JSReal World Lessons On The Anti-Patterns of Node.JS
Real World Lessons On The Anti-Patterns of Node.JSBen Hall
 

More from Ben Hall (15)

The Art Of Documentation - NDC Porto 2022
The Art Of Documentation - NDC Porto 2022The Art Of Documentation - NDC Porto 2022
The Art Of Documentation - NDC Porto 2022
 
The Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source ProjectsThe Art Of Documentation for Open Source Projects
The Art Of Documentation for Open Source Projects
 
Three Years of Lessons Running Potentially Malicious Code Inside Containers
Three Years of Lessons Running Potentially Malicious Code Inside ContainersThree Years of Lessons Running Potentially Malicious Code Inside Containers
Three Years of Lessons Running Potentially Malicious Code Inside Containers
 
Containers without docker
Containers without dockerContainers without docker
Containers without docker
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
The Art of Documentation and Readme.md for Open Source Projects
The Art of Documentation and Readme.md for Open Source ProjectsThe Art of Documentation and Readme.md for Open Source Projects
The Art of Documentation and Readme.md for Open Source Projects
 
How Secure Are Docker Containers?
How Secure Are Docker Containers?How Secure Are Docker Containers?
How Secure Are Docker Containers?
 
The Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud NativeThe Challenges of Becoming Cloud Native
The Challenges of Becoming Cloud Native
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container Service
 
The art of documentation and readme.md
The art of documentation and readme.mdThe art of documentation and readme.md
The art of documentation and readme.md
 
Experimenting and Learning Kubernetes and Tensorflow
Experimenting and Learning Kubernetes and TensorflowExperimenting and Learning Kubernetes and Tensorflow
Experimenting and Learning Kubernetes and Tensorflow
 
Running .NET on Docker
Running .NET on DockerRunning .NET on Docker
Running .NET on Docker
 
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationReal World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS Application
 
Tips on solving E_TOO_MANY_THINGS_TO_LEARN with Kubernetes
Tips on solving E_TOO_MANY_THINGS_TO_LEARN with KubernetesTips on solving E_TOO_MANY_THINGS_TO_LEARN with Kubernetes
Tips on solving E_TOO_MANY_THINGS_TO_LEARN with Kubernetes
 
Real World Lessons On The Anti-Patterns of Node.JS
Real World Lessons On The Anti-Patterns of Node.JSReal World Lessons On The Anti-Patterns of Node.JS
Real World Lessons On The Anti-Patterns of Node.JS
 

Recently uploaded

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vĂĄzquez
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 

Recently uploaded (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 

Taking advantage of the Amazon Web Services (AWS) Family

  • 1. Taking advantage of the Amazon Web Services Family @Ben_Hall Ben@BenHall.me.uk Blog.BenHall.me.uk MaydayHQ.com
  • 2. Agenda S3 EC2 Structuring applications Others
  • 3. What is AWS? The way most startups survive Collection of services each solving one small part of the overall problem Platform / Foundation
  • 4.
  • 6. Amazon Product ImagesTwitter Profile ImagesSmugMug – 10tb each monthDropboxCurrently has 449 billion files
  • 7. AppHarbour’s (or any PaaS) storage recommendation
  • 8.
  • 9.
  • 10. Designed to provide 99.99% durability and 99.99% availability Designed to provide 99.999999999% durability and 99.99% availability Also versioning allows you to preserve, retrieve, and restore every version of every object stored in your bucket
  • 11.
  • 12. How to access files?
  • 14.
  • 15.
  • 16. REST API GET DELETE PUT http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html
  • 17. GET / HTTP/1.1 Host: BucketName.s3.amazonaws.com Authorization: AWS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= <?xml version="1.0" encoding="UTF-8"?> <ListBucketResultxmlns="http://s3.amazonaws.com/doc/2006-03-01"> <Name>bucket</Name> <Prefix/> <Marker/> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>my-image.jpg</Key> <LastModified>2009-10-12T17:50:30.000Z</LastModified> <ETag>&quot;fba9dede5f27731c9771645a39863328&quot;</ETag> <Size>434234</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>8a6925ce4a7f21c32aa379004fef</ID> <DisplayName>mtd@amazon.com</DisplayName> </Owner> </Contents> </ListBucketResult>
  • 18. PUT /my-image.jpg HTTP/1.1 Host: myBucket.s3.amazonaws.com Authorization: AWS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain Content-Length: 11434 Expect: 100-continue HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-amz-request-id: 0A49CE4060975EAC x-amz-version-id: 43jfkodU8493jnFJD9fjj3HHNVfdsQUIFDNsidf038jfdsjGFDSIRp Date: Wed, 12 Oct 2009 17:50:00 GMT ETag: "fbacf535f27731c9771645a39863328" Content-Length: 0 Connection: close Server: AmazonS3
  • 19. .NET SDK using (AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretKey)) { MemoryStreamms = new MemoryStream(); PutObjectRequest request = new PutObjectRequest(); request.WithBucketName("Demo_1") .WithCannedACL(S3CannedACL.PublicRead) .WithKey("image.jpg").InputStream = file.InputStream; S3Response response = client.PutObject(request); } http://aws.amazon.com/sdkfornet/
  • 20. .NET SDK ListObjectsRequest request = new ListObjectsRequest(); request.BucketName = bucketName; using (ListObjectsResponse response = client.ListObjects(request)) { foreach (S3Object entry in response.S3Objects) { Console.WriteLine("key = {0} size = {1}", entry.Key, entry.Size); } }
  • 22.
  • 23.
  • 27.
  • 28. date = Time.now.strftime("%a, %d %b %Y %H:%M:%S %Z") digest = Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha1'), aws_secret, date)).strip uri = URI.parse("https://cloudfront.amazonaws.com/2010-08-01/distribution/#{distribution}/invalidation") req = Net::HTTP::Post.new(uri.path) req.initialize_http_header({ 'x-amz-date' => date, 'Content-Type' => 'text/xml', 'Authorization' => "AWS %s:%s" % [aws_account, digest] }) req.body = "<InvalidationBatch><Path>" + path + "</Path><CallerReference>ref_#{Time.now.utc.to_i}</CallerReference></InvalidationBatch>" http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE res = http.request(req)
  • 29. WARNING HTTPS and CNAMEs are not supported S3 bucket name must only contain lower case alphanumeric characters, periods, or hyphens Bucket names must be unique across entire AWS You can’t rename – Delete + Recreate (which costs)
  • 30. Cost Data transfer from EC2 machines in same region are free AppHarbour runs out of US East Region, meaning transfers to US Standard are free.
  • 31. 1gb stored, 10gb downloaded via 1,000,000 requests == $2.22 per month 1gb stored, 1tb downloaded via 10,000,000 requests == $132.90 per month CloudFront has additional pricing. 10gb = $2 http://calculator.s3.amazonaws.com/calc5.html
  • 32.
  • 33. Amazon EC2Amazon Elastic compute cloud http://www.flickr.com/photos/clarkk/38817024/
  • 34. Heroku, AppHarbouretcZynga > 12,000 nodesAmazon SilkAmazon
  • 35. Built on top of XEN virtualisationYes, you could run a private EC2
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49. Instance Types On demand Reserved Spot
  • 50. Spot Instance Bidding Think Differently. Design a system capable of supporting it Save!
  • 51.
  • 52.
  • 53. Instance Sizes 32bit – micro, small, medium 64bit – Extra-large > Super computer – GPU 1 ECU (biggest == 20) == 2007 Xeon processor / 1.0-1.2 GHz 2007 Opteron
  • 54. Availability Zones Availability Zones are distinct locations that are engineered to be insulated from failures in other Availability Zone 2-3 per region.
  • 55. Regions US East (Northern Virginia) US West (Northern California) EU (Ireland) Asia Pacific (Singapore) Asia Pacific (Tokyo)
  • 56. Business / Technical Decisions Geo-location It’s a data centre, it can die. Scale across multiple regions for maximum up-time.
  • 57. EBS & Snapshots EBS == Hard drive. Can increase volume size, but means taking machine down. Snapshots == Backup. Can attach to new / different AMI
  • 58.
  • 59.
  • 60. Keypairs BE CAREFUL – DON’T LOSE THE FILE Used to generate password / SSH auth What do you do if you lose the key pair? Storing in AMI? Encrypt with key passed in via user-data
  • 61. User Data Install-lamp #!/bin/bash set -e -x export DEBIAN_FRONTEND=noninteractive apt-get update && apt-get upgrade -y tasksel install lamp-server echo "Please remember to set the MySQL root password!” ec2-run-instances --key KEYPAIR --user-data-file install-lamp ami-bf5eb9d6
  • 62. AMI Amazon Machine Image Official base snapshots or private AMI images allow you to spin up multiple machines. Great when combined with Spot Pricing. Before creating AMI for Windows: Disable SysPrep (BundleConfig.xml) Disable machine renaming (Config.xml)
  • 63.
  • 64.
  • 65.
  • 66.
  • 68. Auto-scaling Spin up / down nodes
  • 69.
  • 71. ec2-describe-images -o amazon IMAGE ami-23b6534a ec2-public-images/fedora-core4-apache.manifest.xml IMAGE ami-25b6534c ec2-public-images/fedora-core4-apache-mysql.manifest.xml IMAGE ami-26b6534f ec2-public-images/developer-image.manifest.xml IMAGE ami-2bb65342 ec2-public-images/getting-started.manifest.xml ec2-run-instances ami-23b6534a -k windows RESERVATION r-xxxxxxxxxxxxxxxxxxxx default INSTANCE i-xxxxxxxx ami-23b6534a pending windows ec2-describe-instances RESERVATION r-xxxxxxxxxxxxxxxxxxxx default INSTANCE i-xxxxxxxx ami-23b6534a ec2-xx-xxx-xx-xx.compute-1.amazonaws.com ec2-terminate-instances i-xxxxxxxx
  • 73. public void LaunchEc2ImageWithSqlServerInstalled() { RunningInstancetargetMachineToStart = null; string ami = "ami-e0916389"; varrunInstancesRequest = new RunInstancesRequest(); runInstancesRequest.ImageId = ami; runInstancesRequest.MinCount = 1; runInstancesRequest.MaxCount = 1; runInstancesRequest.KeyName = "aws"; runInstancesRequest.InstanceType = "t1.micro"; runInstancesRequest.Placement = new Placement { AvailabilityZone = "us-east-1b" }; var response = _ec2.RunInstances(runInstancesRequest); foreach (var instance in response.RunInstancesResult.Reservation.RunningInstance) { if(instance.InstanceState.Name == "pending") //NEED TO WAIT FOR "Running” targetMachineToStart = WaitUntilInstanceStateIs(instance.InstanceId, "running"); } }
  • 74. DescribeInstancesRequest request = new DescribeInstancesRequest(); varresponse = _ec2.DescribeInstances(request); varcount = response.DescribeInstancesResult.Reservation.Count; foreach(var reservation in response.DescribeInstancesResult.Reservation) { var instance = reservation.RunningInstance[0]; }
  • 75. public string GetPassword(string instanceId) { string rsaPrivateKey; using (StreamReader reader = new StreamReader(pathToPem)) { rsaPrivateKey = reader.ReadToEnd(); } GetPasswordDataResult result = _ec2.GetPasswordData(new GetPasswordDataRequest() .WithInstanceId(instanceId)).GetPasswordDataResult; var pass = result.GetDecryptedPassword(rsaPrivateKey); Console.WriteLine(pass); return pass; }
  • 76. WinRM string path = “C:indowsystem32inrs.exe” string args = string.Format("-r:{0} -u:Administrator -p:{1} quot;{2}quot;", machine.Url, GetPassword(machine.InstanceId), cmd); Process.start(path, args); Remotely connects to EC2 machine, executes command.
  • 77. List<String> commands = new List<string>(); commands.Add(@"New-Item c:mp -type directory -ErrorActionSilentlyContinue"); commands.Add(@"$memcached_url = ""http://www.meerkatalyst.com/beta/agent.zip"""); commands.Add(@"$memcached_path = ""c:mpeerkatalyst_agent.zip"""); commands.Add(@"$zip_url = ""https://s3.amazonaws.com/meerkatalyst-us/utilities/unzip.exe"""); commands.Add(@"$zip_path = ""c:mpnzip.exe"""); commands.Add("$client = new-object System.Net.WebClient"); commands.Add("$client.DownloadFile( $memcached_url, $memcached_path )"); commands.Add("$client.DownloadFile( $zip_url, $zip_path )"); commands.Add(@"invoke-expression ""C:mpnzip.exe -o C:mpeerkatalyst_agent.zip -d C:mpgent"""); StringBuilder builder = new StringBuilder(); foreach (var command in commands) builder.AppendFormat("echo {0} >> script.ps1 && ", command); cmd = “string.Format("{0} powershell -File script.ps1 && del script.ps1 && {1} &", builder, pathToAgent)” var output = ExecuteRemoteCommand(cmd, machine); //ask me for the code
  • 79. Temp Data It will get deleted on reboots. RabbitMQ + Hbase both used temp locations as default storage. Reboot == lost work. Takes a long time to debug.
  • 80. Sharepoint / SQL Server + Rename Microsoft products generally don’t like a machine to be renamed. Reboots == rename as it’s based on IP. Return it off as described earlier.
  • 81. Regions, Zones. They can go down.
  • 82.
  • 83. Unofficial AMIs They are configured by someone else… Who knows what they have done.
  • 84.
  • 85.
  • 86.
  • 87. Double prices if you want SQL Server More of less anyway. Large $0.48 per hour => $1.08 per hour Extra Large $0.96 per hour => $1.56 per hour
  • 88.
  • 89. Architecture & AWSApplication considerations for AWS http://www.flickr.com/photos/wouterpostma/695850212/
  • 90. Configuration Self discovery Use DNS + Load Balancers to reduce config changes Internal DNS on EC2? HAProxy Store in external system which can update / replicate to other nodes.
  • 91. Hybrid Cloud Providers One won’t fit all Optimize for use-case Best of breed CAN BE REALLY EXPENSIVE + COMPLEX!
  • 92. Think! At some point and scale, the cloud doesn’t make sense. Zynga has around 12,000 EC2 nodes Once game is proven, moved to private cloud. EC2 for experiments and additional load.
  • 93. Small, isolated components Design system for scale Design system for failure Message Queues are great! Use them. Keep everything async
  • 94. User’s Browser Javascript File via Lighttpd ELB Single EC2 Machine Easily add additional nodes to ELB User’s Browser Javascript File via S3 CloudFront
  • 95. Heroku + NodeJS Data Collection Ruby Data Processor RabbitMQ Queue HBase Data Storage Heroku + Rails UI Single EC2 Machine Three separate components, designed to scale each individually when required. Deployment, Scale, Cost
  • 96. Chaos Monkey Kill random machines. See what breaks, fix it. Amazon will do it without telling you, be prepared and plan ahead! http://techblog.netflix.com/2010/12/5-lessons-weve-learned-using-aws.html
  • 97. Other AWS ServicesElasticCache, MapReduce, SQS, SNS, etc http://www.flickr.com/photos/kky/704056791/
  • 98.
  • 99.
  • 100. Elastic Beanstalk – Easily deploy Java based applications + Stack VPC – virtual network topology Elastic MapReduce – Hosted Hadoop CloudFormation – Similar to Chef / Puppet. Start group of machines RDS – Hosted MySQL / Oracle ElastiCache – Hosted Memcached SNS - Simple Notification Service. Similar to a queue IAM – Sharing access to AWS with a team
  • 101. Amazon Mechanical Turk EC2 for Humans! Crowdsourcing work Grockit used it to verify content - http://mechanicalturk.typepad.com/blog/2011/10/editors-note-ari-bader-natal-is-the-chief-learning-architect-at-grockit-the-fast-growing-online-social-learning-startup-bac.html “Usability Test on www.somewebsite.com #1148” - $10 “Click on google +1 for my website - $0.01”
  • 102. http://awsdocs.s3.amazonaws.com/toolkit-visualstudio/latest/aws-tkv-ug.pdf AWS Toolkit for Visual Studio http://aws.amazon.com/visualstudio/
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 111. Amazon Web Services Fast Cheap Flexible http://highscalability.com/
  • 112. THANK YOU! @Ben_Hall Ben@BenHall.me.uk Blog.BenHall.me.uk

Editor's Notes

  1. Designed to provide 99.999999999% durability and 99.99%
  2. ProgramFiles\\Amazon\\Ec2ConfigSetupEc2ConfigServicesettings.exe
  3. ProgramFiles\\Amazon\\Ec2ConfigSetupEc2ConfigServicesettings.exe
  4. ProgramFiles\\Amazon\\Ec2ConfigSetupEc2ConfigServicesettings.exe
  5. Download and start memcached from S3