SlideShare a Scribd company logo
1 of 82
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS re:Invent
Batch Processing with Containers on AWS
C O N 3 0 4
Zaven Boni
Technical Manager, GoPro
Lee Baker
HERE, Sr. Architect, Highly Automated Driving
Tom Fuller
Principal Solutions Architect, AWS
Jamie Kinney
Principal Product Manager, AWS Batch and HPC
November 30, 2017
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Zaven Boni: Technical Manager, GoPro
Lee Baker: Sr. Architect, Highly Automated Driving, HERE
Tom Fuller: Principal Solutions Architect, AWS
Jamie Kinney: Principal Product Manager, AWS Batch & HPC
Introductions
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Agenda
• Intro to Batch Processing
• Amazon ECS
• Migrating GoPro Plus to Amazon ECS
• AWS Batch: overview and recent launches
• HERE
• Q&A
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What is Batch Computing?
Jobs may have dependencies, making the
sequencing and scheduling of multiple
jobs complex and challenging.
Run jobs asynchronously and automatically
across one or more computers.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Challenges of Running Batch Workloads
• Typically resource intensive
• Time constraint for completion
• Potential impact to concurrent batch jobs
• Scaling infrastructure resources
• Ensuring effective resource utilization and cost savings
• Fragile and unreliable
What Batch Workloads Need
Reliability Easy Development Easy Deployment
High Throughput Low Ops Load Cost Efficiency
Why the Cloud Makes Sense for Batch Workloads
Reliable Scalable Pay as you goInfrastructure as
code
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Why Containers Make Sense for Batch Workloads
• Simple to model
• Polyglot
• Image is the version
• Do one thing well
• You build it, you run it
• Black box
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Options for Batch Workloads on AWS
AWS Batch Amazon ECS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What is Amazon ECS?
Scalable Container
Management
Flexible Container
Placement
Native AWS
Integrations
Extensible by
Design
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
File put into
S3 bucket
Amazon
Simple Queue
Service
Output to S3
bucket
Amazon ECS provisions compute
clusters and schedules tasks based
on demand
Batch worker
task polls
SQS for new
jobs
Queue load is
communicated to
ECS
Containerized
batch worker
processes file
Basic Batch Workflow with ECS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Trigger Batch Processing with AWS Lambda
Amazon ECS
Availability Zone Availability Zone
Container Instance
AutoScaling Group
Task A
AWS Lambda
Amazon
S3 Bucket
(Source)
ecs:RunTask
Amazon
S3 Bucket
(Target)
Amazon
S3 Bucket
Object
Amazon
CloudWatch
AWS CloudTrail
Container Instance
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Fleet of Workers with ECS with SQS
Amazon ECS
Availability Zone Availability Zone
SQS queue
Container Instance Container Instance
AutoScaling Group
Task A
AWS Lambda
Amazon
S3
DynamoDB
Amazon
Kinesis
ecs:RunTask
Amazon
CloudWatch
AWS CloudTrail
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Long-Running Batch Jobs
• Utilize Spot Instances
• EC2 Spot Blocks for
Defined-Duration
Workloads
• ECS event stream for
CloudWatch Events
• Service Scaling and
Monitoring
Amazon ECS
Availability Zone Availability Zone
Container Instance Container Instance
AutoScaling Group
Task A Task B
Task C
Amazon
CloudWatch
AWS CloudTrail
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Get the Best Value for EC2 Capacity – Spot
Instances
• Since Spot instances typically cost 50-90%
less than On-Demand, you can increase
your compute capacity by 2-10x within the
same budget
• Or, you could save 50-90% on your
existing workload
• Either way, it’s worth it!
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Best Practices
• Store state and inputs, outputs in S3 or another datastore
• Minimize dependencies between task definitions (should be independent of each other)
• Use Spot Instances and Spot fleets for long-running batch jobs
• Monitor cluster state with ECS APIs
• Share pools of resources
• Auto Scaling, VPC, IAM, scheduled Reserved Instances
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Zaven Boni: Technical Manager, GoPro @opstastic
Migrating GoPro Plus to
ECS
GoPro Plus
PLATFORM COMPONENTS
• Photo and video processing
• User and subscription
management
• Device management
• Web front-ends
• Logging and analytics
• Infrastructure tools and utilities
PLATFORM SCALE
60+
ECS Services
100M
API Requests/day
* and shrinking…
500
EC2 Instances
*
Journey to ECS
CHALLENGES BEFORE ECS
• Custom AMIs
• Long deployment times (AMI creation + EC2 instance boot
time + application startup)
• Multi-step deployments = more places to fail
• One container per EC2 instance!
APPS & MICRO-SERVICES
CHALLENGES BEFORE ECS
Visibility
• Orchestration was a black box
• Scraped 3rd party API to create Cloudwatch custom metrics
Control
• Scaling parameters were abstracted away
• Docker bugs caused silent failures
Cost
• Operational overhead
• Inefficient use of resources
3RD-PARTY QUEUING AND PROCESS MANAGEMENT
EVALUATING ECS
?
EVALUATING ECS
• IAM Roles specific to each service running
on the cluster - principle of least privilege
• Familiar AWS interface and concepts
• Integration with AWS services like
Cloudwatch, ELB
• Enterprise support
• Less cluster maintenance
MEDIA SERVICE ARCHITECTURE
The Migration
INFRASTRUCTURE AS CODE
We Terraformed (almost) everything
• VPCs
• ECS clusters
• SQS queues
• ECS task definitions
• Resource reservations
• Docker image tags
• IAM per-service roles
• Environment variables
• Cloudwatch scaling thresholds
• Deployments?
INFRASTRUCTURE AS CODE
TF config and module structure
• DevOps team maintain base
modules
• Development teams import
modules into their app
codebase
• Terraform definitions for each
app are maintained along with
the app code repository
A few project-specific variables
• Service name
• ECS Task definition
• CPU Allocation
• Hard/Soft memory limits
• Cloudwatch alarm thresholds
• SQS max queue length
RELEASE TAGGING
• Use a semantic versioning scheme to track releases through
pre-prod and production deployments
• Apply the same tag to:
• git commit, Docker image, and ECS task
• Ensures parity between environments
• Rollback with confidence
• Dashboard visibility into the deployed code versions
RELEASE TAGGING
At this point, image is double-
tagged 
DEPLOYMENTS
AUTO SCALING
• ECS cluster scaling (horizontal)
• CPU or Memory Reservation (not Utilization)
• Service scaling (vertical)
• Workers - SQS queue length (ApproximateNumberOfMessagesVisible)
• Services – CPUUtilization or MemoryUtilization
• Scaling down without interrupting tasks
• Container Instance draining
Container Instance Draining
Source: https://aws.amazon.com/blogs/compute/how-to-automate-container-instance-draining-in-amazon-ecs/
Lessons Learned
LESSONS: Scaling
1. Scale with headroom
• Application startup time is a factor
1. Scale on custom metrics
• Number of messages in the queue
LESSONS: Immutability
• Immutable images are good, and…
• App code will still break with incorrect ENV
• App code will still break with environmental differences
• Lesson: post-deployment testing and automated roll-back
LESSONS: IAM
• Access policies can be complex.
• If resource tagging isn’t universal, tough to provide partial access
• Isolate your environments in separate AWS accounts
LESSONS: Infra-As-Code
• Executing terraform apply / cloudformation deploy probably requires
privileges across many AWS services
• Solution: same as before
• When updating a task definition, it’s all too easy to apply an older
container image and unintentionally roll-back
• Solution: wrapper script checks the ECS API for current version
Realized Benefits
OPERATIONAL BENEFITS
• Simplified deploy pipeline
• Greatly reduced deploy time – 30m to 30s
• Predictability and visibility
• Increased efficiency for mixed workloads
• Simplified ops
In summary…
• ECS is the foundation of the GoPro cloud platform
• In two quarters, we migrated 60+ services
• We’re realizing:
• Cost savings, better deploys, stability
• Ops and developer happiness :-)
Thank you!
Zaven Boni
@opstastic
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Jamie Kinney
P r i n c i p a l P r o d u c t M a n a g e r , A W S B a t c h & H P C
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Batch
Fully Managed
No software to install or
servers to manage. AWS
Batch provisions, manages,
and scales your infrastructure
Integrated with AWS
Natively integrated with the AWS
Platform, AWS Batch jobs can
easily and securely interact with
services such as Amazon S3,
Amazon DynamoDB, and
Amazon Rekognition
Cost-optimized
Resource Provisioning
AWS Batch automatically
provisions compute
resources tailored to the
needs of your jobs using
Amazon EC2 and EC2 Spot
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Batch Concepts
• Jobs
• Job Definitions
• Job Queue
• Compute Environments
• Scheduler
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Let’s see how it works!
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
2017 Launches
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Batch Regional Expansion
AWS Batch is available in the following regions:
• us-east-1 (N. Virginia)
• us-east-2 (Ohio)
• us-west-2 (Oregon)
• eu-west-1 (Ireland)
• eu-west-2 (London)
• eu-central-1 (Frankfurt)
• ap-northeast-1 (Tokyo)
• ap-southeast-2 (Sydney)
• ap-southeast-1 (Singapore)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Improved Managed Compute Environments
Custom AMIs:
• Auto-mount EFS and other shared filesystems
• Larger/faster/encrypted EBS
• GPU/FPGA drivers
New instance families
• G3
• F1
• P3
• C5
Faster scale-up/scale-down and per-second billing
Automated tagging of EC2 Spot instances
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Manageability & Performance
• Automated Job Retries: Easily recover from application
errors, hardware failures, or EC2 Spot terminations
• Scheduling throughput: run jobs as short as 5 seconds with
~90% scheduling efficiency
• Native AWS CloudFormation Support for AWS Batch
Resources
• Amazon CloudWatch Events for Job State Transitions
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
HIPAA Eligibility
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Workflows, Pipelines, and Job Dependencies
Jobs can express a dependency on the successful completion of
other jobs or specific elements of an array job.
You can also use AWS Step Functions or other workflow systems to
submit jobs. Flow-based systems submit jobs serially, while DAG-
based systems submit many jobs at once, identifying inter-job
dependencies.
$ aws batch submit-job –depends-on 606b3ad1-aa31-48d8-92ec-f154bfc8215f ...
Job A Job CJob B
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Workflows and Job Dependencies
https://github.com/awslabs/aws-batch-genomics
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
New! Array Jobs - Easily run parallel jobs
Array jobs allow you to run up to 10,000 copies of an application. AWS Batch
creates child jobs for each element in the array.
Array jobs are an efficient way to run:
• Parametric sweeps
• Monte Carlo simulations
• Processing a large collection of objects
Also includes:
• Extended Dependency Model
• Enhancements to Job APIs
Job A Job C
Job B:0
Job B:1
Job B:n
…
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example Array Job Submission
$ aws batch submit-job --job-name BigBatch --job-queue ProdQueue --job-
definition monte-carlo:8 --array-properties “size=10000” ...
{
"jobName": ”BigBatch", "jobId": "350f4655-5d61-40f0-aa0b-03ad787db329”
}
Job Name: BigBatch
Job ID: 350f4655-5d61-40f0-aa0b-03ad787db329
Job Name: BigBatch
Job ID: 350f4655-5d61-40f0-aa0b-03ad787db329:0
Job Name: BigBatch
Job ID: 350f4655-5d61-40f0-aa0b-03ad787db329:1
Job Name: BigBatch
Job ID: 350f4655-5d61-40f0-aa0b-03ad787db329:9999
…
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Array Job Dependency Models
Job Depends on Array Job
“Job-A”
A:0
…
A:1
A:99
“Job-B”
$ aws batch submit-job –cli-input-json file://./Job-A.json
<Job-A.json>
{
"jobName": ”Job-A",
"jobQueue": "ProdQueue",
"jobDefinition": ”Job-A-Definition:1",
”arrayProperties":
{
“copies”: 100
}
}
$ aws batch submit-job –cli-input-json file://./Job-B.json
<Job-B.json>
{
"jobName": ”Job-B",
"jobQueue": "ProdQueue",
"jobDefinition": ”Job-B-Definition:1",
"dependsOn": [
{"jobId": "<job ID for Job A>" }
]
}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Array Job Dependency Models
Array Job depends on Job
“Job-B”
B:0
…
B:1
B:99
“Job-A”
$ aws batch submit-job --job-name Job-A --job-queue ProdQueue --
job-definition job-A-Definition:1
{
"jobName": "sequential-stress-10",
"jobId": "7a6225f0-a16e-4241-9103-192c0c68124c”
}
<Job-B.json>
{
"jobName": ”Job-A",
"jobQueue": "ProdQueue",
"jobDefinition": ”Job-A-Definition:1",
”arrayProperties":
{
“copies”: 100
},
"dependsOn": [
{"jobId": "7a6225f0-a16e-4241-9103-192c0c68124c" }
]
}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Array Job Dependency Models
Two Equally-Sized Array Jobs, a.k.a. “N-to-N”
“Job-A”
A:0
…
A:1
A:2
A:3
A:9999
B:0
B:1
B:2
B:3
B:n
“Job-B”
$ aws batch submit-job --job-name Job-A --job-queue
ProdQueue --job-definition job-A-Definition:1 --array-
properties size=10000
{
"jobName": ”Job-A",
"jobId": "7a6225f0-a16e-4241-9103-192c0c68124c”
}
$ aws batch submit-job --job-name Job-B --job-queue
ProdQueue --job-definition job-B-Definition:1 --array-
properties size=10000 --depends-on jobId=7a6225f0-a16e-
4241-9103-192c0c68124c,type=N_TO_N
{
"jobName": ”Job-B”,
"jobId": "7f2b6bfb-75e8-4655-89a5-1e5b233f5c08”
}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Array Job Dependency Models
Array Job Depends on Self, a.k.a. Sequential Job
“Job-A”
A:0
…
A:1
A:9
A:2
$ aws batch submit-job --job-name Job-A --job-queue ProdQueue
--job-definition job-A-Definition:1 --array-properties
size=10 --depends-on type=SEQUENTIAL
{
"jobName": ”Job-A",
"jobId": "7a6225f0-a16e-4241-9103-192c0c68124c”
}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Another Example
C is dependent on A and B
D has an N_TO_N dependency on C
“Job-A”
“Job-C”
C:0
…
C:1
C:2
C:3
C:9999
D:0
D:1
D:2
D:3
D:9999
“Job-D”
“Job-B”
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
These Models Can be Combined
“Job-A”
“Job-C”
C:0
…
C:1
C:2
C:3
C:9999
D:0
D:1
D:2
D:3
D:9999
“Job-D”“Job-B”
B:0
…
B:1
B:9
B:2
“Job-E”
Heavy
Network I/O
CPU
Intensive
Large
Memory
Setup Cleanup
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Roadmap
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What Can You Expect in 2018?
• Significant improvements to the AWS Batch console
• Automatically submit AWS Batch jobs in response to CloudWatch
Events
• CloudTrail auditing of AWS Batch API calls
• Consumable resources
• Additional job types
• Further regional expansion
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Important Links
Product Details:
https://aws.amazon.com/batch/details/
Getting Started:
https://aws.amazon.com/batch/getting-started/
Sample code for AWS Batch + Step Functions Integration:
https://github.com/awslabs/aws-batch-genomics
Compute Blog Post Describing How to Use Batch + FPGAs:
https://aws.amazon.com/blogs/compute/accelerating-precision-medicine-at-scale/
Deep Learning on AWS Batch:
https://aws.amazon.com/pt/blogs/compute/deep-learning-on-aws-batch/
HERE Technologies
AWS re:Invent 2017
Lee Baker
Sr. Architect, Highly Automated Driving
November 30, 2017
© 2017 HEREAWS re:Invent 201775
200
Countries mapped
4of5
In-car navigation
systems in Europe
and North America
use HERE maps
30+
Years of
experience
transforming
location
technology
7,000+Employees in 56 countries
focused on delivering the world’s best
map and location technologies
HERE Maps on board of
100Mvehicles and counting
3D data points
per second per car
700,000
collecting
data for
our
maps
400
HERE cars
28TB map data
collected
perday
© 2017 HEREAWS re:Invent 201776
On Demand Economy
9.5 B ARRobotics Quantum Computing
Megacities Artificial Intelligence Sustainability
Neural
Networks
Data Analytics
Location
Location
Location
Location
Location
Location
Location
Location
Location
Location
Location
Location
Occupancy Grid Algorithm
© 2017 HEREAWS re:Invent 201777
Lidar point cloud 3D occupancy grid
Occupancy Grid Pipeline
© 2017 HEREAWS re:Invent 201778
…
Route Partition Process Each
© 2017 HEREAWS re:Invent 201779
Deep Learning
• Best for structured data
(images), not unstructured
(point clouds)
• Researcher
decision
Spark
• No native C++ support
ECS
• Manual Auto Scaling tuning
• No instance type optimization/
bin packing
• No queue
management
Kubernetes
• No team experience
Requirements & Considered Architectures
1. 1-month deadline
2. Researcher productivity
3. Generic
4. Heterogenous languages
5. Auto Scaling
6. Minimal care and feeding
System Architecture
© 2017 HEREAWS re:Invent 201780
Challenge: Orchestration
© 2017 HEREAWS re:Invent 201781
• Option 1: Batch Job Dependencies
 Limit of 20
• Option 2: Spark
 Overkill for simple orchestration
• Option 3: Step Functions
 Long tasks = Custom Activities
• Solution: Apache Airflow
 Winner
Challenge 2: Separating Algorithm & Data Transfer
• Option 1: Require library inclusion
 Change → many image updates
 Library per language
• Option 2: Base Docker image
 Change → many image updates
 Limits flexibility
 Risky
• Option 3: EFS
 Not suited for 100% temporary
files
• Solution: “Runner” container
© 2017 HEREAWS re:Invent 201782
Other Challenges
• Storage
 Initial: Custom AMI w/large EBS volume
 In-Progress: “Auto Scaling” EBS volumes
• Managed vs. Unmanaged Compute Environment
 Use Managed unless you absolutely can’t
© 2017 HEREAWS re:Invent 201783
Next Steps
• Explore array jobs (announced November 28)
• Migrate other projects
© 2017 HEREAWS re:Invent 201784
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Fully Managed Integrated with AWS Cost-optimized
Resource Provisioning
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!

More Related Content

What's hot

CTD201_Introduction to Amazon CloudFront and AWS Lambda@Edge
CTD201_Introduction to Amazon CloudFront and AWS Lambda@EdgeCTD201_Introduction to Amazon CloudFront and AWS Lambda@Edge
CTD201_Introduction to Amazon CloudFront and AWS Lambda@EdgeAmazon Web Services
 
NET309_Best Practices for Securing an Amazon Virtual Private Cloud
NET309_Best Practices for Securing an Amazon Virtual Private CloudNET309_Best Practices for Securing an Amazon Virtual Private Cloud
NET309_Best Practices for Securing an Amazon Virtual Private CloudAmazon Web Services
 
CMP209_Getting started with Docker on AWS
CMP209_Getting started with Docker on AWSCMP209_Getting started with Docker on AWS
CMP209_Getting started with Docker on AWSAmazon Web Services
 
CTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsCTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsAmazon Web Services
 
STG330_Case Study How Experian Leverages Amazon EC2, EBS, and S3 with Clouder...
STG330_Case Study How Experian Leverages Amazon EC2, EBS, and S3 with Clouder...STG330_Case Study How Experian Leverages Amazon EC2, EBS, and S3 with Clouder...
STG330_Case Study How Experian Leverages Amazon EC2, EBS, and S3 with Clouder...Amazon Web Services
 
DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD PracticesDEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD PracticesAmazon Web Services
 
AWS Compute: What’s New in Amazon EC2, Containers and Serverless - CMP218 - r...
AWS Compute: What’s New in Amazon EC2, Containers and Serverless - CMP218 - r...AWS Compute: What’s New in Amazon EC2, Containers and Serverless - CMP218 - r...
AWS Compute: What’s New in Amazon EC2, Containers and Serverless - CMP218 - r...Amazon Web Services
 
STG309_Deep Dive Using Hybrid Storage with AWS Storage Gateway to Solve On-Pr...
STG309_Deep Dive Using Hybrid Storage with AWS Storage Gateway to Solve On-Pr...STG309_Deep Dive Using Hybrid Storage with AWS Storage Gateway to Solve On-Pr...
STG309_Deep Dive Using Hybrid Storage with AWS Storage Gateway to Solve On-Pr...Amazon Web Services
 
CON213_Hands-on Kubernetes on AWS
CON213_Hands-on Kubernetes on AWSCON213_Hands-on Kubernetes on AWS
CON213_Hands-on Kubernetes on AWSAmazon Web Services
 
DEV315_Automating Lambda Deployments with GitHub, Jenkins, AWS CodePipeline a...
DEV315_Automating Lambda Deployments with GitHub, Jenkins, AWS CodePipeline a...DEV315_Automating Lambda Deployments with GitHub, Jenkins, AWS CodePipeline a...
DEV315_Automating Lambda Deployments with GitHub, Jenkins, AWS CodePipeline a...Amazon Web Services
 
DAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into CloudDAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into CloudAmazon Web Services
 
DEV317_Deep Dive on AWS CloudFormation
DEV317_Deep Dive on AWS CloudFormationDEV317_Deep Dive on AWS CloudFormation
DEV317_Deep Dive on AWS CloudFormationAmazon Web Services
 
Optimizing EC2 for Fun and Profit #bigsavings #newfeatures - CMP202 - re:Inve...
Optimizing EC2 for Fun and Profit #bigsavings #newfeatures - CMP202 - re:Inve...Optimizing EC2 for Fun and Profit #bigsavings #newfeatures - CMP202 - re:Inve...
Optimizing EC2 for Fun and Profit #bigsavings #newfeatures - CMP202 - re:Inve...Amazon Web Services
 
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at Scale
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at ScaleDEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at Scale
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at ScaleAmazon Web Services
 
CON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWSCON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWSAmazon Web Services
 
How Netflix Encodes at Scale - CMP309 - re:Invent 2017
How Netflix Encodes at Scale - CMP309 - re:Invent 2017How Netflix Encodes at Scale - CMP309 - re:Invent 2017
How Netflix Encodes at Scale - CMP309 - re:Invent 2017Amazon Web Services
 
MCL314_Unlocking Media Workflows Using Amazon Rekognition
MCL314_Unlocking Media Workflows Using Amazon RekognitionMCL314_Unlocking Media Workflows Using Amazon Rekognition
MCL314_Unlocking Media Workflows Using Amazon RekognitionAmazon Web Services
 
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...Amazon Web Services
 

What's hot (20)

CTD201_Introduction to Amazon CloudFront and AWS Lambda@Edge
CTD201_Introduction to Amazon CloudFront and AWS Lambda@EdgeCTD201_Introduction to Amazon CloudFront and AWS Lambda@Edge
CTD201_Introduction to Amazon CloudFront and AWS Lambda@Edge
 
NET309_Best Practices for Securing an Amazon Virtual Private Cloud
NET309_Best Practices for Securing an Amazon Virtual Private CloudNET309_Best Practices for Securing an Amazon Virtual Private Cloud
NET309_Best Practices for Securing an Amazon Virtual Private Cloud
 
CMP209_Getting started with Docker on AWS
CMP209_Getting started with Docker on AWSCMP209_Getting started with Docker on AWS
CMP209_Getting started with Docker on AWS
 
CTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsCTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video Workflows
 
STG330_Case Study How Experian Leverages Amazon EC2, EBS, and S3 with Clouder...
STG330_Case Study How Experian Leverages Amazon EC2, EBS, and S3 with Clouder...STG330_Case Study How Experian Leverages Amazon EC2, EBS, and S3 with Clouder...
STG330_Case Study How Experian Leverages Amazon EC2, EBS, and S3 with Clouder...
 
DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD PracticesDEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
 
GPSTEC325-Enterprise Storage
GPSTEC325-Enterprise StorageGPSTEC325-Enterprise Storage
GPSTEC325-Enterprise Storage
 
AWS Compute: What’s New in Amazon EC2, Containers and Serverless - CMP218 - r...
AWS Compute: What’s New in Amazon EC2, Containers and Serverless - CMP218 - r...AWS Compute: What’s New in Amazon EC2, Containers and Serverless - CMP218 - r...
AWS Compute: What’s New in Amazon EC2, Containers and Serverless - CMP218 - r...
 
STG309_Deep Dive Using Hybrid Storage with AWS Storage Gateway to Solve On-Pr...
STG309_Deep Dive Using Hybrid Storage with AWS Storage Gateway to Solve On-Pr...STG309_Deep Dive Using Hybrid Storage with AWS Storage Gateway to Solve On-Pr...
STG309_Deep Dive Using Hybrid Storage with AWS Storage Gateway to Solve On-Pr...
 
CON213_Hands-on Kubernetes on AWS
CON213_Hands-on Kubernetes on AWSCON213_Hands-on Kubernetes on AWS
CON213_Hands-on Kubernetes on AWS
 
DEV315_Automating Lambda Deployments with GitHub, Jenkins, AWS CodePipeline a...
DEV315_Automating Lambda Deployments with GitHub, Jenkins, AWS CodePipeline a...DEV315_Automating Lambda Deployments with GitHub, Jenkins, AWS CodePipeline a...
DEV315_Automating Lambda Deployments with GitHub, Jenkins, AWS CodePipeline a...
 
DAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into CloudDAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into Cloud
 
DEV317_Deep Dive on AWS CloudFormation
DEV317_Deep Dive on AWS CloudFormationDEV317_Deep Dive on AWS CloudFormation
DEV317_Deep Dive on AWS CloudFormation
 
Optimizing EC2 for Fun and Profit #bigsavings #newfeatures - CMP202 - re:Inve...
Optimizing EC2 for Fun and Profit #bigsavings #newfeatures - CMP202 - re:Inve...Optimizing EC2 for Fun and Profit #bigsavings #newfeatures - CMP202 - re:Inve...
Optimizing EC2 for Fun and Profit #bigsavings #newfeatures - CMP202 - re:Inve...
 
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at Scale
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at ScaleDEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at Scale
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at Scale
 
Serverless Developer Experience
Serverless Developer ExperienceServerless Developer Experience
Serverless Developer Experience
 
CON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWSCON209_Interstella 8888 Learn How to Use Docker on AWS
CON209_Interstella 8888 Learn How to Use Docker on AWS
 
How Netflix Encodes at Scale - CMP309 - re:Invent 2017
How Netflix Encodes at Scale - CMP309 - re:Invent 2017How Netflix Encodes at Scale - CMP309 - re:Invent 2017
How Netflix Encodes at Scale - CMP309 - re:Invent 2017
 
MCL314_Unlocking Media Workflows Using Amazon Rekognition
MCL314_Unlocking Media Workflows Using Amazon RekognitionMCL314_Unlocking Media Workflows Using Amazon Rekognition
MCL314_Unlocking Media Workflows Using Amazon Rekognition
 
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
 

Similar to Batch Processing with Containers on AWS - CON304 - re:Invent 2017

Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017
Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017
Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017Amazon Web Services
 
High-Throughput Genomics on AWS - LFS309 - re:Invent 2017
High-Throughput Genomics on AWS - LFS309 - re:Invent 2017High-Throughput Genomics on AWS - LFS309 - re:Invent 2017
High-Throughput Genomics on AWS - LFS309 - re:Invent 2017Amazon Web Services
 
LFS309-High-Throughput Genomics on AWS.pdf
LFS309-High-Throughput Genomics on AWS.pdfLFS309-High-Throughput Genomics on AWS.pdf
LFS309-High-Throughput Genomics on AWS.pdfAmazon Web Services
 
Semplificare la gestione dei container con i servizi AWS
Semplificare la gestione dei container con i servizi AWSSemplificare la gestione dei container con i servizi AWS
Semplificare la gestione dei container con i servizi AWSAmazon Web Services
 
Create a Serverless Image Processing Platform
Create a Serverless Image Processing PlatformCreate a Serverless Image Processing Platform
Create a Serverless Image Processing PlatformAmazon Web Services
 
Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Web Services
 
Design, Build, and Modernize Your Web Applications with AWS
 Design, Build, and Modernize Your Web Applications with AWS Design, Build, and Modernize Your Web Applications with AWS
Design, Build, and Modernize Your Web Applications with AWSDonnie Prakoso
 
GAM307_Ubisoft How For Honor Runs Using Amazon ECS
GAM307_Ubisoft How For Honor Runs Using Amazon ECSGAM307_Ubisoft How For Honor Runs Using Amazon ECS
GAM307_Ubisoft How For Honor Runs Using Amazon ECSAmazon Web Services
 
Genomics on aws-webinar-april2018
Genomics on aws-webinar-april2018Genomics on aws-webinar-april2018
Genomics on aws-webinar-april2018Brendan Bouffler
 
CON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSCON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSAmazon Web Services
 
Leo Zhadanovsky - Building Web Apps with AWS CodeStar and AWS Elastic Beansta...
Leo Zhadanovsky - Building Web Apps with AWS CodeStar and AWS Elastic Beansta...Leo Zhadanovsky - Building Web Apps with AWS CodeStar and AWS Elastic Beansta...
Leo Zhadanovsky - Building Web Apps with AWS CodeStar and AWS Elastic Beansta...Amazon Web Services
 
Deep dive ECS & Fargate Deep Dive
Deep dive ECS & Fargate Deep DiveDeep dive ECS & Fargate Deep Dive
Deep dive ECS & Fargate Deep DiveAmazon Web Services
 
Getting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container ServiceGetting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container ServiceAmazon Web Services
 
Serverless use cases with AWS Lambda
Serverless use cases with AWS Lambda Serverless use cases with AWS Lambda
Serverless use cases with AWS Lambda Boaz Ziniman
 
Customer Sharing: Trend Micro - Analytic Engine - A common Big Data computati...
Customer Sharing: Trend Micro - Analytic Engine - A common Big Data computati...Customer Sharing: Trend Micro - Analytic Engine - A common Big Data computati...
Customer Sharing: Trend Micro - Analytic Engine - A common Big Data computati...Amazon Web Services
 
analytic engine - a common big data computation service on the aws
analytic engine - a common big data computation service on the awsanalytic engine - a common big data computation service on the aws
analytic engine - a common big data computation service on the awsScott Miao
 
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...Amazon Web Services
 

Similar to Batch Processing with Containers on AWS - CON304 - re:Invent 2017 (20)

Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017
Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017
Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017
 
High-Throughput Genomics on AWS - LFS309 - re:Invent 2017
High-Throughput Genomics on AWS - LFS309 - re:Invent 2017High-Throughput Genomics on AWS - LFS309 - re:Invent 2017
High-Throughput Genomics on AWS - LFS309 - re:Invent 2017
 
LFS309-High-Throughput Genomics on AWS.pdf
LFS309-High-Throughput Genomics on AWS.pdfLFS309-High-Throughput Genomics on AWS.pdf
LFS309-High-Throughput Genomics on AWS.pdf
 
Semplificare la gestione dei container con i servizi AWS
Semplificare la gestione dei container con i servizi AWSSemplificare la gestione dei container con i servizi AWS
Semplificare la gestione dei container con i servizi AWS
 
Create a Serverless Image Processing Platform
Create a Serverless Image Processing PlatformCreate a Serverless Image Processing Platform
Create a Serverless Image Processing Platform
 
Amazon ECS Deep Dive
Amazon ECS Deep DiveAmazon ECS Deep Dive
Amazon ECS Deep Dive
 
Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)
 
Design, Build, and Modernize Your Web Applications with AWS
 Design, Build, and Modernize Your Web Applications with AWS Design, Build, and Modernize Your Web Applications with AWS
Design, Build, and Modernize Your Web Applications with AWS
 
GAM307_Ubisoft How For Honor Runs Using Amazon ECS
GAM307_Ubisoft How For Honor Runs Using Amazon ECSGAM307_Ubisoft How For Honor Runs Using Amazon ECS
GAM307_Ubisoft How For Honor Runs Using Amazon ECS
 
Building Web Apps on AWS
Building Web Apps on AWSBuilding Web Apps on AWS
Building Web Apps on AWS
 
Genomics on aws-webinar-april2018
Genomics on aws-webinar-april2018Genomics on aws-webinar-april2018
Genomics on aws-webinar-april2018
 
CON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSCON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWS
 
Leo Zhadanovsky - Building Web Apps with AWS CodeStar and AWS Elastic Beansta...
Leo Zhadanovsky - Building Web Apps with AWS CodeStar and AWS Elastic Beansta...Leo Zhadanovsky - Building Web Apps with AWS CodeStar and AWS Elastic Beansta...
Leo Zhadanovsky - Building Web Apps with AWS CodeStar and AWS Elastic Beansta...
 
Deep dive ECS & Fargate Deep Dive
Deep dive ECS & Fargate Deep DiveDeep dive ECS & Fargate Deep Dive
Deep dive ECS & Fargate Deep Dive
 
Getting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container ServiceGetting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container Service
 
Serverless DevOps to the Rescue
Serverless DevOps to the RescueServerless DevOps to the Rescue
Serverless DevOps to the Rescue
 
Serverless use cases with AWS Lambda
Serverless use cases with AWS Lambda Serverless use cases with AWS Lambda
Serverless use cases with AWS Lambda
 
Customer Sharing: Trend Micro - Analytic Engine - A common Big Data computati...
Customer Sharing: Trend Micro - Analytic Engine - A common Big Data computati...Customer Sharing: Trend Micro - Analytic Engine - A common Big Data computati...
Customer Sharing: Trend Micro - Analytic Engine - A common Big Data computati...
 
analytic engine - a common big data computation service on the aws
analytic engine - a common big data computation service on the awsanalytic engine - a common big data computation service on the aws
analytic engine - a common big data computation service on the aws
 
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...
 

More from 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
 

More from 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
 

Batch Processing with Containers on AWS - CON304 - re:Invent 2017

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS re:Invent Batch Processing with Containers on AWS C O N 3 0 4 Zaven Boni Technical Manager, GoPro Lee Baker HERE, Sr. Architect, Highly Automated Driving Tom Fuller Principal Solutions Architect, AWS Jamie Kinney Principal Product Manager, AWS Batch and HPC November 30, 2017
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Zaven Boni: Technical Manager, GoPro Lee Baker: Sr. Architect, Highly Automated Driving, HERE Tom Fuller: Principal Solutions Architect, AWS Jamie Kinney: Principal Product Manager, AWS Batch & HPC Introductions
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Agenda • Intro to Batch Processing • Amazon ECS • Migrating GoPro Plus to Amazon ECS • AWS Batch: overview and recent launches • HERE • Q&A
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What is Batch Computing? Jobs may have dependencies, making the sequencing and scheduling of multiple jobs complex and challenging. Run jobs asynchronously and automatically across one or more computers.
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Challenges of Running Batch Workloads • Typically resource intensive • Time constraint for completion • Potential impact to concurrent batch jobs • Scaling infrastructure resources • Ensuring effective resource utilization and cost savings • Fragile and unreliable
  • 6. What Batch Workloads Need Reliability Easy Development Easy Deployment High Throughput Low Ops Load Cost Efficiency
  • 7. Why the Cloud Makes Sense for Batch Workloads Reliable Scalable Pay as you goInfrastructure as code
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Why Containers Make Sense for Batch Workloads • Simple to model • Polyglot • Image is the version • Do one thing well • You build it, you run it • Black box
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Options for Batch Workloads on AWS AWS Batch Amazon ECS
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What is Amazon ECS? Scalable Container Management Flexible Container Placement Native AWS Integrations Extensible by Design
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. File put into S3 bucket Amazon Simple Queue Service Output to S3 bucket Amazon ECS provisions compute clusters and schedules tasks based on demand Batch worker task polls SQS for new jobs Queue load is communicated to ECS Containerized batch worker processes file Basic Batch Workflow with ECS
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Trigger Batch Processing with AWS Lambda Amazon ECS Availability Zone Availability Zone Container Instance AutoScaling Group Task A AWS Lambda Amazon S3 Bucket (Source) ecs:RunTask Amazon S3 Bucket (Target) Amazon S3 Bucket Object Amazon CloudWatch AWS CloudTrail Container Instance
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fleet of Workers with ECS with SQS Amazon ECS Availability Zone Availability Zone SQS queue Container Instance Container Instance AutoScaling Group Task A AWS Lambda Amazon S3 DynamoDB Amazon Kinesis ecs:RunTask Amazon CloudWatch AWS CloudTrail
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Long-Running Batch Jobs • Utilize Spot Instances • EC2 Spot Blocks for Defined-Duration Workloads • ECS event stream for CloudWatch Events • Service Scaling and Monitoring Amazon ECS Availability Zone Availability Zone Container Instance Container Instance AutoScaling Group Task A Task B Task C Amazon CloudWatch AWS CloudTrail
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Get the Best Value for EC2 Capacity – Spot Instances • Since Spot instances typically cost 50-90% less than On-Demand, you can increase your compute capacity by 2-10x within the same budget • Or, you could save 50-90% on your existing workload • Either way, it’s worth it!
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Best Practices • Store state and inputs, outputs in S3 or another datastore • Minimize dependencies between task definitions (should be independent of each other) • Use Spot Instances and Spot fleets for long-running batch jobs • Monitor cluster state with ECS APIs • Share pools of resources • Auto Scaling, VPC, IAM, scheduled Reserved Instances
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Zaven Boni: Technical Manager, GoPro @opstastic
  • 20. PLATFORM COMPONENTS • Photo and video processing • User and subscription management • Device management • Web front-ends • Logging and analytics • Infrastructure tools and utilities
  • 21. PLATFORM SCALE 60+ ECS Services 100M API Requests/day * and shrinking… 500 EC2 Instances *
  • 23. CHALLENGES BEFORE ECS • Custom AMIs • Long deployment times (AMI creation + EC2 instance boot time + application startup) • Multi-step deployments = more places to fail • One container per EC2 instance! APPS & MICRO-SERVICES
  • 24. CHALLENGES BEFORE ECS Visibility • Orchestration was a black box • Scraped 3rd party API to create Cloudwatch custom metrics Control • Scaling parameters were abstracted away • Docker bugs caused silent failures Cost • Operational overhead • Inefficient use of resources 3RD-PARTY QUEUING AND PROCESS MANAGEMENT
  • 26. EVALUATING ECS • IAM Roles specific to each service running on the cluster - principle of least privilege • Familiar AWS interface and concepts • Integration with AWS services like Cloudwatch, ELB • Enterprise support • Less cluster maintenance
  • 29. INFRASTRUCTURE AS CODE We Terraformed (almost) everything • VPCs • ECS clusters • SQS queues • ECS task definitions • Resource reservations • Docker image tags • IAM per-service roles • Environment variables • Cloudwatch scaling thresholds • Deployments?
  • 30. INFRASTRUCTURE AS CODE TF config and module structure • DevOps team maintain base modules • Development teams import modules into their app codebase • Terraform definitions for each app are maintained along with the app code repository A few project-specific variables • Service name • ECS Task definition • CPU Allocation • Hard/Soft memory limits • Cloudwatch alarm thresholds • SQS max queue length
  • 31. RELEASE TAGGING • Use a semantic versioning scheme to track releases through pre-prod and production deployments • Apply the same tag to: • git commit, Docker image, and ECS task • Ensures parity between environments • Rollback with confidence • Dashboard visibility into the deployed code versions
  • 32. RELEASE TAGGING At this point, image is double- tagged 
  • 34. AUTO SCALING • ECS cluster scaling (horizontal) • CPU or Memory Reservation (not Utilization) • Service scaling (vertical) • Workers - SQS queue length (ApproximateNumberOfMessagesVisible) • Services – CPUUtilization or MemoryUtilization • Scaling down without interrupting tasks • Container Instance draining
  • 35. Container Instance Draining Source: https://aws.amazon.com/blogs/compute/how-to-automate-container-instance-draining-in-amazon-ecs/
  • 37. LESSONS: Scaling 1. Scale with headroom • Application startup time is a factor 1. Scale on custom metrics • Number of messages in the queue
  • 38. LESSONS: Immutability • Immutable images are good, and… • App code will still break with incorrect ENV • App code will still break with environmental differences • Lesson: post-deployment testing and automated roll-back
  • 39. LESSONS: IAM • Access policies can be complex. • If resource tagging isn’t universal, tough to provide partial access • Isolate your environments in separate AWS accounts
  • 40. LESSONS: Infra-As-Code • Executing terraform apply / cloudformation deploy probably requires privileges across many AWS services • Solution: same as before • When updating a task definition, it’s all too easy to apply an older container image and unintentionally roll-back • Solution: wrapper script checks the ECS API for current version
  • 42. OPERATIONAL BENEFITS • Simplified deploy pipeline • Greatly reduced deploy time – 30m to 30s • Predictability and visibility • Increased efficiency for mixed workloads • Simplified ops
  • 43. In summary… • ECS is the foundation of the GoPro cloud platform • In two quarters, we migrated 60+ services • We’re realizing: • Cost savings, better deploys, stability • Ops and developer happiness :-)
  • 45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Jamie Kinney P r i n c i p a l P r o d u c t M a n a g e r , A W S B a t c h & H P C
  • 46. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Batch Fully Managed No software to install or servers to manage. AWS Batch provisions, manages, and scales your infrastructure Integrated with AWS Natively integrated with the AWS Platform, AWS Batch jobs can easily and securely interact with services such as Amazon S3, Amazon DynamoDB, and Amazon Rekognition Cost-optimized Resource Provisioning AWS Batch automatically provisions compute resources tailored to the needs of your jobs using Amazon EC2 and EC2 Spot
  • 47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Batch Concepts • Jobs • Job Definitions • Job Queue • Compute Environments • Scheduler
  • 48. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Let’s see how it works!
  • 49. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 2017 Launches
  • 50. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Batch Regional Expansion AWS Batch is available in the following regions: • us-east-1 (N. Virginia) • us-east-2 (Ohio) • us-west-2 (Oregon) • eu-west-1 (Ireland) • eu-west-2 (London) • eu-central-1 (Frankfurt) • ap-northeast-1 (Tokyo) • ap-southeast-2 (Sydney) • ap-southeast-1 (Singapore)
  • 51. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Improved Managed Compute Environments Custom AMIs: • Auto-mount EFS and other shared filesystems • Larger/faster/encrypted EBS • GPU/FPGA drivers New instance families • G3 • F1 • P3 • C5 Faster scale-up/scale-down and per-second billing Automated tagging of EC2 Spot instances
  • 52. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Manageability & Performance • Automated Job Retries: Easily recover from application errors, hardware failures, or EC2 Spot terminations • Scheduling throughput: run jobs as short as 5 seconds with ~90% scheduling efficiency • Native AWS CloudFormation Support for AWS Batch Resources • Amazon CloudWatch Events for Job State Transitions
  • 53. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. HIPAA Eligibility
  • 54. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Workflows, Pipelines, and Job Dependencies Jobs can express a dependency on the successful completion of other jobs or specific elements of an array job. You can also use AWS Step Functions or other workflow systems to submit jobs. Flow-based systems submit jobs serially, while DAG- based systems submit many jobs at once, identifying inter-job dependencies. $ aws batch submit-job –depends-on 606b3ad1-aa31-48d8-92ec-f154bfc8215f ... Job A Job CJob B
  • 55. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Workflows and Job Dependencies https://github.com/awslabs/aws-batch-genomics
  • 56. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 57. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. New! Array Jobs - Easily run parallel jobs Array jobs allow you to run up to 10,000 copies of an application. AWS Batch creates child jobs for each element in the array. Array jobs are an efficient way to run: • Parametric sweeps • Monte Carlo simulations • Processing a large collection of objects Also includes: • Extended Dependency Model • Enhancements to Job APIs Job A Job C Job B:0 Job B:1 Job B:n …
  • 58. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 59. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Example Array Job Submission $ aws batch submit-job --job-name BigBatch --job-queue ProdQueue --job- definition monte-carlo:8 --array-properties “size=10000” ... { "jobName": ”BigBatch", "jobId": "350f4655-5d61-40f0-aa0b-03ad787db329” } Job Name: BigBatch Job ID: 350f4655-5d61-40f0-aa0b-03ad787db329 Job Name: BigBatch Job ID: 350f4655-5d61-40f0-aa0b-03ad787db329:0 Job Name: BigBatch Job ID: 350f4655-5d61-40f0-aa0b-03ad787db329:1 Job Name: BigBatch Job ID: 350f4655-5d61-40f0-aa0b-03ad787db329:9999 …
  • 60. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Array Job Dependency Models Job Depends on Array Job “Job-A” A:0 … A:1 A:99 “Job-B” $ aws batch submit-job –cli-input-json file://./Job-A.json <Job-A.json> { "jobName": ”Job-A", "jobQueue": "ProdQueue", "jobDefinition": ”Job-A-Definition:1", ”arrayProperties": { “copies”: 100 } } $ aws batch submit-job –cli-input-json file://./Job-B.json <Job-B.json> { "jobName": ”Job-B", "jobQueue": "ProdQueue", "jobDefinition": ”Job-B-Definition:1", "dependsOn": [ {"jobId": "<job ID for Job A>" } ] }
  • 61. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Array Job Dependency Models Array Job depends on Job “Job-B” B:0 … B:1 B:99 “Job-A” $ aws batch submit-job --job-name Job-A --job-queue ProdQueue -- job-definition job-A-Definition:1 { "jobName": "sequential-stress-10", "jobId": "7a6225f0-a16e-4241-9103-192c0c68124c” } <Job-B.json> { "jobName": ”Job-A", "jobQueue": "ProdQueue", "jobDefinition": ”Job-A-Definition:1", ”arrayProperties": { “copies”: 100 }, "dependsOn": [ {"jobId": "7a6225f0-a16e-4241-9103-192c0c68124c" } ] }
  • 62. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Array Job Dependency Models Two Equally-Sized Array Jobs, a.k.a. “N-to-N” “Job-A” A:0 … A:1 A:2 A:3 A:9999 B:0 B:1 B:2 B:3 B:n “Job-B” $ aws batch submit-job --job-name Job-A --job-queue ProdQueue --job-definition job-A-Definition:1 --array- properties size=10000 { "jobName": ”Job-A", "jobId": "7a6225f0-a16e-4241-9103-192c0c68124c” } $ aws batch submit-job --job-name Job-B --job-queue ProdQueue --job-definition job-B-Definition:1 --array- properties size=10000 --depends-on jobId=7a6225f0-a16e- 4241-9103-192c0c68124c,type=N_TO_N { "jobName": ”Job-B”, "jobId": "7f2b6bfb-75e8-4655-89a5-1e5b233f5c08” }
  • 63. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Array Job Dependency Models Array Job Depends on Self, a.k.a. Sequential Job “Job-A” A:0 … A:1 A:9 A:2 $ aws batch submit-job --job-name Job-A --job-queue ProdQueue --job-definition job-A-Definition:1 --array-properties size=10 --depends-on type=SEQUENTIAL { "jobName": ”Job-A", "jobId": "7a6225f0-a16e-4241-9103-192c0c68124c” }
  • 64. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Another Example C is dependent on A and B D has an N_TO_N dependency on C “Job-A” “Job-C” C:0 … C:1 C:2 C:3 C:9999 D:0 D:1 D:2 D:3 D:9999 “Job-D” “Job-B”
  • 65. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. These Models Can be Combined “Job-A” “Job-C” C:0 … C:1 C:2 C:3 C:9999 D:0 D:1 D:2 D:3 D:9999 “Job-D”“Job-B” B:0 … B:1 B:9 B:2 “Job-E” Heavy Network I/O CPU Intensive Large Memory Setup Cleanup
  • 66. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Roadmap
  • 67. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What Can You Expect in 2018? • Significant improvements to the AWS Batch console • Automatically submit AWS Batch jobs in response to CloudWatch Events • CloudTrail auditing of AWS Batch API calls • Consumable resources • Additional job types • Further regional expansion
  • 68. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Important Links Product Details: https://aws.amazon.com/batch/details/ Getting Started: https://aws.amazon.com/batch/getting-started/ Sample code for AWS Batch + Step Functions Integration: https://github.com/awslabs/aws-batch-genomics Compute Blog Post Describing How to Use Batch + FPGAs: https://aws.amazon.com/blogs/compute/accelerating-precision-medicine-at-scale/ Deep Learning on AWS Batch: https://aws.amazon.com/pt/blogs/compute/deep-learning-on-aws-batch/
  • 69. HERE Technologies AWS re:Invent 2017 Lee Baker Sr. Architect, Highly Automated Driving November 30, 2017
  • 70. © 2017 HEREAWS re:Invent 201775 200 Countries mapped 4of5 In-car navigation systems in Europe and North America use HERE maps 30+ Years of experience transforming location technology 7,000+Employees in 56 countries focused on delivering the world’s best map and location technologies HERE Maps on board of 100Mvehicles and counting 3D data points per second per car 700,000 collecting data for our maps 400 HERE cars 28TB map data collected perday
  • 71. © 2017 HEREAWS re:Invent 201776 On Demand Economy 9.5 B ARRobotics Quantum Computing Megacities Artificial Intelligence Sustainability Neural Networks Data Analytics Location Location Location Location Location Location Location Location Location Location Location Location
  • 72. Occupancy Grid Algorithm © 2017 HEREAWS re:Invent 201777 Lidar point cloud 3D occupancy grid
  • 73. Occupancy Grid Pipeline © 2017 HEREAWS re:Invent 201778 … Route Partition Process Each
  • 74. © 2017 HEREAWS re:Invent 201779 Deep Learning • Best for structured data (images), not unstructured (point clouds) • Researcher decision Spark • No native C++ support ECS • Manual Auto Scaling tuning • No instance type optimization/ bin packing • No queue management Kubernetes • No team experience Requirements & Considered Architectures 1. 1-month deadline 2. Researcher productivity 3. Generic 4. Heterogenous languages 5. Auto Scaling 6. Minimal care and feeding
  • 75. System Architecture © 2017 HEREAWS re:Invent 201780
  • 76. Challenge: Orchestration © 2017 HEREAWS re:Invent 201781 • Option 1: Batch Job Dependencies  Limit of 20 • Option 2: Spark  Overkill for simple orchestration • Option 3: Step Functions  Long tasks = Custom Activities • Solution: Apache Airflow  Winner
  • 77. Challenge 2: Separating Algorithm & Data Transfer • Option 1: Require library inclusion  Change → many image updates  Library per language • Option 2: Base Docker image  Change → many image updates  Limits flexibility  Risky • Option 3: EFS  Not suited for 100% temporary files • Solution: “Runner” container © 2017 HEREAWS re:Invent 201782
  • 78. Other Challenges • Storage  Initial: Custom AMI w/large EBS volume  In-Progress: “Auto Scaling” EBS volumes • Managed vs. Unmanaged Compute Environment  Use Managed unless you absolutely can’t © 2017 HEREAWS re:Invent 201783
  • 79. Next Steps • Explore array jobs (announced November 28) • Migrate other projects © 2017 HEREAWS re:Invent 201784
  • 80. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fully Managed Integrated with AWS Cost-optimized Resource Provisioning
  • 81. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 82. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you!