SlideShare a Scribd company logo
1 of 169
AWS Black Belt Ninja Dojo
Dean Samuels, Solutions Architect
Amazon Web Services
Business
101 Technical
201 Technical
301 Technical
401 Technical
Session Grading
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
How can I optimise the performance of these
AWS services
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Amazon EBS – Larger & Faster Volumes
Amazon EBS – Larger & Faster Volumes
GP2
1GB-16TB
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
1GB-16TB 4GB-16TB
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
1GB-16TB 4GB-16TB 1GB-1TB
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
1GB-16TB 4GB-16TB 1GB-1TB
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s)
1GB-16TB 4GB-16TB 1GB-1TB
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s) 20,000 IOPS
1GB-16TB 4GB-16TB 1GB-1TB
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s) 20,000 IOPS
320MB/s
(<1TB – 128MB/s)
1GB-16TB 4GB-16TB 1GB-1TB
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s) 20,000 IOPS
320MB/s
(<1TB – 128MB/s) ~100 IOPS
1GB-16TB 4GB-16TB 1GB-1TB
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s) 20,000 IOPS
320MB/s
(<1TB – 128MB/s) ~100 IOPS 50-90MB/s
1GB-16TB 4GB-16TB 1GB-1TB
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s) 20,000 IOPS
320MB/s
(<1TB – 128MB/s) ~100 IOPS 50-90MB/s
1GB-16TB 4GB-16TB 1GB-1TB
EC2
48,000 IOPS @ 16K IO
800MB/s^
^Amazon EC2 *.8xlarge instances support 10Gb/s network
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s) 20,000 IOPS
320MB/s
(<1TB – 128MB/s) ~100 IOPS 50-90MB/s
1GB-16TB 4GB-16TB 1GB-1TB
EC2
48,000 IOPS @ 16K IO
800MB/s^
EBS-Optimized @
500Mb, 1Gb, 2Gb^
^Amazon EC2 *.8xlarge instances support 10Gb/s network
1-2ms
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s) 20,000 IOPS
320MB/s
(<1TB – 128MB/s) ~100 IOPS 50-90MB/s
1GB-16TB 4GB-16TB 1GB-1TB
EC2
48,000 IOPS @ 16K IO
800MB/s^
EBS-Optimized @
500Mb, 1Gb, 2Gb^
^Amazon EC2 *.8xlarge instances support 10Gb/s network
1-2ms
48,000 IOPS @ 16K IO
800MB/s^
EC2
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s) 20,000 IOPS
320MB/s
(<1TB – 128MB/s) ~100 IOPS 50-90MB/s
1GB-16TB 4GB-16TB 1GB-1TB
EC2
48,000 IOPS @ 16K IO
800MB/s^
EBS-Optimized @
500Mb, 1Gb, 2Gb^
EBS-Optimized @
500Mb, 1Gb, 2Gb^
^Amazon EC2 *.8xlarge instances support 10Gb/s network
1-2ms 1-2ms
48,000 IOPS @ 16K IO
800MB/s^
EC2
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s) 20,000 IOPS
320MB/s
(<1TB – 128MB/s) ~100 IOPS 50-90MB/s
1GB-16TB 4GB-16TB 1GB-1TB
EC2
48,000 IOPS @ 16K IO
800MB/s^
EBS-Optimized @
500Mb, 1Gb, 2Gb^
EBS-Optimized @
500Mb, 1Gb, 2Gb^
^Amazon EC2 *.8xlarge instances support 10Gb/s network
1-2ms 1-2ms ~2-40ms
48,000 IOPS @ 16K IO
800MB/s^
EC2
48,000 IOPS @ 16K IO
800MB/s^
EC2
Amazon EBS – Larger & Faster Volumes
GP2 PIOPS/
io2
MAG/STD
10,000 IOPS
(<1TB – 3000 IOPS)
160MB/s
(<1TB – 128MB/s) 20,000 IOPS
320MB/s
(<1TB – 128MB/s) ~100 IOPS 50-90MB/s
1GB-16TB 4GB-16TB 1GB-1TB
EC2
48,000 IOPS @ 16K IO
800MB/s^
EBS-Optimized @
500Mb, 1Gb, 2Gb^
EBS-Optimized @
500Mb, 1Gb, 2Gb^
^Amazon EC2 *.8xlarge instances support 10Gb/s network
1-2ms 1-2ms ~2-40ms
48,000 IOPS @ 16K IO
800MB/s^
EC2
48,000 IOPS @ 16K IO
800MB/s^
EC2
Optimal queue depth to achieve lower latency and highest IOPS is
~1 QD per 200 IOPS
Amazon EBS
Amazon EBS
Cost Optimisation
Amazon EBS
Cost Optimisation
• 1TB PIOPS volume with 4K IOPS
– $429.32* per month per volume
_________________________________
*Pricing for AWS Sydney region – ap-southeast-2
Amazon EBS
Cost Optimisation
• 1TB PIOPS volume with 4K IOPS
– $429.32* per month per volume
_________________________________
• GP2 1TB volume with 3000 IOPS
– $122.88*
*Pricing for AWS Sydney region – ap-southeast-2
Amazon EBS
Cost Optimisation
• 1TB PIOPS volume with 4K IOPS
– $429.32* per month per volume
_________________________________
• GP2 1TB volume with 3000 IOPS
– $122.88*
• GP2 2 x 500GB volumes at 3K, burst to 6K
– $122.88*
~70% Cost Savings. 50% more peak I/O with
*Pricing for AWS Sydney region – ap-southeast-2
Amazon EBS
Cost Optimisation
• 1TB PIOPS volume with 4K IOPS
– $429.32* per month per volume
_________________________________
• GP2 1TB volume with 3000 IOPS
– $122.88*
• GP2 2 x 500GB volumes at 3K, burst to 6K
– $122.88*
~70% Cost Savings. 50% more peak I/O with
General Purpose (SSD)
*Pricing for AWS Sydney region – ap-southeast-2
Amazon EBS
Cost Optimisation
• 1TB PIOPS volume with 4K IOPS
– $429.32* per month per volume
_________________________________
• GP2 1TB volume with 3000 IOPS
– $122.88*
• GP2 2 x 500GB volumes at 3K, burst to 6K
– $122.88*
~70% Cost Savings. 50% more peak I/O with
General Purpose (SSD)
Management Optimisation
*Pricing for AWS Sydney region – ap-southeast-2
Amazon EBS
Cost Optimisation
• 1TB PIOPS volume with 4K IOPS
– $429.32* per month per volume
_________________________________
• GP2 1TB volume with 3000 IOPS
– $122.88*
• GP2 2 x 500GB volumes at 3K, burst to 6K
– $122.88*
~70% Cost Savings. 50% more peak I/O with
General Purpose (SSD)
Management Optimisation
• Leverage tags to add metadata to snapshots
– Application stack
– Instance Id
– Volume Id
– Version
– Type (daily, weekly)
*Pricing for AWS Sydney region – ap-southeast-2
Use together with new AMI
creation date
Amazon EC2
• Next Generation Instance Types
– C4 & C3: Compute Optimized
– R3: Memory Optimized
– I2: High IO
– D2: Dense-storage
Amazon EC2
• Next Generation Instance Types
– C4 & C3: Compute Optimized
– R3: Memory Optimized
– I2: High IO
– D2: Dense-storage
• Hardware Assisted Virtualization (HVM)
Amazon EC2
• Next Generation Instance Types
– C4 & C3: Compute Optimized
– R3: Memory Optimized
– I2: High IO
– D2: Dense-storage
• Hardware Assisted Virtualization (HVM)
• Enhanced Networking
Virtualization layer
eth0
eth1
Instance Virtual NICs
Physical NIC
VIF
Amazon EC2 – Enhanced Networking
Virtualization layer
eth0
eth1
Instance Virtual NICs
Physical NIC
Virtualization layer
eth0
Instance
Physical NIC
VF Driver
eth1
VF
VIF SR-IOV
Amazon EC2 – Enhanced Networking
Virtualization layer
eth0
eth1
Instance Virtual NICs
Physical NIC
Virtualization layer
eth0
Instance
Physical NIC
VF Driver
eth1
VF
VIF SR-IOV
Amazon EC2 – Enhanced Networking
Instance 1 Instance 2
........
Demo

EC2 & EBS Optimisation
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
Don’t Do This!
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
Don’t Do This!
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
1 2 N
1 2 N
Don’t Do This!
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
Don’t Do This!
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
Don’t Do This!
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
Don’t Do This!
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
If you want a bucket capable of
routinely exceeding 100 TPS
Don’t Do This!
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
If you want a bucket capable of
routinely exceeding 100 TPS
Note: 100 TPS is A LOT!
Don’t Do This!
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
<my_bucket>/521335461-2013_11_13.jpg
<my_bucket>/465330151-2013_11_13.jpg
<my_bucket>/987331160-2013_11_13.jpg
<my_bucket>/465765461-2013_11_13.jpg
<my_bucket>/125631151-2013_11_13.jpg
<my_bucket>/934563160-2013_11_13.jpg
<my_bucket>/532132341-2013_11_13.jpg
<my_bucket>/565437681-2013_11_13.jpg
<my_bucket>/234567460-2013_11_13.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
If you want a bucket capable of
routinely exceeding 100 TPS
Note: 100 TPS is A LOT!
Don’t Do This!
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
<my_bucket>/521335461-2013_11_13.jpg
<my_bucket>/465330151-2013_11_13.jpg
<my_bucket>/987331160-2013_11_13.jpg
<my_bucket>/465765461-2013_11_13.jpg
<my_bucket>/125631151-2013_11_13.jpg
<my_bucket>/934563160-2013_11_13.jpg
<my_bucket>/532132341-2013_11_13.jpg
<my_bucket>/565437681-2013_11_13.jpg
<my_bucket>/234567460-2013_11_13.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
If you want a bucket capable of
routinely exceeding 100 TPS
Note: 100 TPS is A LOT!
Don’t Do This!
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
<my_bucket>/521335461-2013_11_13.jpg
<my_bucket>/465330151-2013_11_13.jpg
<my_bucket>/987331160-2013_11_13.jpg
<my_bucket>/465765461-2013_11_13.jpg
<my_bucket>/125631151-2013_11_13.jpg
<my_bucket>/934563160-2013_11_13.jpg
<my_bucket>/532132341-2013_11_13.jpg
<my_bucket>/565437681-2013_11_13.jpg
<my_bucket>/234567460-2013_11_13.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
If you want a bucket capable of
routinely exceeding 100 TPS
Note: 100 TPS is A LOT!
Don’t Do This!
You end up with this
Do this…
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
<my_bucket>/521335461-2013_11_13.jpg
<my_bucket>/465330151-2013_11_13.jpg
<my_bucket>/987331160-2013_11_13.jpg
<my_bucket>/465765461-2013_11_13.jpg
<my_bucket>/125631151-2013_11_13.jpg
<my_bucket>/934563160-2013_11_13.jpg
<my_bucket>/532132341-2013_11_13.jpg
<my_bucket>/565437681-2013_11_13.jpg
<my_bucket>/234567460-2013_11_13.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
1 2 N
1 2 N
Partition Partition Partition Partition
If you want a bucket capable of
routinely exceeding 100 TPS
Note: 100 TPS is A LOT!
Don’t Do This!
You end up with this
Do this…
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
<my_bucket>/521335461-2013_11_13.jpg
<my_bucket>/465330151-2013_11_13.jpg
<my_bucket>/987331160-2013_11_13.jpg
<my_bucket>/465765461-2013_11_13.jpg
<my_bucket>/125631151-2013_11_13.jpg
<my_bucket>/934563160-2013_11_13.jpg
<my_bucket>/532132341-2013_11_13.jpg
<my_bucket>/565437681-2013_11_13.jpg
<my_bucket>/234567460-2013_11_13.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
1 2 N
1 2 N
Partition Partition Partition Partition
If you want a bucket capable of
routinely exceeding 100 TPS
Note: 100 TPS is A LOT!
Don’t Do This!
You end up with this
Do this…
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
1 2 N
1 2 N
Partition Partition Partition Partition
If you want a bucket capable of
routinely exceeding 100 TPS
Note: 100 TPS is A LOT!
Don’t Do This!
You end up with this
Do this…
You end up with this
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
1 2 N
1 2 N
Partition Partition Partition Partition
If you want a bucket capable of
routinely exceeding 100 TPS
Note: 100 TPS is A LOT!
Don’t Do This!
You end up with this
Do this…
You end up with this
<my_bucket>/images/521335461-2013_11_13.jpg
<my_bucket>/images/465330151-2013_11_13.jpg
<my_bucket>/images/987331160-2013_11_13.jpg
<my_bucket>/movies/465765461-2013_11_13.jpg
<my_bucket>/movies/125631151-2013_11_13.jpg
<my_bucket>/thumbs-small/934563160-2013_11_13.jpg
<my_bucket>/thumbs-small/532132341-2013_11_13.jpg
<my_bucket>/thumbs-small/565437681-2013_11_13.jpg
<my_bucket>/thumbs-small/234567460-2013_11_13.jpg
Amazon S3 – Distributing Key Names
<my_bucket>/2013_11_13-164533125.jpg
<my_bucket>/2013_11_13-164533126.jpg
<my_bucket>/2013_11_13-164533127.jpg
<my_bucket>/2013_11_13-164533128.jpg
<my_bucket>/2013_11_12-164533129.jpg
<my_bucket>/2013_11_12-164533130.jpg
<my_bucket>/2013_11_12-164533131.jpg
<my_bucket>/2013_11_12-164533132.jpg
<my_bucket>/2013_11_11-164533133.jpg
1 2 N
1 2 N
Partition Partition Partition Partition
1 2 N
1 2 N
Partition Partition Partition Partition
If you want a bucket capable of
routinely exceeding 100 TPS
Note: 100 TPS is A LOT!
Don’t Do This!
You end up with this
Do this…
You end up with this
<my_bucket>/images/521335461-2013_11_13.jpg
<my_bucket>/images/465330151-2013_11_13.jpg
<my_bucket>/images/987331160-2013_11_13.jpg
<my_bucket>/movies/465765461-2013_11_13.jpg
<my_bucket>/movies/125631151-2013_11_13.jpg
<my_bucket>/thumbs-small/934563160-2013_11_13.jpg
<my_bucket>/thumbs-small/532132341-2013_11_13.jpg
<my_bucket>/thumbs-small/565437681-2013_11_13.jpg
<my_bucket>/thumbs-small/234567460-2013_11_13.jpg
This is also ok
Amazon S3 – Secondary Lists

Restrict Use of S3 LIST
DynamoDB
RDS
CloudSearch
EC2
S3 ObjectCreated

Notification
Lambda
SQS Workers
Amazon S3 – Secondary Lists

Restrict Use of S3 LIST
DynamoDB
RDS
CloudSearch
EC2
S3 ObjectCreated

Notification
Lambda
SQS Workers
Amazon S3 – Secondary Lists

Restrict Use of S3 LIST
DynamoDB
RDS
CloudSearch
EC2
S3 ObjectCreated

Notification
Lambda
SQS Workers
Demo

S3 Optimisation
How can I simplify encryption for data in
transit and data at rest?
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Elastic Load
Balancer with
SSL Termination
(Announced 2010)
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Elastic Load
Balancer with
SSL Termination
(Announced 2010)
CloudFront with
HTTPS Access
With Custom
Domain Names
(Announced 2013)
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Elastic Load
Balancer with
SSL Termination
(Announced 2010)
CloudFront with
HTTPS Access
With Custom
Domain Names
(Announced 2013)
RDS with SSL
(MySQL - 2010)
(SQL Server – 2012)
(Oracle/NNE – 2013)
(PostgreSQL – 2013)
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Elastic Load
Balancer with
SSL Termination
(Announced 2010)
CloudFront with
HTTPS Access
With Custom
Domain Names
(Announced 2013)
RDS with SSL
(MySQL - 2010)
(SQL Server – 2012)
(Oracle/NNE – 2013)
(PostgreSQL – 2013)
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Store Data
with Envelope
Encryption
Client Application
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
1) User creates Customer Master Keys (CMK)
Store Data
with Envelope
Encryption
Client Application
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
2) User associates resource with CMK
Store Data
with Envelope
Encryption
Client Application
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Obj
3) Request to store data & context for encryption
Data
Data
Data
Requests
Store Data
with Envelope
Encryption
Client Application
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Obj
Data
Data
Data
4) Service requests encryption key with context
Store Data
with Envelope
Encryption
Client Application
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Obj
Data
Data
Data
5) AWS KMS returns an encryption (data) key
+ an encrypted version of the key
+ +
+ +Store Data
with Envelope
Encryption
Client Application
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
6) Service encrypts the data with the encryption key
then deletes the key from memory
Store Data
with Envelope
Encryption
Client Application
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
7) Service stores the data along with the
encrypted key
Store Data
with Envelope
Encryption
Client Application
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Client Application
Retrieve Data
with Envelope
Encryption
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Client Application
Request Request Request Request
1) Request to retrieve data
Retrieve Data
with Envelope
Encryption
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Client Application
Request Request Request Request
2) Service retrieves the encrypted data
& encrypted key.
Retrieve Data
with Envelope
Encryption
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Client Application
3) Service sends the encrypted key and
the UserID to KMS.
Retrieve Data
with Envelope
Encryption
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Client Application
4) AWS KMS unencrypts the encryption key and
returns the key to the service
Retrieve Data
with Envelope
Encryption
Announced 2014
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Client Application
5) Service decrypts the data with the
encryption key, then deletes the key from
memory
Data Data DataObj
Retrieve Data
with Envelope
Encryption
Announced 2014
6) Service returns the
data to the user
Simplifying encryption in AWS – Today
Amazon S3
Object
Amazon EBS
Volume
Amazon RDS

or Redshift
Custom

Application
AWS KMS
Client Application
Data Data
Data
Obj
Retrieve Data
with Envelope
Encryption
Announced 2014
Demo

Integrating KMS
I’ve hit some obstacles with my VPC in terms of
integration and performance, what are some of my options
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
This is a bottleneck &
SPOF!
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
This is a bottleneck &
SPOF!
These are bandwidth-
intensive for Internet
egress
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
This is a bottleneck &
SPOF!
These are bandwidth-
intensive for Internet
egress
Applications with
legacy network reqs
10.4.0.0/16 10.0.0.0/16
172.16.0.0/16
192.168.0.0/16
172.17.0.0/16
10.1.0.0/16 10.2.0.0/1610.3.0.0/16
company data center
10.10.0.0/16
VPC Peering
10.4.0.0/16 10.0.0.0/16
172.16.0.0/16
192.168.0.0/16
172.17.0.0/16
10.1.0.0/16 10.2.0.0/1610.3.0.0/16
company data center
10.10.0.0/16
VPC Peering
10.4.0.0/16 10.0.0.0/16
172.16.0.0/16
192.168.0.0/16
172.17.0.0/16
10.1.0.0/16 10.2.0.0/1610.3.0.0/16
company data center
10.10.0.0/16
VPC Peering
10.1.0.0/16
10.0.0.0/16 10.0.0.0/16
Taking VPC Peering to the next Level
10.1.0.0/16
10.0.0.0/16 10.0.0.0/16
Taking VPC Peering to the next Level
10.1.0.0/16
10.0.0.0/16 10.0.0.0/16
✔
Taking VPC Peering to the next Level
10.1.0.0/16
10.0.0.0/16 10.0.0.0/16
✔
Taking VPC Peering to the next Level
Overlapping IP is not
a dead end
10.0.0.0/16 10.0.0.0/16
10.1.0.0/16
A
B C
Taking VPC Peering to the next Level
PCX-1 PCX-2
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16
A
B C
Taking VPC Peering to the next Level
PCX-1 PCX-2
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
A
B C
Taking VPC Peering to the next Level
PCX-1 PCX-2
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
PCX-1 PCX-2
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
PCX-1 PCX-2
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.1.0/24 PCX-1
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.2.0/24 PCX-1
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
Floating NAT
Network
PCX-1 PCX-2
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.1.0/24 PCX-1
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.2.0/24 PCX-1
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
Floating NAT
Network
10.0.0.58
PCX-1 PCX-2
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.1.0/24 PCX-1
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.2.0/24 PCX-1
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
Floating NAT
Network
10.0.0.58 10.0.0.105
PCX-1 PCX-2
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.1.0/24 PCX-1
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.2.0/24 PCX-1
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
Floating NAT
Network
10.0.0.58 10.0.0.105
PCX-1 PCX-210.1.1.105 10.1.2.105
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.1.0/24 PCX-1
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.2.0/24 PCX-1
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
Floating NAT
Network
SRC: 10.0.0.58
DST: 10.1.1.105
SRC: 10.1.2.105
DST: 10.0.0.105
10.0.0.58 10.0.0.105
PCX-1 PCX-210.1.1.105 10.1.2.105
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.1.0/24 PCX-1
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.2.0/24 PCX-1
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
Floating NAT
Network
SRC: 10.0.0.58
DST: 10.1.1.105
SRC: 10.1.2.105
DST: 10.0.0.105
10.0.0.58 10.0.0.105
PCX-1 PCX-210.1.1.105 10.1.2.105
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.1.0/24 PCX-1
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.2.0/24 PCX-1
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
Floating NAT
Network
SRC: 10.0.0.58
DST: 10.1.1.105
SRC: 10.1.2.105
DST: 10.0.0.105
10.0.0.58 10.0.0.105
PCX-1 PCX-210.1.1.105 10.1.2.105
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.1.0/24 PCX-1
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.2.0/24 PCX-1
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
Floating NAT
Network
SRC: 10.0.0.58
DST: 10.1.1.105
SRC: 10.1.2.105
DST: 10.0.0.105
10.0.0.58 10.0.0.105
PCX-1 PCX-210.1.1.105 10.1.2.105
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.1.0/24 PCX-1
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.2.0/24 PCX-1
10.0.0.0/16 10.0.0.0/16
Subnet 1
10.1.1.0/24
Subnet 2
10.1.2.0/24
10.1.0.0/16Route Table Subnet 1
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-1
Route Table Subnet 2
Destination Target
10.1.0.0/16 local
10.0.0.0/16 PCX-2
A
B C
Taking VPC Peering to the next Level
Floating NAT
Network
SRC: 10.0.0.58
DST: 10.1.1.105
SRC: 10.1.2.105
DST: 10.0.0.105
10.0.0.58 10.0.0.105
PCX-1 PCX-210.1.1.105 10.1.2.105
Route53 Private
Hosted Zone
Route53 Private
Hosted Zone
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.1.0/24 PCX-1
Route Table Subnet #
Destination Target
10.0.0.0/16 local
10.1.2.0/24 PCX-1
Demo

VPC to VPC Communication
Availability Zone A
Private Subnet
Availability Zone B
Private Subnet
Internet
AWS
region
Public Subnet Public Subnet
NAT
• Use Auto Scaling for NAT
availability
• Create 1 NAT per Availability
Zone
• All private subnet route tables to
point to same zone NAT
• 1 Auto Scaling group per NAT
with min and max size set to 1
• Let Auto Scaling monitor the
health and availability of your
NATs
• NAT bootstrap script updates
route tables programmatically
• Latest version of script – uses
tags: https://github.com/ralex-aws/vpc
Auto scale HA NAT
Dynamo DB
Scaling Internet egress capacity
NAT
ASG
min=1
max=1
ASG
min=1
max=1
SQS
SNS
Availability Zone A
Private Subnet
Availability Zone B
Private Subnet
Internet
AWS
region
Public Subnet Public Subnet
NAT
• Use Auto Scaling for NAT
availability
• Create 1 NAT per Availability
Zone
• All private subnet route tables to
point to same zone NAT
• 1 Auto Scaling group per NAT
with min and max size set to 1
• Let Auto Scaling monitor the
health and availability of your
NATs
• NAT bootstrap script updates
route tables programmatically
• Latest version of script – uses
tags: https://github.com/ralex-aws/vpc
Auto scale HA NAT
Dynamo DB
Scaling Internet egress capacity
NAT
ASG
min=1
max=1
ASG
min=1
max=1
SQS
SNS
Availability Zone A
Private Subnet
Availability Zone B
Private Subnet
Internet
AWS
region
Public Subnet Public Subnet
NAT
• Use Auto Scaling for NAT
availability
• Create 1 NAT per Availability
Zone
• All private subnet route tables to
point to same zone NAT
• 1 Auto Scaling group per NAT
with min and max size set to 1
• Let Auto Scaling monitor the
health and availability of your
NATs
• NAT bootstrap script updates
route tables programmatically
• Latest version of script – uses
tags: https://github.com/ralex-aws/vpc
Auto scale HA NAT
Dynamo DB
Scaling Internet egress capacity
NAT
ASG
min=1
max=1
ASG
min=1
max=1
SQS
SNS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
S3
Scaling Internet egress capacity
Direct
Connect
DynamoDBSQS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
S3
Scaling Internet egress capacity
Direct
Connect
DynamoDBSQS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
• Squid Proxy layer deployed
between internal load balancer
and the IGW border.
Public Subnet Public Subnet
S3
Scaling Internet egress capacity
Direct
Connect
DynamoDBSQS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
• Squid Proxy layer deployed
between internal load balancer
and the IGW border.
Public Subnet Public Subnet
S3
• Only proxy subnets have route to
IGW.
Scaling Internet egress capacity
# CIDR AND Destination Domain based Allow
# CIDR Subnet blocks for Internal ELBs
acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24
# Destination domain for target S3 bucket
acl aws_v2_endpoints dstdomain .amazonaws.com
# Squid does AND on both ACLs for allow match
http_access allow int_elb_cidrs aws_v2_endpoints
# Deny everything else
http_access deny all
Direct
Connect
DynamoDBSQS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
• Squid Proxy layer deployed
between internal load balancer
and the IGW border.
Public Subnet Public Subnet
S3
• Only proxy subnets have route to
IGW.
Scaling Internet egress capacity
# CIDR AND Destination Domain based Allow
# CIDR Subnet blocks for Internal ELBs
acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24
# Destination domain for target S3 bucket
acl aws_v2_endpoints dstdomain .amazonaws.com
# Squid does AND on both ACLs for allow match
http_access allow int_elb_cidrs aws_v2_endpoints
# Deny everything else
http_access deny all
Direct
Connect
DynamoDBSQS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
• Squid Proxy layer deployed
between internal load balancer
and the IGW border.
Public Subnet Public Subnet
S3
• Only proxy subnets have route to
IGW.
• Proxy security group allows
inbound only from Elastic Load
Balancing security group.
Scaling Internet egress capacity
# CIDR AND Destination Domain based Allow
# CIDR Subnet blocks for Internal ELBs
acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24
# Destination domain for target S3 bucket
acl aws_v2_endpoints dstdomain .amazonaws.com
# Squid does AND on both ACLs for allow match
http_access allow int_elb_cidrs aws_v2_endpoints
# Deny everything else
http_access deny all
Direct
Connect
DynamoDBSQS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
• Squid Proxy layer deployed
between internal load balancer
and the IGW border.
Public Subnet Public Subnet
S3
HTTP/S
• Only proxy subnets have route to
IGW.
• Proxy security group allows
inbound only from Elastic Load
Balancing security group.
• Proxy restricts which URLs may
pass. In this example,
*.amazonaws.com is allowed.
Scaling Internet egress capacity
# CIDR AND Destination Domain based Allow
# CIDR Subnet blocks for Internal ELBs
acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24
# Destination domain for target S3 bucket
acl aws_v2_endpoints dstdomain .amazonaws.com
# Squid does AND on both ACLs for allow match
http_access allow int_elb_cidrs aws_v2_endpoints
# Deny everything else
http_access deny all
Direct
Connect
DynamoDBSQS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
• Squid Proxy layer deployed
between internal load balancer
and the IGW border.
Public Subnet Public Subnet
S3
HTTP/S
• Only proxy subnets have route to
IGW.
• Proxy security group allows
inbound only from Elastic Load
Balancing security group.
• Proxy restricts which URLs may
pass. In this example,
*.amazonaws.com is allowed.
• Egress NACLs on proxy subnets
enforce HTTP/S only.
Scaling Internet egress capacity
# CIDR AND Destination Domain based Allow
# CIDR Subnet blocks for Internal ELBs
acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24
# Destination domain for target S3 bucket
acl aws_v2_endpoints dstdomain .amazonaws.com
# Squid does AND on both ACLs for allow match
http_access allow int_elb_cidrs aws_v2_endpoints
# Deny everything else
http_access deny all
Direct
Connect
DynamoDBSQS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
• Squid Proxy layer deployed
between internal load balancer
and the IGW border.
Public Subnet Public Subnet
S3
HTTP/S
• Only proxy subnets have route to
IGW.
• Proxy security group allows
inbound only from Elastic Load
Balancing security group.
• Proxy restricts which URLs may
pass. In this example,
*.amazonaws.com is allowed.
• Egress NACLs on proxy subnets
enforce HTTP/S only.
Scaling Internet egress capacity
# CIDR AND Destination Domain based Allow
# CIDR Subnet blocks for Internal ELBs
acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24
# Destination domain for target S3 bucket
acl aws_v2_endpoints dstdomain .amazonaws.com
# Squid does AND on both ACLs for allow match
http_access allow int_elb_cidrs aws_v2_endpoints
# Deny everything else
http_access deny all
Direct
Connect
DynamoDBSQS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
• Squid Proxy layer deployed
between internal load balancer
and the IGW border.
Public Subnet Public Subnet
S3
HTTP/S
• Only proxy subnets have route to
IGW.
• Proxy security group allows
inbound only from Elastic Load
Balancing security group.
• Proxy restricts which URLs may
pass. In this example,
*.amazonaws.com is allowed.
• Egress NACLs on proxy subnets
enforce HTTP/S only.
Scaling Internet egress capacity
# CIDR AND Destination Domain based Allow
# CIDR Subnet blocks for Internal ELBs
acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24
# Destination domain for target S3 bucket
acl aws_v2_endpoints dstdomain .amazonaws.com
# Squid does AND on both ACLs for allow match
http_access allow int_elb_cidrs aws_v2_endpoints
# Deny everything else
http_access deny all
Direct
Connect
DynamoDBSQS
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
• Squid Proxy layer deployed
between internal load balancer
and the IGW border.
Public Subnet Public Subnet
S3
HTTP/S
• Only proxy subnets have route to
IGW.
• Proxy security group allows
inbound only from Elastic Load
Balancing security group.
• Proxy restricts which URLs may
pass. In this example,
*.amazonaws.com is allowed.
• Egress NACLs on proxy subnets
enforce HTTP/S only.
Scaling Internet egress capacity
# CIDR AND Destination Domain based Allow
# CIDR Subnet blocks for Internal ELBs
acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24
# Destination domain for target S3 bucket
acl aws_v2_endpoints dstdomain .amazonaws.com
# Squid does AND on both ACLs for allow match
http_access allow int_elb_cidrs aws_v2_endpoints
# Deny everything else
http_access deny all
Direct
Connect
DynamoDBSQS
• Could also have HA NATs
NATNAT
Availability Zone A
Private Subnet(s) Private Subnet(s)
AWS region
VPN connection
Customer data
center
Intranet AppsIntranet Apps
Availability Zone B
Internal customers
Controlling the border
Internal
Load
balancer
Elastic Load Balancing
Private Subnet
Elastic Load Balancing
Private Subnet
• Squid Proxy layer deployed
between internal load balancer
and the IGW border.
Public Subnet Public Subnet
S3
HTTP/S
• Only proxy subnets have route to
IGW.
• Proxy security group allows
inbound only from Elastic Load
Balancing security group.
• Proxy restricts which URLs may
pass. In this example,
*.amazonaws.com is allowed.
• Egress NACLs on proxy subnets
enforce HTTP/S only.
Scaling Internet egress capacity
# CIDR AND Destination Domain based Allow
# CIDR Subnet blocks for Internal ELBs
acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24
# Destination domain for target S3 bucket
acl aws_v2_endpoints dstdomain .amazonaws.com
# Squid does AND on both ACLs for allow match
http_access allow int_elb_cidrs aws_v2_endpoints
# Deny everything else
http_access deny all
Direct
Connect
DynamoDBSQS
• Could also have HA NATs
NATNAT
Multicast on AWS
Multicast on AWS
• Not directly supported
Multicast on AWS
• Not directly supported
10.0.0.54
10.0.0.79
10.0.1.132
Subnet 10.0.0.0/24 Subnet 10.0.1.0/24
10.0.1.18310.0.0.41
Multicast on AWS
• Not directly supported
• Can be implemented with an overlay network
– GRE or L2TP tunnels, Ntop’s N2N
10.0.0.54
10.0.0.79
10.0.1.132
Subnet 10.0.0.0/24 Subnet 10.0.1.0/24
10.0.1.18310.0.0.41
Multicast on AWS
• Not directly supported
• Can be implemented with an overlay network
– GRE or L2TP tunnels, Ntop’s N2N
10.0.0.54
10.0.0.79
10.0.1.132
Subnet 10.0.0.0/24 Subnet 10.0.1.0/24
Tunnel
10.0.1.18310.0.0.41
Multicast on AWS
• Not directly supported
• Can be implemented with an overlay network
– GRE or L2TP tunnels, Ntop’s N2N
10.0.0.54
10.0.0.79
10.0.1.132192.16.0.10
192.168.0.13
Subnet 10.0.0.0/24 Subnet 10.0.1.0/24
Tunnel
10.0.1.18310.0.0.41
Multicast on AWS
• Not directly supported
• Can be implemented with an overlay network
– GRE or L2TP tunnels, Ntop’s N2N
• GRE configuration can be automated
– Multicast configuration stored in tags
10.0.0.54
10.0.0.79
10.0.1.132192.16.0.10
192.168.0.12
192.168.0.13
Subnet 10.0.0.0/24 Subnet 10.0.1.0/24
Tunnel
10.0.1.18310.0.0.41
192.168.0.12
192.168.0.0/24 Overlay
Multicast on AWS
• Not directly supported
• Can be implemented with an overlay network
– GRE or L2TP tunnels, Ntop’s N2N
• GRE configuration can be automated
– Multicast configuration stored in tags
10.0.0.54
10.0.0.79
10.0.1.132192.16.0.10
192.168.0.12
192.168.0.13
Subnet 10.0.0.0/24 Subnet 10.0.1.0/24
Tunnel
10.0.1.18310.0.0.41
192.168.0.12
192.168.0.0/24 Overlay
TAG: multicast
App1,192.168.0.13/24
TAG: multicast
App1,192.168.0.12/24
TAG: multicast
App1,192.168.0.10/24
Multicast on AWS
• Not directly supported
• Can be implemented with an overlay network
– GRE or L2TP tunnels, Ntop’s N2N
• GRE configuration can be automated
– Multicast configuration stored in tags
10.0.0.54
10.0.0.79
10.0.1.132192.16.0.10
192.168.0.12
192.168.0.13
Subnet 10.0.0.0/24 Subnet 10.0.1.0/24
Tunnel
10.0.1.18310.0.0.41
192.168.0.12
192.168.0.0/24 Overlay
TAG: multicast
App1,192.168.0.13/24
TAG: multicast
App1,192.168.0.12/24
TAG: multicast
App1,192.168.0.10/24
Setup Guide:
http://bit.ly/aws-multi
Multicast on AWS
• Not directly supported
• Can be implemented with an overlay network
– GRE or L2TP tunnels, Ntop’s N2N
• GRE configuration can be automated
– Multicast configuration stored in tags
• Periodically check for new members (60 seconds)
10.0.0.54
10.0.0.79
10.0.1.132192.16.0.10
192.168.0.12
192.168.0.13
Subnet 10.0.0.0/24 Subnet 10.0.1.0/24
Tunnel
10.0.1.18310.0.0.41
192.168.0.12
192.168.0.0/24 Overlay
TAG: multicast
App1,192.168.0.13/24
TAG: multicast
App1,192.168.0.12/24
TAG: multicast
App1,192.168.0.10/24
Setup Guide:
http://bit.ly/aws-multi
Demo

Scalable & HA Internet Egress
I’ve automated my deployments but what
about responding to events?
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
What about
services with no
native CloudWatch
integration
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
What about
services with no
native CloudWatch
integration
Managing non-
CloudFormation
supported
resources/events
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
What about
services with no
native CloudWatch
integration
Collecting and
analysing non-EC2
logs
Managing non-
CloudFormation
supported
resources/events
Your Application Stacks
Availability Zone A Availability Zone B
Private subnetPrivate subnet
Public subnetPublic subnet
Private subnetPrivate subnet
CloudFront
Glacier
S3
DynamoDB
Route 53
CloudWatch
CloudFormation
NAT
Stacks for:
VPC
Edge Services
Datastores
Applications
Presentation
Amazon SQS
Auto Scaling groups
AWS Region
SNS
What about
services with no
native CloudWatch
integration
Collecting and
analysing non-EC2
logs
Managing non-
CloudFormation
supported
resources/events
Advanced uses of CloudWatch – Custom Metrics
#!/usr/bin/python
import boto.ec2.cloudwatch
import boto.vpc
AWS_Regions=["us-east-1","us-west-2","us-west-1","eu-west-1"]
CloudWatch_Region="us-east-1"
cw = boto.ec2.cloudwatch.connect_to_region(CloudWatch_Region)
for region in AWS_Regions:
vpcconn = boto.vpc.connect_to_region(region)
vpns = vpcconn.get_all_vpn_connections()
for vpn in vpns:
if vpn.state == "available":
active_tunnels = 0
if vpn.tunnels[0].status == "UP":
active_tunnels+=1
if vpn.tunnels[1].status == "UP":
active_tunnels+=1
print vpn.id+" has "+str(active_tunnels)+" active tunnels!”
cw.put_metric_data("VPNStatus", vpn.id, value=active_tunnels,
dimensions={'VGW':vpn.vpn_gateway_id, 'CGW':vpn.customer_gateway_id})
Advanced uses of CloudWatch – Custom Metrics
#!/usr/bin/python
import boto.ec2.cloudwatch
import boto.vpc
AWS_Regions=["us-east-1","us-west-2","us-west-1","eu-west-1"]
CloudWatch_Region="us-east-1"
cw = boto.ec2.cloudwatch.connect_to_region(CloudWatch_Region)
for region in AWS_Regions:
vpcconn = boto.vpc.connect_to_region(region)
vpns = vpcconn.get_all_vpn_connections()
for vpn in vpns:
if vpn.state == "available":
active_tunnels = 0
if vpn.tunnels[0].status == "UP":
active_tunnels+=1
if vpn.tunnels[1].status == "UP":
active_tunnels+=1
print vpn.id+" has "+str(active_tunnels)+" active tunnels!”
cw.put_metric_data("VPNStatus", vpn.id, value=active_tunnels,
dimensions={'VGW':vpn.vpn_gateway_id, 'CGW':vpn.customer_gateway_id})
Advanced uses of CloudWatch – Custom Metrics
#!/usr/bin/python
import boto.ec2.cloudwatch
import boto.vpc
AWS_Regions=["us-east-1","us-west-2","us-west-1","eu-west-1"]
CloudWatch_Region="us-east-1"
cw = boto.ec2.cloudwatch.connect_to_region(CloudWatch_Region)
for region in AWS_Regions:
vpcconn = boto.vpc.connect_to_region(region)
vpns = vpcconn.get_all_vpn_connections()
for vpn in vpns:
if vpn.state == "available":
active_tunnels = 0
if vpn.tunnels[0].status == "UP":
active_tunnels+=1
if vpn.tunnels[1].status == "UP":
active_tunnels+=1
print vpn.id+" has "+str(active_tunnels)+" active tunnels!”
cw.put_metric_data("VPNStatus", vpn.id, value=active_tunnels,
dimensions={'VGW':vpn.vpn_gateway_id, 'CGW':vpn.customer_gateway_id})
Advanced uses of CloudWatch – Custom Metrics
#!/usr/bin/python
import boto.ec2.cloudwatch
import boto.vpc
AWS_Regions=["us-east-1","us-west-2","us-west-1","eu-west-1"]
CloudWatch_Region="us-east-1"
cw = boto.ec2.cloudwatch.connect_to_region(CloudWatch_Region)
for region in AWS_Regions:
vpcconn = boto.vpc.connect_to_region(region)
vpns = vpcconn.get_all_vpn_connections()
for vpn in vpns:
if vpn.state == "available":
active_tunnels = 0
if vpn.tunnels[0].status == "UP":
active_tunnels+=1
if vpn.tunnels[1].status == "UP":
active_tunnels+=1
print vpn.id+" has "+str(active_tunnels)+" active tunnels!”
cw.put_metric_data("VPNStatus", vpn.id, value=active_tunnels,
dimensions={'VGW':vpn.vpn_gateway_id, 'CGW':vpn.customer_gateway_id})
And Not Just For AWS
Resources!
Advanced uses of CloudWatch – Logs
CloudWatch

Logs
Advanced uses of CloudWatch – Logs
EC2
CloudWatch

Logs
OS Agent-based
Advanced uses of CloudWatch – Logs
EC2
Traditional
Server
CloudWatch

Logs
OS Agent-based
OS Agent-based
Advanced uses of CloudWatch – Logs
CloudTrail
EC2
Traditional
Server
CloudWatch

Logs
OS Agent-based
OS Agent-based
Native
Advanced uses of CloudWatch – Logs
CloudTrail
S3
EC2
Traditional
Server
CloudWatch

Logs
OS Agent-based
OS Agent-based
Native
Pull/Push

Lambda??
Advanced uses of CloudWatch – Logs
CloudTrail
S3
EC2
Traditional
Server
CloudWatch

Logs
CloudFront
OS Agent-based
OS Agent-based
Native
Pull/Push

Lambda??
Pull/Push

Lam
bda??
Advanced uses of CloudWatch – Logs
CloudTrail
S3
EC2
Traditional
Server
CloudWatch

Logs
CloudFront
OS Agent-based
OS Agent-based
Native
Pull/Push

Lambda??
Pull/Push

Lam
bda??
Metrics filters:
Advanced uses of CloudWatch – Logs
CloudTrail
S3
EC2
Traditional
Server
CloudWatch

Logs
CloudFront
OS Agent-based
OS Agent-based
Native
Pull/Push

Lambda??
Pull/Push

Lam
bda??
Metrics filters:
• Literal Terms
Advanced uses of CloudWatch – Logs
CloudTrail
S3
EC2
Traditional
Server
CloudWatch

Logs
CloudFront
OS Agent-based
OS Agent-based
Native
Pull/Push

Lambda??
Pull/Push

Lam
bda??
Metrics filters:
• Literal Terms
Advanced uses of CloudWatch – Logs
CloudTrail
S3
EC2
Traditional
Server
CloudWatch

Logs
CloudFront
OS Agent-based
OS Agent-based
Native
Pull/Push

Lambda??
Pull/Push

Lam
bda??
Metrics filters:
• Literal Terms
• Common Log Format
Advanced uses of CloudWatch – Logs
CloudTrail
S3
EC2
Traditional
Server
CloudWatch

Logs
CloudFront
OS Agent-based
OS Agent-based
Native
Pull/Push

Lambda??
Pull/Push

Lam
bda??
Metrics filters:
• Literal Terms
• Common Log Format
Advanced uses of CloudWatch – Logs
CloudTrail
S3
EC2
Traditional
Server
CloudWatch

Logs
CloudFront
OS Agent-based
OS Agent-based
Native
Pull/Push

Lambda??
Pull/Push

Lam
bda??
Metrics filters:
• Literal Terms
• Common Log Format
• JSON
Lambda-powered custom resources
EC2
instance
Software pkgs,
config, & dataCloudWatch
alarms
Your AWS CloudFormation stack
// Implement custom logic here
Look up an AMI ID
Your AWS Lambda functions
Look up VPC ID and Subnet ID
Reverse an IP address
Lambda-powered
custom resources
Lambda-powered custom resources
security group
Auto Scaling group
EC2
instance
Elastic Load
Balancing
ElastiCache
memcached
cluster
Software pkgs,
config, & dataCloudWatch
alarms
Your AWS CloudFormation stack
// Implement custom logic here
Look up an AMI ID
Your AWS Lambda functions
Look up VPC ID and Subnet ID
Reverse an IP address
Lambda-powered
custom resources
Demo

Lambda & CloudFormation
Recent announcements of interest
• AWS Lambda GA
• Amazon EC2 Container Service GA
• Amazon Machine Learning
• Amazon Workspaces Application Manager
• Amazon Elastic File System
AWS Blackbelt NINJA Dojo

More Related Content

What's hot

Maximizing EC2 and Elastic Block Store Disk Performance
Maximizing EC2 and Elastic Block Store Disk PerformanceMaximizing EC2 and Elastic Block Store Disk Performance
Maximizing EC2 and Elastic Block Store Disk PerformanceAmazon Web Services
 
(SDD416) Amazon EBS Deep Dive | AWS re:Invent 2014
(SDD416) Amazon EBS Deep Dive | AWS re:Invent 2014(SDD416) Amazon EBS Deep Dive | AWS re:Invent 2014
(SDD416) Amazon EBS Deep Dive | AWS re:Invent 2014Amazon Web Services
 
AWS Webcast - Cost and Performance Optimization in Amazon RDS
AWS Webcast - Cost and Performance Optimization in Amazon RDSAWS Webcast - Cost and Performance Optimization in Amazon RDS
AWS Webcast - Cost and Performance Optimization in Amazon RDSAmazon Web Services
 
Deep Dive: Maximizing EC2 and EBS Performance
Deep Dive: Maximizing EC2 and EBS PerformanceDeep Dive: Maximizing EC2 and EBS Performance
Deep Dive: Maximizing EC2 and EBS PerformanceAmazon Web Services
 
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)Amazon Web Services
 
Deep Dive on Amazon EBS - AWS Online Tech Talks
Deep Dive on Amazon EBS - AWS Online Tech TalksDeep Dive on Amazon EBS - AWS Online Tech Talks
Deep Dive on Amazon EBS - AWS Online Tech TalksAmazon Web Services
 
Amazon RDS for MySQL – Diagnostics, Security, and Data Migration (DAT302) | A...
Amazon RDS for MySQL – Diagnostics, Security, and Data Migration (DAT302) | A...Amazon RDS for MySQL – Diagnostics, Security, and Data Migration (DAT302) | A...
Amazon RDS for MySQL – Diagnostics, Security, and Data Migration (DAT302) | A...Amazon Web Services
 
Deep Dive on Amazon Elastic Block Store
Deep Dive on Amazon Elastic Block StoreDeep Dive on Amazon Elastic Block Store
Deep Dive on Amazon Elastic Block StoreAmazon Web Services
 
Amazon RDS for Performance-Intensive Production Applications (DAT301) | AWS r...
Amazon RDS for Performance-Intensive Production Applications (DAT301) | AWS r...Amazon RDS for Performance-Intensive Production Applications (DAT301) | AWS r...
Amazon RDS for Performance-Intensive Production Applications (DAT301) | AWS r...Amazon Web Services
 
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store Performance
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store PerformanceDeep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store Performance
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store PerformanceAmazon Web Services
 
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store Performance
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store PerformanceDeep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store Performance
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store PerformanceAmazon Web Services
 
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New FeaturesAmazon Web Services
 
Deep Dive on Delivering Amazon EC2 Instance Performance
Deep Dive on Delivering Amazon EC2 Instance PerformanceDeep Dive on Delivering Amazon EC2 Instance Performance
Deep Dive on Delivering Amazon EC2 Instance PerformanceAmazon Web Services
 
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014Amazon Web Services
 
DevOps for ETL processing at scale with MongoDB, Solr, AWS and Chef
DevOps for ETL processing at scale with MongoDB, Solr, AWS and ChefDevOps for ETL processing at scale with MongoDB, Solr, AWS and Chef
DevOps for ETL processing at scale with MongoDB, Solr, AWS and ChefGaurav "GP" Pal
 
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 GamingAmazon Web Services Korea
 
コンテンツ配信: CloudFront & 名前解決サービス: Route 53 詳細 -ほぼ週刊AWSマイスターシリーズ第3回-
コンテンツ配信: CloudFront & 名前解決サービス: Route 53 詳細 -ほぼ週刊AWSマイスターシリーズ第3回- コンテンツ配信: CloudFront & 名前解決サービス: Route 53 詳細 -ほぼ週刊AWSマイスターシリーズ第3回-
コンテンツ配信: CloudFront & 名前解決サービス: Route 53 詳細 -ほぼ週刊AWSマイスターシリーズ第3回- SORACOM, INC
 

What's hot (20)

Maximizing EC2 and Elastic Block Store Disk Performance
Maximizing EC2 and Elastic Block Store Disk PerformanceMaximizing EC2 and Elastic Block Store Disk Performance
Maximizing EC2 and Elastic Block Store Disk Performance
 
(SDD416) Amazon EBS Deep Dive | AWS re:Invent 2014
(SDD416) Amazon EBS Deep Dive | AWS re:Invent 2014(SDD416) Amazon EBS Deep Dive | AWS re:Invent 2014
(SDD416) Amazon EBS Deep Dive | AWS re:Invent 2014
 
AWS Webcast - Cost and Performance Optimization in Amazon RDS
AWS Webcast - Cost and Performance Optimization in Amazon RDSAWS Webcast - Cost and Performance Optimization in Amazon RDS
AWS Webcast - Cost and Performance Optimization in Amazon RDS
 
Deep Dive: Maximizing EC2 and EBS Performance
Deep Dive: Maximizing EC2 and EBS PerformanceDeep Dive: Maximizing EC2 and EBS Performance
Deep Dive: Maximizing EC2 and EBS Performance
 
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)
 
Deep Dive on Amazon EBS - AWS Online Tech Talks
Deep Dive on Amazon EBS - AWS Online Tech TalksDeep Dive on Amazon EBS - AWS Online Tech Talks
Deep Dive on Amazon EBS - AWS Online Tech Talks
 
Amazon RDS for MySQL – Diagnostics, Security, and Data Migration (DAT302) | A...
Amazon RDS for MySQL – Diagnostics, Security, and Data Migration (DAT302) | A...Amazon RDS for MySQL – Diagnostics, Security, and Data Migration (DAT302) | A...
Amazon RDS for MySQL – Diagnostics, Security, and Data Migration (DAT302) | A...
 
Deep Dive on Amazon Elastic Block Store
Deep Dive on Amazon Elastic Block StoreDeep Dive on Amazon Elastic Block Store
Deep Dive on Amazon Elastic Block Store
 
Amazon RDS for Performance-Intensive Production Applications (DAT301) | AWS r...
Amazon RDS for Performance-Intensive Production Applications (DAT301) | AWS r...Amazon RDS for Performance-Intensive Production Applications (DAT301) | AWS r...
Amazon RDS for Performance-Intensive Production Applications (DAT301) | AWS r...
 
AWS EBS
AWS EBSAWS EBS
AWS EBS
 
(STG402) Amazon EBS Deep Dive
(STG402) Amazon EBS Deep Dive(STG402) Amazon EBS Deep Dive
(STG402) Amazon EBS Deep Dive
 
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store Performance
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store PerformanceDeep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store Performance
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store Performance
 
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store Performance
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store PerformanceDeep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store Performance
Deep Dive: Maximizing Amazon EC2 and Amazon Elastic Block Store Performance
 
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features
 
Deep Dive on Delivering Amazon EC2 Instance Performance
Deep Dive on Delivering Amazon EC2 Instance PerformanceDeep Dive on Delivering Amazon EC2 Instance Performance
Deep Dive on Delivering Amazon EC2 Instance Performance
 
Oracle on AWS RDS Migration - 성기명
Oracle on AWS RDS Migration - 성기명Oracle on AWS RDS Migration - 성기명
Oracle on AWS RDS Migration - 성기명
 
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014
 
DevOps for ETL processing at scale with MongoDB, Solr, AWS and Chef
DevOps for ETL processing at scale with MongoDB, Solr, AWS and ChefDevOps for ETL processing at scale with MongoDB, Solr, AWS and Chef
DevOps for ETL processing at scale with MongoDB, Solr, AWS and Chef
 
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
 
コンテンツ配信: CloudFront & 名前解決サービス: Route 53 詳細 -ほぼ週刊AWSマイスターシリーズ第3回-
コンテンツ配信: CloudFront & 名前解決サービス: Route 53 詳細 -ほぼ週刊AWSマイスターシリーズ第3回- コンテンツ配信: CloudFront & 名前解決サービス: Route 53 詳細 -ほぼ週刊AWSマイスターシリーズ第3回-
コンテンツ配信: CloudFront & 名前解決サービス: Route 53 詳細 -ほぼ週刊AWSマイスターシリーズ第3回-
 

Viewers also liked

Webinar: Delivering Static and Dynamic Content Using CloudFront
Webinar: Delivering Static and Dynamic Content Using CloudFrontWebinar: Delivering Static and Dynamic Content Using CloudFront
Webinar: Delivering Static and Dynamic Content Using CloudFrontAmazon Web Services
 
Build Next Generation Real-time Applications with SAP HANA on AWS (BDT211) | ...
Build Next Generation Real-time Applications with SAP HANA on AWS (BDT211) | ...Build Next Generation Real-time Applications with SAP HANA on AWS (BDT211) | ...
Build Next Generation Real-time Applications with SAP HANA on AWS (BDT211) | ...Amazon Web Services
 
REA Sydney Customer Appreciation Day
REA Sydney Customer Appreciation DayREA Sydney Customer Appreciation Day
REA Sydney Customer Appreciation DayAmazon Web Services
 
Scalable Database Options on AWS
Scalable Database Options on AWSScalable Database Options on AWS
Scalable Database Options on AWSAmazon Web Services
 
AWS Summit 2013 | Auckland - Big Data Analytics
AWS Summit 2013 | Auckland - Big Data AnalyticsAWS Summit 2013 | Auckland - Big Data Analytics
AWS Summit 2013 | Auckland - Big Data AnalyticsAmazon Web Services
 
Amazon WorkSpaces - Fully Managed Desktops in the Cloud
Amazon WorkSpaces - Fully Managed Desktops in the Cloud Amazon WorkSpaces - Fully Managed Desktops in the Cloud
Amazon WorkSpaces - Fully Managed Desktops in the Cloud Amazon Web Services
 
Automating Backup & Archiving with AWS and CommVault
Automating Backup & Archiving with AWS and CommVaultAutomating Backup & Archiving with AWS and CommVault
Automating Backup & Archiving with AWS and CommVaultAmazon Web Services
 
AWS Customer Presentation - Cruxy.com
AWS Customer Presentation - Cruxy.com AWS Customer Presentation - Cruxy.com
AWS Customer Presentation - Cruxy.com Amazon Web Services
 
Delivering High Performance Content
Delivering High Performance ContentDelivering High Performance Content
Delivering High Performance ContentAmazon Web Services
 
AWS Enterprise Summit Manila Windows .net
AWS Enterprise Summit Manila Windows .netAWS Enterprise Summit Manila Windows .net
AWS Enterprise Summit Manila Windows .netAmazon Web Services
 
CPN202 More for Less - AWS re: Invent 2012
CPN202 More for Less - AWS re: Invent 2012CPN202 More for Less - AWS re: Invent 2012
CPN202 More for Less - AWS re: Invent 2012Amazon Web Services
 
AWS Empowering Digital Marketing - September 2013
AWS Empowering Digital Marketing - September 2013AWS Empowering Digital Marketing - September 2013
AWS Empowering Digital Marketing - September 2013Amazon Web Services
 
SEGA’s Digital Strategy with AWS
SEGA’s Digital Strategy with AWSSEGA’s Digital Strategy with AWS
SEGA’s Digital Strategy with AWSAmazon Web Services
 
AWS Cloud School - London April 2012
AWS Cloud School - London April 2012AWS Cloud School - London April 2012
AWS Cloud School - London April 2012Amazon Web Services
 

Viewers also liked (20)

Webinar: Delivering Static and Dynamic Content Using CloudFront
Webinar: Delivering Static and Dynamic Content Using CloudFrontWebinar: Delivering Static and Dynamic Content Using CloudFront
Webinar: Delivering Static and Dynamic Content Using CloudFront
 
Build Next Generation Real-time Applications with SAP HANA on AWS (BDT211) | ...
Build Next Generation Real-time Applications with SAP HANA on AWS (BDT211) | ...Build Next Generation Real-time Applications with SAP HANA on AWS (BDT211) | ...
Build Next Generation Real-time Applications with SAP HANA on AWS (BDT211) | ...
 
REA Sydney Customer Appreciation Day
REA Sydney Customer Appreciation DayREA Sydney Customer Appreciation Day
REA Sydney Customer Appreciation Day
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
Beintoo on Amazon Web Services
Beintoo on Amazon Web ServicesBeintoo on Amazon Web Services
Beintoo on Amazon Web Services
 
Stg205 amazon s3
Stg205 amazon s3Stg205 amazon s3
Stg205 amazon s3
 
Scalable Database Options on AWS
Scalable Database Options on AWSScalable Database Options on AWS
Scalable Database Options on AWS
 
0. series overview
0. series overview0. series overview
0. series overview
 
AWS Summit 2013 | Auckland - Big Data Analytics
AWS Summit 2013 | Auckland - Big Data AnalyticsAWS Summit 2013 | Auckland - Big Data Analytics
AWS Summit 2013 | Auckland - Big Data Analytics
 
Amazon WorkSpaces - Fully Managed Desktops in the Cloud
Amazon WorkSpaces - Fully Managed Desktops in the Cloud Amazon WorkSpaces - Fully Managed Desktops in the Cloud
Amazon WorkSpaces - Fully Managed Desktops in the Cloud
 
Automating Backup & Archiving with AWS and CommVault
Automating Backup & Archiving with AWS and CommVaultAutomating Backup & Archiving with AWS and CommVault
Automating Backup & Archiving with AWS and CommVault
 
AWS Customer Presentation - Cruxy.com
AWS Customer Presentation - Cruxy.com AWS Customer Presentation - Cruxy.com
AWS Customer Presentation - Cruxy.com
 
Delivering High Performance Content
Delivering High Performance ContentDelivering High Performance Content
Delivering High Performance Content
 
AWS Enterprise Summit Manila Windows .net
AWS Enterprise Summit Manila Windows .netAWS Enterprise Summit Manila Windows .net
AWS Enterprise Summit Manila Windows .net
 
CPN202 More for Less - AWS re: Invent 2012
CPN202 More for Less - AWS re: Invent 2012CPN202 More for Less - AWS re: Invent 2012
CPN202 More for Less - AWS re: Invent 2012
 
AWS Empowering Digital Marketing - September 2013
AWS Empowering Digital Marketing - September 2013AWS Empowering Digital Marketing - September 2013
AWS Empowering Digital Marketing - September 2013
 
SEGA’s Digital Strategy with AWS
SEGA’s Digital Strategy with AWSSEGA’s Digital Strategy with AWS
SEGA’s Digital Strategy with AWS
 
Amazon federal registry 2.0
Amazon federal registry 2.0Amazon federal registry 2.0
Amazon federal registry 2.0
 
Mobile apps and iot aws lambda
Mobile apps and iot aws lambdaMobile apps and iot aws lambda
Mobile apps and iot aws lambda
 
AWS Cloud School - London April 2012
AWS Cloud School - London April 2012AWS Cloud School - London April 2012
AWS Cloud School - London April 2012
 

Similar to AWS Blackbelt NINJA Dojo

Deep Dive on Amazon Elastic Block Store
Deep Dive on Amazon Elastic Block StoreDeep Dive on Amazon Elastic Block Store
Deep Dive on Amazon Elastic Block StoreAmazon Web Services
 
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)Amazon Web Services
 
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)Amazon Web Services
 
Optimize MySQL Workloads with Amazon Elastic Block Store - February 2017 AWS ...
Optimize MySQL Workloads with Amazon Elastic Block Store - February 2017 AWS ...Optimize MySQL Workloads with Amazon Elastic Block Store - February 2017 AWS ...
Optimize MySQL Workloads with Amazon Elastic Block Store - February 2017 AWS ...Amazon Web Services
 
AWS Summit Seoul 2015 - EBS 성능 향상 및 EC2 비용 최적화 기법
AWS Summit Seoul 2015 - EBS 성능 향상 및 EC2 비용 최적화 기법AWS Summit Seoul 2015 - EBS 성능 향상 및 EC2 비용 최적화 기법
AWS Summit Seoul 2015 - EBS 성능 향상 및 EC2 비용 최적화 기법Amazon Web Services Korea
 
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)Amazon Web Services
 
What to know about Amazon Elastic Block Store (EBS)
What to know about Amazon Elastic Block Store (EBS)What to know about Amazon Elastic Block Store (EBS)
What to know about Amazon Elastic Block Store (EBS)LCloud
 
AWS vs Azure vs Google Cloud Storage Deep Dive
AWS vs Azure vs Google Cloud Storage Deep DiveAWS vs Azure vs Google Cloud Storage Deep Dive
AWS vs Azure vs Google Cloud Storage Deep DiveRightScale
 
Optimizing Amazon EBS for Performance (CMP317-R2) - AWS re:Invent 2018
Optimizing Amazon EBS for Performance (CMP317-R2) - AWS re:Invent 2018Optimizing Amazon EBS for Performance (CMP317-R2) - AWS re:Invent 2018
Optimizing Amazon EBS for Performance (CMP317-R2) - AWS re:Invent 2018Amazon Web Services
 
Optimizing Amazon EBS for Performance (CMP371) - AWS re:Invent 2018
Optimizing Amazon EBS for Performance (CMP371) - AWS re:Invent 2018Optimizing Amazon EBS for Performance (CMP371) - AWS re:Invent 2018
Optimizing Amazon EBS for Performance (CMP371) - AWS re:Invent 2018Amazon Web Services
 
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)Amazon Web Services
 
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012Amazon Web Services
 
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMCloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMRightScale
 
10 tips to improve the performance of your AWS application
10 tips to improve the performance of your AWS application10 tips to improve the performance of your AWS application
10 tips to improve the performance of your AWS applicationAmazon Web Services
 
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...Amazon Web Services
 
Big data dive amazon emr processing
Big data dive amazon emr processingBig data dive amazon emr processing
Big data dive amazon emr processingOlga Lavrentieva
 
PAC 2019 virtual Stefano Doni
PAC 2019 virtual Stefano Doni   PAC 2019 virtual Stefano Doni
PAC 2019 virtual Stefano Doni Neotys
 
Deep Dive on Amazon Elastic Block Storage (Amazon EBS) (STG310-R1) - AWS re:I...
Deep Dive on Amazon Elastic Block Storage (Amazon EBS) (STG310-R1) - AWS re:I...Deep Dive on Amazon Elastic Block Storage (Amazon EBS) (STG310-R1) - AWS re:I...
Deep Dive on Amazon Elastic Block Storage (Amazon EBS) (STG310-R1) - AWS re:I...Amazon Web Services
 

Similar to AWS Blackbelt NINJA Dojo (20)

Deep Dive on Amazon Elastic Block Store
Deep Dive on Amazon Elastic Block StoreDeep Dive on Amazon Elastic Block Store
Deep Dive on Amazon Elastic Block Store
 
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
 
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
 
Optimize MySQL Workloads with Amazon Elastic Block Store - February 2017 AWS ...
Optimize MySQL Workloads with Amazon Elastic Block Store - February 2017 AWS ...Optimize MySQL Workloads with Amazon Elastic Block Store - February 2017 AWS ...
Optimize MySQL Workloads with Amazon Elastic Block Store - February 2017 AWS ...
 
AWS Summit Seoul 2015 - EBS 성능 향상 및 EC2 비용 최적화 기법
AWS Summit Seoul 2015 - EBS 성능 향상 및 EC2 비용 최적화 기법AWS Summit Seoul 2015 - EBS 성능 향상 및 EC2 비용 최적화 기법
AWS Summit Seoul 2015 - EBS 성능 향상 및 EC2 비용 최적화 기법
 
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
SRV413 Deep Dive on Elastic Block Storage (Amazon EBS)
 
What to know about Amazon Elastic Block Store (EBS)
What to know about Amazon Elastic Block Store (EBS)What to know about Amazon Elastic Block Store (EBS)
What to know about Amazon Elastic Block Store (EBS)
 
AWS vs Azure vs Google Cloud Storage Deep Dive
AWS vs Azure vs Google Cloud Storage Deep DiveAWS vs Azure vs Google Cloud Storage Deep Dive
AWS vs Azure vs Google Cloud Storage Deep Dive
 
Optimizing Amazon EBS for Performance (CMP317-R2) - AWS re:Invent 2018
Optimizing Amazon EBS for Performance (CMP317-R2) - AWS re:Invent 2018Optimizing Amazon EBS for Performance (CMP317-R2) - AWS re:Invent 2018
Optimizing Amazon EBS for Performance (CMP317-R2) - AWS re:Invent 2018
 
Optimizing Amazon EBS for Performance (CMP371) - AWS re:Invent 2018
Optimizing Amazon EBS for Performance (CMP371) - AWS re:Invent 2018Optimizing Amazon EBS for Performance (CMP371) - AWS re:Invent 2018
Optimizing Amazon EBS for Performance (CMP371) - AWS re:Invent 2018
 
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)
AWS Summit London 2014 | Maximising EC2 and EBC Performance (400)
 
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012
 
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMCloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
 
10 tips to improve the performance of your AWS application
10 tips to improve the performance of your AWS application10 tips to improve the performance of your AWS application
10 tips to improve the performance of your AWS application
 
SRV321 Deep Dive on Amazon EBS
SRV321 Deep Dive on Amazon EBSSRV321 Deep Dive on Amazon EBS
SRV321 Deep Dive on Amazon EBS
 
SRV321 Deep Dive on Amazon EBS
 SRV321 Deep Dive on Amazon EBS SRV321 Deep Dive on Amazon EBS
SRV321 Deep Dive on Amazon EBS
 
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
 
Big data dive amazon emr processing
Big data dive amazon emr processingBig data dive amazon emr processing
Big data dive amazon emr processing
 
PAC 2019 virtual Stefano Doni
PAC 2019 virtual Stefano Doni   PAC 2019 virtual Stefano Doni
PAC 2019 virtual Stefano Doni
 
Deep Dive on Amazon Elastic Block Storage (Amazon EBS) (STG310-R1) - AWS re:I...
Deep Dive on Amazon Elastic Block Storage (Amazon EBS) (STG310-R1) - AWS re:I...Deep Dive on Amazon Elastic Block Storage (Amazon EBS) (STG310-R1) - AWS re:I...
Deep Dive on Amazon Elastic Block Storage (Amazon EBS) (STG310-R1) - AWS 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
 

Recently uploaded

Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

AWS Blackbelt NINJA Dojo

  • 1. AWS Black Belt Ninja Dojo Dean Samuels, Solutions Architect Amazon Web Services
  • 2. Business 101 Technical 201 Technical 301 Technical 401 Technical Session Grading
  • 3. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: Amazon SQS Auto Scaling groups AWS Region SNS
  • 4. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Amazon SQS Auto Scaling groups AWS Region SNS
  • 5. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Amazon SQS Auto Scaling groups AWS Region SNS
  • 6. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Amazon SQS Auto Scaling groups AWS Region SNS
  • 7. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Amazon SQS Auto Scaling groups AWS Region SNS
  • 8. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Amazon SQS Auto Scaling groups AWS Region SNS
  • 9. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Amazon SQS Auto Scaling groups AWS Region SNS
  • 10. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS
  • 11. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS
  • 12. How can I optimise the performance of these AWS services
  • 13. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS
  • 14. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS
  • 15. Amazon EBS – Larger & Faster Volumes
  • 16. Amazon EBS – Larger & Faster Volumes GP2 1GB-16TB
  • 17. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 1GB-16TB 4GB-16TB
  • 18. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 1GB-16TB 4GB-16TB 1GB-1TB
  • 19. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 1GB-16TB 4GB-16TB 1GB-1TB
  • 20. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 1GB-16TB 4GB-16TB 1GB-1TB
  • 21. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 20,000 IOPS 1GB-16TB 4GB-16TB 1GB-1TB
  • 22. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 20,000 IOPS 320MB/s (<1TB – 128MB/s) 1GB-16TB 4GB-16TB 1GB-1TB
  • 23. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 20,000 IOPS 320MB/s (<1TB – 128MB/s) ~100 IOPS 1GB-16TB 4GB-16TB 1GB-1TB
  • 24. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 20,000 IOPS 320MB/s (<1TB – 128MB/s) ~100 IOPS 50-90MB/s 1GB-16TB 4GB-16TB 1GB-1TB
  • 25. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 20,000 IOPS 320MB/s (<1TB – 128MB/s) ~100 IOPS 50-90MB/s 1GB-16TB 4GB-16TB 1GB-1TB EC2 48,000 IOPS @ 16K IO 800MB/s^ ^Amazon EC2 *.8xlarge instances support 10Gb/s network
  • 26. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 20,000 IOPS 320MB/s (<1TB – 128MB/s) ~100 IOPS 50-90MB/s 1GB-16TB 4GB-16TB 1GB-1TB EC2 48,000 IOPS @ 16K IO 800MB/s^ EBS-Optimized @ 500Mb, 1Gb, 2Gb^ ^Amazon EC2 *.8xlarge instances support 10Gb/s network 1-2ms
  • 27. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 20,000 IOPS 320MB/s (<1TB – 128MB/s) ~100 IOPS 50-90MB/s 1GB-16TB 4GB-16TB 1GB-1TB EC2 48,000 IOPS @ 16K IO 800MB/s^ EBS-Optimized @ 500Mb, 1Gb, 2Gb^ ^Amazon EC2 *.8xlarge instances support 10Gb/s network 1-2ms 48,000 IOPS @ 16K IO 800MB/s^ EC2
  • 28. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 20,000 IOPS 320MB/s (<1TB – 128MB/s) ~100 IOPS 50-90MB/s 1GB-16TB 4GB-16TB 1GB-1TB EC2 48,000 IOPS @ 16K IO 800MB/s^ EBS-Optimized @ 500Mb, 1Gb, 2Gb^ EBS-Optimized @ 500Mb, 1Gb, 2Gb^ ^Amazon EC2 *.8xlarge instances support 10Gb/s network 1-2ms 1-2ms 48,000 IOPS @ 16K IO 800MB/s^ EC2
  • 29. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 20,000 IOPS 320MB/s (<1TB – 128MB/s) ~100 IOPS 50-90MB/s 1GB-16TB 4GB-16TB 1GB-1TB EC2 48,000 IOPS @ 16K IO 800MB/s^ EBS-Optimized @ 500Mb, 1Gb, 2Gb^ EBS-Optimized @ 500Mb, 1Gb, 2Gb^ ^Amazon EC2 *.8xlarge instances support 10Gb/s network 1-2ms 1-2ms ~2-40ms 48,000 IOPS @ 16K IO 800MB/s^ EC2 48,000 IOPS @ 16K IO 800MB/s^ EC2
  • 30. Amazon EBS – Larger & Faster Volumes GP2 PIOPS/ io2 MAG/STD 10,000 IOPS (<1TB – 3000 IOPS) 160MB/s (<1TB – 128MB/s) 20,000 IOPS 320MB/s (<1TB – 128MB/s) ~100 IOPS 50-90MB/s 1GB-16TB 4GB-16TB 1GB-1TB EC2 48,000 IOPS @ 16K IO 800MB/s^ EBS-Optimized @ 500Mb, 1Gb, 2Gb^ EBS-Optimized @ 500Mb, 1Gb, 2Gb^ ^Amazon EC2 *.8xlarge instances support 10Gb/s network 1-2ms 1-2ms ~2-40ms 48,000 IOPS @ 16K IO 800MB/s^ EC2 48,000 IOPS @ 16K IO 800MB/s^ EC2 Optimal queue depth to achieve lower latency and highest IOPS is ~1 QD per 200 IOPS
  • 33. Amazon EBS Cost Optimisation • 1TB PIOPS volume with 4K IOPS – $429.32* per month per volume _________________________________ *Pricing for AWS Sydney region – ap-southeast-2
  • 34. Amazon EBS Cost Optimisation • 1TB PIOPS volume with 4K IOPS – $429.32* per month per volume _________________________________ • GP2 1TB volume with 3000 IOPS – $122.88* *Pricing for AWS Sydney region – ap-southeast-2
  • 35. Amazon EBS Cost Optimisation • 1TB PIOPS volume with 4K IOPS – $429.32* per month per volume _________________________________ • GP2 1TB volume with 3000 IOPS – $122.88* • GP2 2 x 500GB volumes at 3K, burst to 6K – $122.88* ~70% Cost Savings. 50% more peak I/O with *Pricing for AWS Sydney region – ap-southeast-2
  • 36. Amazon EBS Cost Optimisation • 1TB PIOPS volume with 4K IOPS – $429.32* per month per volume _________________________________ • GP2 1TB volume with 3000 IOPS – $122.88* • GP2 2 x 500GB volumes at 3K, burst to 6K – $122.88* ~70% Cost Savings. 50% more peak I/O with General Purpose (SSD) *Pricing for AWS Sydney region – ap-southeast-2
  • 37. Amazon EBS Cost Optimisation • 1TB PIOPS volume with 4K IOPS – $429.32* per month per volume _________________________________ • GP2 1TB volume with 3000 IOPS – $122.88* • GP2 2 x 500GB volumes at 3K, burst to 6K – $122.88* ~70% Cost Savings. 50% more peak I/O with General Purpose (SSD) Management Optimisation *Pricing for AWS Sydney region – ap-southeast-2
  • 38. Amazon EBS Cost Optimisation • 1TB PIOPS volume with 4K IOPS – $429.32* per month per volume _________________________________ • GP2 1TB volume with 3000 IOPS – $122.88* • GP2 2 x 500GB volumes at 3K, burst to 6K – $122.88* ~70% Cost Savings. 50% more peak I/O with General Purpose (SSD) Management Optimisation • Leverage tags to add metadata to snapshots – Application stack – Instance Id – Volume Id – Version – Type (daily, weekly) *Pricing for AWS Sydney region – ap-southeast-2 Use together with new AMI creation date
  • 39. Amazon EC2 • Next Generation Instance Types – C4 & C3: Compute Optimized – R3: Memory Optimized – I2: High IO – D2: Dense-storage
  • 40. Amazon EC2 • Next Generation Instance Types – C4 & C3: Compute Optimized – R3: Memory Optimized – I2: High IO – D2: Dense-storage • Hardware Assisted Virtualization (HVM)
  • 41. Amazon EC2 • Next Generation Instance Types – C4 & C3: Compute Optimized – R3: Memory Optimized – I2: High IO – D2: Dense-storage • Hardware Assisted Virtualization (HVM) • Enhanced Networking
  • 42. Virtualization layer eth0 eth1 Instance Virtual NICs Physical NIC VIF Amazon EC2 – Enhanced Networking
  • 43. Virtualization layer eth0 eth1 Instance Virtual NICs Physical NIC Virtualization layer eth0 Instance Physical NIC VF Driver eth1 VF VIF SR-IOV Amazon EC2 – Enhanced Networking
  • 44. Virtualization layer eth0 eth1 Instance Virtual NICs Physical NIC Virtualization layer eth0 Instance Physical NIC VF Driver eth1 VF VIF SR-IOV Amazon EC2 – Enhanced Networking Instance 1 Instance 2 ........
  • 45. Demo
 EC2 & EBS Optimisation
  • 46. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg
  • 47. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg
  • 48. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg Don’t Do This!
  • 49. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg Don’t Do This! You end up with this
  • 50. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg 1 2 N 1 2 N Don’t Do This! You end up with this
  • 51. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg 1 2 N 1 2 N Partition Partition Partition Partition Don’t Do This! You end up with this
  • 52. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg 1 2 N 1 2 N Partition Partition Partition Partition Don’t Do This! You end up with this
  • 53. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg 1 2 N 1 2 N Partition Partition Partition Partition Don’t Do This! You end up with this
  • 54. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg 1 2 N 1 2 N Partition Partition Partition Partition If you want a bucket capable of routinely exceeding 100 TPS Don’t Do This! You end up with this
  • 55. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg 1 2 N 1 2 N Partition Partition Partition Partition If you want a bucket capable of routinely exceeding 100 TPS Note: 100 TPS is A LOT! Don’t Do This! You end up with this
  • 56. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg <my_bucket>/521335461-2013_11_13.jpg <my_bucket>/465330151-2013_11_13.jpg <my_bucket>/987331160-2013_11_13.jpg <my_bucket>/465765461-2013_11_13.jpg <my_bucket>/125631151-2013_11_13.jpg <my_bucket>/934563160-2013_11_13.jpg <my_bucket>/532132341-2013_11_13.jpg <my_bucket>/565437681-2013_11_13.jpg <my_bucket>/234567460-2013_11_13.jpg 1 2 N 1 2 N Partition Partition Partition Partition If you want a bucket capable of routinely exceeding 100 TPS Note: 100 TPS is A LOT! Don’t Do This! You end up with this
  • 57. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg <my_bucket>/521335461-2013_11_13.jpg <my_bucket>/465330151-2013_11_13.jpg <my_bucket>/987331160-2013_11_13.jpg <my_bucket>/465765461-2013_11_13.jpg <my_bucket>/125631151-2013_11_13.jpg <my_bucket>/934563160-2013_11_13.jpg <my_bucket>/532132341-2013_11_13.jpg <my_bucket>/565437681-2013_11_13.jpg <my_bucket>/234567460-2013_11_13.jpg 1 2 N 1 2 N Partition Partition Partition Partition If you want a bucket capable of routinely exceeding 100 TPS Note: 100 TPS is A LOT! Don’t Do This! You end up with this
  • 58. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg <my_bucket>/521335461-2013_11_13.jpg <my_bucket>/465330151-2013_11_13.jpg <my_bucket>/987331160-2013_11_13.jpg <my_bucket>/465765461-2013_11_13.jpg <my_bucket>/125631151-2013_11_13.jpg <my_bucket>/934563160-2013_11_13.jpg <my_bucket>/532132341-2013_11_13.jpg <my_bucket>/565437681-2013_11_13.jpg <my_bucket>/234567460-2013_11_13.jpg 1 2 N 1 2 N Partition Partition Partition Partition If you want a bucket capable of routinely exceeding 100 TPS Note: 100 TPS is A LOT! Don’t Do This! You end up with this Do this…
  • 59. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg <my_bucket>/521335461-2013_11_13.jpg <my_bucket>/465330151-2013_11_13.jpg <my_bucket>/987331160-2013_11_13.jpg <my_bucket>/465765461-2013_11_13.jpg <my_bucket>/125631151-2013_11_13.jpg <my_bucket>/934563160-2013_11_13.jpg <my_bucket>/532132341-2013_11_13.jpg <my_bucket>/565437681-2013_11_13.jpg <my_bucket>/234567460-2013_11_13.jpg 1 2 N 1 2 N Partition Partition Partition Partition 1 2 N 1 2 N Partition Partition Partition Partition If you want a bucket capable of routinely exceeding 100 TPS Note: 100 TPS is A LOT! Don’t Do This! You end up with this Do this… You end up with this
  • 60. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg <my_bucket>/521335461-2013_11_13.jpg <my_bucket>/465330151-2013_11_13.jpg <my_bucket>/987331160-2013_11_13.jpg <my_bucket>/465765461-2013_11_13.jpg <my_bucket>/125631151-2013_11_13.jpg <my_bucket>/934563160-2013_11_13.jpg <my_bucket>/532132341-2013_11_13.jpg <my_bucket>/565437681-2013_11_13.jpg <my_bucket>/234567460-2013_11_13.jpg 1 2 N 1 2 N Partition Partition Partition Partition 1 2 N 1 2 N Partition Partition Partition Partition If you want a bucket capable of routinely exceeding 100 TPS Note: 100 TPS is A LOT! Don’t Do This! You end up with this Do this… You end up with this
  • 61. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg 1 2 N 1 2 N Partition Partition Partition Partition 1 2 N 1 2 N Partition Partition Partition Partition If you want a bucket capable of routinely exceeding 100 TPS Note: 100 TPS is A LOT! Don’t Do This! You end up with this Do this… You end up with this
  • 62. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg 1 2 N 1 2 N Partition Partition Partition Partition 1 2 N 1 2 N Partition Partition Partition Partition If you want a bucket capable of routinely exceeding 100 TPS Note: 100 TPS is A LOT! Don’t Do This! You end up with this Do this… You end up with this <my_bucket>/images/521335461-2013_11_13.jpg <my_bucket>/images/465330151-2013_11_13.jpg <my_bucket>/images/987331160-2013_11_13.jpg <my_bucket>/movies/465765461-2013_11_13.jpg <my_bucket>/movies/125631151-2013_11_13.jpg <my_bucket>/thumbs-small/934563160-2013_11_13.jpg <my_bucket>/thumbs-small/532132341-2013_11_13.jpg <my_bucket>/thumbs-small/565437681-2013_11_13.jpg <my_bucket>/thumbs-small/234567460-2013_11_13.jpg
  • 63. Amazon S3 – Distributing Key Names <my_bucket>/2013_11_13-164533125.jpg <my_bucket>/2013_11_13-164533126.jpg <my_bucket>/2013_11_13-164533127.jpg <my_bucket>/2013_11_13-164533128.jpg <my_bucket>/2013_11_12-164533129.jpg <my_bucket>/2013_11_12-164533130.jpg <my_bucket>/2013_11_12-164533131.jpg <my_bucket>/2013_11_12-164533132.jpg <my_bucket>/2013_11_11-164533133.jpg 1 2 N 1 2 N Partition Partition Partition Partition 1 2 N 1 2 N Partition Partition Partition Partition If you want a bucket capable of routinely exceeding 100 TPS Note: 100 TPS is A LOT! Don’t Do This! You end up with this Do this… You end up with this <my_bucket>/images/521335461-2013_11_13.jpg <my_bucket>/images/465330151-2013_11_13.jpg <my_bucket>/images/987331160-2013_11_13.jpg <my_bucket>/movies/465765461-2013_11_13.jpg <my_bucket>/movies/125631151-2013_11_13.jpg <my_bucket>/thumbs-small/934563160-2013_11_13.jpg <my_bucket>/thumbs-small/532132341-2013_11_13.jpg <my_bucket>/thumbs-small/565437681-2013_11_13.jpg <my_bucket>/thumbs-small/234567460-2013_11_13.jpg This is also ok
  • 64. Amazon S3 – Secondary Lists
 Restrict Use of S3 LIST DynamoDB RDS CloudSearch EC2 S3 ObjectCreated Notification Lambda SQS Workers
  • 65. Amazon S3 – Secondary Lists
 Restrict Use of S3 LIST DynamoDB RDS CloudSearch EC2 S3 ObjectCreated Notification Lambda SQS Workers
  • 66. Amazon S3 – Secondary Lists
 Restrict Use of S3 LIST DynamoDB RDS CloudSearch EC2 S3 ObjectCreated Notification Lambda SQS Workers
  • 68. How can I simplify encryption for data in transit and data at rest?
  • 69. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS
  • 70. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS Elastic Load Balancer with SSL Termination (Announced 2010)
  • 71. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS Elastic Load Balancer with SSL Termination (Announced 2010) CloudFront with HTTPS Access With Custom Domain Names (Announced 2013)
  • 72. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS Elastic Load Balancer with SSL Termination (Announced 2010) CloudFront with HTTPS Access With Custom Domain Names (Announced 2013) RDS with SSL (MySQL - 2010) (SQL Server – 2012) (Oracle/NNE – 2013) (PostgreSQL – 2013)
  • 73. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS Elastic Load Balancer with SSL Termination (Announced 2010) CloudFront with HTTPS Access With Custom Domain Names (Announced 2013) RDS with SSL (MySQL - 2010) (SQL Server – 2012) (Oracle/NNE – 2013) (PostgreSQL – 2013)
  • 74. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Store Data with Envelope Encryption Client Application Announced 2014
  • 75. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS 1) User creates Customer Master Keys (CMK) Store Data with Envelope Encryption Client Application Announced 2014
  • 76. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS 2) User associates resource with CMK Store Data with Envelope Encryption Client Application Announced 2014
  • 77. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Obj 3) Request to store data & context for encryption Data Data Data Requests Store Data with Envelope Encryption Client Application Announced 2014
  • 78. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Obj Data Data Data 4) Service requests encryption key with context Store Data with Envelope Encryption Client Application Announced 2014
  • 79. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Obj Data Data Data 5) AWS KMS returns an encryption (data) key + an encrypted version of the key + + + +Store Data with Envelope Encryption Client Application Announced 2014
  • 80. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS 6) Service encrypts the data with the encryption key then deletes the key from memory Store Data with Envelope Encryption Client Application Announced 2014
  • 81. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS 7) Service stores the data along with the encrypted key Store Data with Envelope Encryption Client Application Announced 2014
  • 82. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Client Application Retrieve Data with Envelope Encryption Announced 2014
  • 83. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Client Application Request Request Request Request 1) Request to retrieve data Retrieve Data with Envelope Encryption Announced 2014
  • 84. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Client Application Request Request Request Request 2) Service retrieves the encrypted data & encrypted key. Retrieve Data with Envelope Encryption Announced 2014
  • 85. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Client Application 3) Service sends the encrypted key and the UserID to KMS. Retrieve Data with Envelope Encryption Announced 2014
  • 86. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Client Application 4) AWS KMS unencrypts the encryption key and returns the key to the service Retrieve Data with Envelope Encryption Announced 2014
  • 87. Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Client Application 5) Service decrypts the data with the encryption key, then deletes the key from memory Data Data DataObj Retrieve Data with Envelope Encryption Announced 2014
  • 88. 6) Service returns the data to the user Simplifying encryption in AWS – Today Amazon S3 Object Amazon EBS Volume Amazon RDS
 or Redshift Custom
 Application AWS KMS Client Application Data Data Data Obj Retrieve Data with Envelope Encryption Announced 2014
  • 90. I’ve hit some obstacles with my VPC in terms of integration and performance, what are some of my options
  • 91. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS
  • 92. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS This is a bottleneck & SPOF!
  • 93. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS This is a bottleneck & SPOF! These are bandwidth- intensive for Internet egress
  • 94. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS This is a bottleneck & SPOF! These are bandwidth- intensive for Internet egress Applications with legacy network reqs
  • 101. 10.1.0.0/16 10.0.0.0/16 10.0.0.0/16 ✔ Taking VPC Peering to the next Level Overlapping IP is not a dead end
  • 102. 10.0.0.0/16 10.0.0.0/16 10.1.0.0/16 A B C Taking VPC Peering to the next Level PCX-1 PCX-2
  • 103. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16 A B C Taking VPC Peering to the next Level PCX-1 PCX-2
  • 104. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 A B C Taking VPC Peering to the next Level PCX-1 PCX-2
  • 105. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level PCX-1 PCX-2
  • 106. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level PCX-1 PCX-2 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.1.0/24 PCX-1 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.2.0/24 PCX-1
  • 107. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level Floating NAT Network PCX-1 PCX-2 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.1.0/24 PCX-1 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.2.0/24 PCX-1
  • 108. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level Floating NAT Network 10.0.0.58 PCX-1 PCX-2 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.1.0/24 PCX-1 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.2.0/24 PCX-1
  • 109. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level Floating NAT Network 10.0.0.58 10.0.0.105 PCX-1 PCX-2 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.1.0/24 PCX-1 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.2.0/24 PCX-1
  • 110. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level Floating NAT Network 10.0.0.58 10.0.0.105 PCX-1 PCX-210.1.1.105 10.1.2.105 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.1.0/24 PCX-1 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.2.0/24 PCX-1
  • 111. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level Floating NAT Network SRC: 10.0.0.58 DST: 10.1.1.105 SRC: 10.1.2.105 DST: 10.0.0.105 10.0.0.58 10.0.0.105 PCX-1 PCX-210.1.1.105 10.1.2.105 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.1.0/24 PCX-1 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.2.0/24 PCX-1
  • 112. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level Floating NAT Network SRC: 10.0.0.58 DST: 10.1.1.105 SRC: 10.1.2.105 DST: 10.0.0.105 10.0.0.58 10.0.0.105 PCX-1 PCX-210.1.1.105 10.1.2.105 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.1.0/24 PCX-1 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.2.0/24 PCX-1
  • 113. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level Floating NAT Network SRC: 10.0.0.58 DST: 10.1.1.105 SRC: 10.1.2.105 DST: 10.0.0.105 10.0.0.58 10.0.0.105 PCX-1 PCX-210.1.1.105 10.1.2.105 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.1.0/24 PCX-1 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.2.0/24 PCX-1
  • 114. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level Floating NAT Network SRC: 10.0.0.58 DST: 10.1.1.105 SRC: 10.1.2.105 DST: 10.0.0.105 10.0.0.58 10.0.0.105 PCX-1 PCX-210.1.1.105 10.1.2.105 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.1.0/24 PCX-1 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.2.0/24 PCX-1
  • 115. 10.0.0.0/16 10.0.0.0/16 Subnet 1 10.1.1.0/24 Subnet 2 10.1.2.0/24 10.1.0.0/16Route Table Subnet 1 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-1 Route Table Subnet 2 Destination Target 10.1.0.0/16 local 10.0.0.0/16 PCX-2 A B C Taking VPC Peering to the next Level Floating NAT Network SRC: 10.0.0.58 DST: 10.1.1.105 SRC: 10.1.2.105 DST: 10.0.0.105 10.0.0.58 10.0.0.105 PCX-1 PCX-210.1.1.105 10.1.2.105 Route53 Private Hosted Zone Route53 Private Hosted Zone Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.1.0/24 PCX-1 Route Table Subnet # Destination Target 10.0.0.0/16 local 10.1.2.0/24 PCX-1
  • 116. Demo
 VPC to VPC Communication
  • 117. Availability Zone A Private Subnet Availability Zone B Private Subnet Internet AWS region Public Subnet Public Subnet NAT • Use Auto Scaling for NAT availability • Create 1 NAT per Availability Zone • All private subnet route tables to point to same zone NAT • 1 Auto Scaling group per NAT with min and max size set to 1 • Let Auto Scaling monitor the health and availability of your NATs • NAT bootstrap script updates route tables programmatically • Latest version of script – uses tags: https://github.com/ralex-aws/vpc Auto scale HA NAT Dynamo DB Scaling Internet egress capacity NAT ASG min=1 max=1 ASG min=1 max=1 SQS SNS
  • 118. Availability Zone A Private Subnet Availability Zone B Private Subnet Internet AWS region Public Subnet Public Subnet NAT • Use Auto Scaling for NAT availability • Create 1 NAT per Availability Zone • All private subnet route tables to point to same zone NAT • 1 Auto Scaling group per NAT with min and max size set to 1 • Let Auto Scaling monitor the health and availability of your NATs • NAT bootstrap script updates route tables programmatically • Latest version of script – uses tags: https://github.com/ralex-aws/vpc Auto scale HA NAT Dynamo DB Scaling Internet egress capacity NAT ASG min=1 max=1 ASG min=1 max=1 SQS SNS
  • 119. Availability Zone A Private Subnet Availability Zone B Private Subnet Internet AWS region Public Subnet Public Subnet NAT • Use Auto Scaling for NAT availability • Create 1 NAT per Availability Zone • All private subnet route tables to point to same zone NAT • 1 Auto Scaling group per NAT with min and max size set to 1 • Let Auto Scaling monitor the health and availability of your NATs • NAT bootstrap script updates route tables programmatically • Latest version of script – uses tags: https://github.com/ralex-aws/vpc Auto scale HA NAT Dynamo DB Scaling Internet egress capacity NAT ASG min=1 max=1 ASG min=1 max=1 SQS SNS
  • 120. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet S3 Scaling Internet egress capacity Direct Connect DynamoDBSQS
  • 121. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet S3 Scaling Internet egress capacity Direct Connect DynamoDBSQS
  • 122. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet • Squid Proxy layer deployed between internal load balancer and the IGW border. Public Subnet Public Subnet S3 Scaling Internet egress capacity Direct Connect DynamoDBSQS
  • 123. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet • Squid Proxy layer deployed between internal load balancer and the IGW border. Public Subnet Public Subnet S3 • Only proxy subnets have route to IGW. Scaling Internet egress capacity # CIDR AND Destination Domain based Allow # CIDR Subnet blocks for Internal ELBs acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24 # Destination domain for target S3 bucket acl aws_v2_endpoints dstdomain .amazonaws.com # Squid does AND on both ACLs for allow match http_access allow int_elb_cidrs aws_v2_endpoints # Deny everything else http_access deny all Direct Connect DynamoDBSQS
  • 124. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet • Squid Proxy layer deployed between internal load balancer and the IGW border. Public Subnet Public Subnet S3 • Only proxy subnets have route to IGW. Scaling Internet egress capacity # CIDR AND Destination Domain based Allow # CIDR Subnet blocks for Internal ELBs acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24 # Destination domain for target S3 bucket acl aws_v2_endpoints dstdomain .amazonaws.com # Squid does AND on both ACLs for allow match http_access allow int_elb_cidrs aws_v2_endpoints # Deny everything else http_access deny all Direct Connect DynamoDBSQS
  • 125. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet • Squid Proxy layer deployed between internal load balancer and the IGW border. Public Subnet Public Subnet S3 • Only proxy subnets have route to IGW. • Proxy security group allows inbound only from Elastic Load Balancing security group. Scaling Internet egress capacity # CIDR AND Destination Domain based Allow # CIDR Subnet blocks for Internal ELBs acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24 # Destination domain for target S3 bucket acl aws_v2_endpoints dstdomain .amazonaws.com # Squid does AND on both ACLs for allow match http_access allow int_elb_cidrs aws_v2_endpoints # Deny everything else http_access deny all Direct Connect DynamoDBSQS
  • 126. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet • Squid Proxy layer deployed between internal load balancer and the IGW border. Public Subnet Public Subnet S3 HTTP/S • Only proxy subnets have route to IGW. • Proxy security group allows inbound only from Elastic Load Balancing security group. • Proxy restricts which URLs may pass. In this example, *.amazonaws.com is allowed. Scaling Internet egress capacity # CIDR AND Destination Domain based Allow # CIDR Subnet blocks for Internal ELBs acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24 # Destination domain for target S3 bucket acl aws_v2_endpoints dstdomain .amazonaws.com # Squid does AND on both ACLs for allow match http_access allow int_elb_cidrs aws_v2_endpoints # Deny everything else http_access deny all Direct Connect DynamoDBSQS
  • 127. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet • Squid Proxy layer deployed between internal load balancer and the IGW border. Public Subnet Public Subnet S3 HTTP/S • Only proxy subnets have route to IGW. • Proxy security group allows inbound only from Elastic Load Balancing security group. • Proxy restricts which URLs may pass. In this example, *.amazonaws.com is allowed. • Egress NACLs on proxy subnets enforce HTTP/S only. Scaling Internet egress capacity # CIDR AND Destination Domain based Allow # CIDR Subnet blocks for Internal ELBs acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24 # Destination domain for target S3 bucket acl aws_v2_endpoints dstdomain .amazonaws.com # Squid does AND on both ACLs for allow match http_access allow int_elb_cidrs aws_v2_endpoints # Deny everything else http_access deny all Direct Connect DynamoDBSQS
  • 128. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet • Squid Proxy layer deployed between internal load balancer and the IGW border. Public Subnet Public Subnet S3 HTTP/S • Only proxy subnets have route to IGW. • Proxy security group allows inbound only from Elastic Load Balancing security group. • Proxy restricts which URLs may pass. In this example, *.amazonaws.com is allowed. • Egress NACLs on proxy subnets enforce HTTP/S only. Scaling Internet egress capacity # CIDR AND Destination Domain based Allow # CIDR Subnet blocks for Internal ELBs acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24 # Destination domain for target S3 bucket acl aws_v2_endpoints dstdomain .amazonaws.com # Squid does AND on both ACLs for allow match http_access allow int_elb_cidrs aws_v2_endpoints # Deny everything else http_access deny all Direct Connect DynamoDBSQS
  • 129. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet • Squid Proxy layer deployed between internal load balancer and the IGW border. Public Subnet Public Subnet S3 HTTP/S • Only proxy subnets have route to IGW. • Proxy security group allows inbound only from Elastic Load Balancing security group. • Proxy restricts which URLs may pass. In this example, *.amazonaws.com is allowed. • Egress NACLs on proxy subnets enforce HTTP/S only. Scaling Internet egress capacity # CIDR AND Destination Domain based Allow # CIDR Subnet blocks for Internal ELBs acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24 # Destination domain for target S3 bucket acl aws_v2_endpoints dstdomain .amazonaws.com # Squid does AND on both ACLs for allow match http_access allow int_elb_cidrs aws_v2_endpoints # Deny everything else http_access deny all Direct Connect DynamoDBSQS
  • 130. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet • Squid Proxy layer deployed between internal load balancer and the IGW border. Public Subnet Public Subnet S3 HTTP/S • Only proxy subnets have route to IGW. • Proxy security group allows inbound only from Elastic Load Balancing security group. • Proxy restricts which URLs may pass. In this example, *.amazonaws.com is allowed. • Egress NACLs on proxy subnets enforce HTTP/S only. Scaling Internet egress capacity # CIDR AND Destination Domain based Allow # CIDR Subnet blocks for Internal ELBs acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24 # Destination domain for target S3 bucket acl aws_v2_endpoints dstdomain .amazonaws.com # Squid does AND on both ACLs for allow match http_access allow int_elb_cidrs aws_v2_endpoints # Deny everything else http_access deny all Direct Connect DynamoDBSQS • Could also have HA NATs NATNAT
  • 131. Availability Zone A Private Subnet(s) Private Subnet(s) AWS region VPN connection Customer data center Intranet AppsIntranet Apps Availability Zone B Internal customers Controlling the border Internal Load balancer Elastic Load Balancing Private Subnet Elastic Load Balancing Private Subnet • Squid Proxy layer deployed between internal load balancer and the IGW border. Public Subnet Public Subnet S3 HTTP/S • Only proxy subnets have route to IGW. • Proxy security group allows inbound only from Elastic Load Balancing security group. • Proxy restricts which URLs may pass. In this example, *.amazonaws.com is allowed. • Egress NACLs on proxy subnets enforce HTTP/S only. Scaling Internet egress capacity # CIDR AND Destination Domain based Allow # CIDR Subnet blocks for Internal ELBs acl int_elb_cidrs src 10.1.3.0/24 10.1.4.0/24 # Destination domain for target S3 bucket acl aws_v2_endpoints dstdomain .amazonaws.com # Squid does AND on both ACLs for allow match http_access allow int_elb_cidrs aws_v2_endpoints # Deny everything else http_access deny all Direct Connect DynamoDBSQS • Could also have HA NATs NATNAT
  • 133. Multicast on AWS • Not directly supported
  • 134. Multicast on AWS • Not directly supported 10.0.0.54 10.0.0.79 10.0.1.132 Subnet 10.0.0.0/24 Subnet 10.0.1.0/24 10.0.1.18310.0.0.41
  • 135. Multicast on AWS • Not directly supported • Can be implemented with an overlay network – GRE or L2TP tunnels, Ntop’s N2N 10.0.0.54 10.0.0.79 10.0.1.132 Subnet 10.0.0.0/24 Subnet 10.0.1.0/24 10.0.1.18310.0.0.41
  • 136. Multicast on AWS • Not directly supported • Can be implemented with an overlay network – GRE or L2TP tunnels, Ntop’s N2N 10.0.0.54 10.0.0.79 10.0.1.132 Subnet 10.0.0.0/24 Subnet 10.0.1.0/24 Tunnel 10.0.1.18310.0.0.41
  • 137. Multicast on AWS • Not directly supported • Can be implemented with an overlay network – GRE or L2TP tunnels, Ntop’s N2N 10.0.0.54 10.0.0.79 10.0.1.132192.16.0.10 192.168.0.13 Subnet 10.0.0.0/24 Subnet 10.0.1.0/24 Tunnel 10.0.1.18310.0.0.41
  • 138. Multicast on AWS • Not directly supported • Can be implemented with an overlay network – GRE or L2TP tunnels, Ntop’s N2N • GRE configuration can be automated – Multicast configuration stored in tags 10.0.0.54 10.0.0.79 10.0.1.132192.16.0.10 192.168.0.12 192.168.0.13 Subnet 10.0.0.0/24 Subnet 10.0.1.0/24 Tunnel 10.0.1.18310.0.0.41 192.168.0.12 192.168.0.0/24 Overlay
  • 139. Multicast on AWS • Not directly supported • Can be implemented with an overlay network – GRE or L2TP tunnels, Ntop’s N2N • GRE configuration can be automated – Multicast configuration stored in tags 10.0.0.54 10.0.0.79 10.0.1.132192.16.0.10 192.168.0.12 192.168.0.13 Subnet 10.0.0.0/24 Subnet 10.0.1.0/24 Tunnel 10.0.1.18310.0.0.41 192.168.0.12 192.168.0.0/24 Overlay TAG: multicast App1,192.168.0.13/24 TAG: multicast App1,192.168.0.12/24 TAG: multicast App1,192.168.0.10/24
  • 140. Multicast on AWS • Not directly supported • Can be implemented with an overlay network – GRE or L2TP tunnels, Ntop’s N2N • GRE configuration can be automated – Multicast configuration stored in tags 10.0.0.54 10.0.0.79 10.0.1.132192.16.0.10 192.168.0.12 192.168.0.13 Subnet 10.0.0.0/24 Subnet 10.0.1.0/24 Tunnel 10.0.1.18310.0.0.41 192.168.0.12 192.168.0.0/24 Overlay TAG: multicast App1,192.168.0.13/24 TAG: multicast App1,192.168.0.12/24 TAG: multicast App1,192.168.0.10/24 Setup Guide: http://bit.ly/aws-multi
  • 141. Multicast on AWS • Not directly supported • Can be implemented with an overlay network – GRE or L2TP tunnels, Ntop’s N2N • GRE configuration can be automated – Multicast configuration stored in tags • Periodically check for new members (60 seconds) 10.0.0.54 10.0.0.79 10.0.1.132192.16.0.10 192.168.0.12 192.168.0.13 Subnet 10.0.0.0/24 Subnet 10.0.1.0/24 Tunnel 10.0.1.18310.0.0.41 192.168.0.12 192.168.0.0/24 Overlay TAG: multicast App1,192.168.0.13/24 TAG: multicast App1,192.168.0.12/24 TAG: multicast App1,192.168.0.10/24 Setup Guide: http://bit.ly/aws-multi
  • 142. Demo
 Scalable & HA Internet Egress
  • 143. I’ve automated my deployments but what about responding to events?
  • 144. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS
  • 145. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS What about services with no native CloudWatch integration
  • 146. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS What about services with no native CloudWatch integration Managing non- CloudFormation supported resources/events
  • 147. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS What about services with no native CloudWatch integration Collecting and analysing non-EC2 logs Managing non- CloudFormation supported resources/events
  • 148. Your Application Stacks Availability Zone A Availability Zone B Private subnetPrivate subnet Public subnetPublic subnet Private subnetPrivate subnet CloudFront Glacier S3 DynamoDB Route 53 CloudWatch CloudFormation NAT Stacks for: VPC Edge Services Datastores Applications Presentation Amazon SQS Auto Scaling groups AWS Region SNS What about services with no native CloudWatch integration Collecting and analysing non-EC2 logs Managing non- CloudFormation supported resources/events
  • 149. Advanced uses of CloudWatch – Custom Metrics #!/usr/bin/python import boto.ec2.cloudwatch import boto.vpc AWS_Regions=["us-east-1","us-west-2","us-west-1","eu-west-1"] CloudWatch_Region="us-east-1" cw = boto.ec2.cloudwatch.connect_to_region(CloudWatch_Region) for region in AWS_Regions: vpcconn = boto.vpc.connect_to_region(region) vpns = vpcconn.get_all_vpn_connections() for vpn in vpns: if vpn.state == "available": active_tunnels = 0 if vpn.tunnels[0].status == "UP": active_tunnels+=1 if vpn.tunnels[1].status == "UP": active_tunnels+=1 print vpn.id+" has "+str(active_tunnels)+" active tunnels!” cw.put_metric_data("VPNStatus", vpn.id, value=active_tunnels, dimensions={'VGW':vpn.vpn_gateway_id, 'CGW':vpn.customer_gateway_id})
  • 150. Advanced uses of CloudWatch – Custom Metrics #!/usr/bin/python import boto.ec2.cloudwatch import boto.vpc AWS_Regions=["us-east-1","us-west-2","us-west-1","eu-west-1"] CloudWatch_Region="us-east-1" cw = boto.ec2.cloudwatch.connect_to_region(CloudWatch_Region) for region in AWS_Regions: vpcconn = boto.vpc.connect_to_region(region) vpns = vpcconn.get_all_vpn_connections() for vpn in vpns: if vpn.state == "available": active_tunnels = 0 if vpn.tunnels[0].status == "UP": active_tunnels+=1 if vpn.tunnels[1].status == "UP": active_tunnels+=1 print vpn.id+" has "+str(active_tunnels)+" active tunnels!” cw.put_metric_data("VPNStatus", vpn.id, value=active_tunnels, dimensions={'VGW':vpn.vpn_gateway_id, 'CGW':vpn.customer_gateway_id})
  • 151. Advanced uses of CloudWatch – Custom Metrics #!/usr/bin/python import boto.ec2.cloudwatch import boto.vpc AWS_Regions=["us-east-1","us-west-2","us-west-1","eu-west-1"] CloudWatch_Region="us-east-1" cw = boto.ec2.cloudwatch.connect_to_region(CloudWatch_Region) for region in AWS_Regions: vpcconn = boto.vpc.connect_to_region(region) vpns = vpcconn.get_all_vpn_connections() for vpn in vpns: if vpn.state == "available": active_tunnels = 0 if vpn.tunnels[0].status == "UP": active_tunnels+=1 if vpn.tunnels[1].status == "UP": active_tunnels+=1 print vpn.id+" has "+str(active_tunnels)+" active tunnels!” cw.put_metric_data("VPNStatus", vpn.id, value=active_tunnels, dimensions={'VGW':vpn.vpn_gateway_id, 'CGW':vpn.customer_gateway_id})
  • 152. Advanced uses of CloudWatch – Custom Metrics #!/usr/bin/python import boto.ec2.cloudwatch import boto.vpc AWS_Regions=["us-east-1","us-west-2","us-west-1","eu-west-1"] CloudWatch_Region="us-east-1" cw = boto.ec2.cloudwatch.connect_to_region(CloudWatch_Region) for region in AWS_Regions: vpcconn = boto.vpc.connect_to_region(region) vpns = vpcconn.get_all_vpn_connections() for vpn in vpns: if vpn.state == "available": active_tunnels = 0 if vpn.tunnels[0].status == "UP": active_tunnels+=1 if vpn.tunnels[1].status == "UP": active_tunnels+=1 print vpn.id+" has "+str(active_tunnels)+" active tunnels!” cw.put_metric_data("VPNStatus", vpn.id, value=active_tunnels, dimensions={'VGW':vpn.vpn_gateway_id, 'CGW':vpn.customer_gateway_id}) And Not Just For AWS Resources!
  • 153. Advanced uses of CloudWatch – Logs CloudWatch Logs
  • 154. Advanced uses of CloudWatch – Logs EC2 CloudWatch Logs OS Agent-based
  • 155. Advanced uses of CloudWatch – Logs EC2 Traditional Server CloudWatch Logs OS Agent-based OS Agent-based
  • 156. Advanced uses of CloudWatch – Logs CloudTrail EC2 Traditional Server CloudWatch Logs OS Agent-based OS Agent-based Native
  • 157. Advanced uses of CloudWatch – Logs CloudTrail S3 EC2 Traditional Server CloudWatch Logs OS Agent-based OS Agent-based Native Pull/Push Lambda??
  • 158. Advanced uses of CloudWatch – Logs CloudTrail S3 EC2 Traditional Server CloudWatch Logs CloudFront OS Agent-based OS Agent-based Native Pull/Push Lambda?? Pull/Push Lam bda??
  • 159. Advanced uses of CloudWatch – Logs CloudTrail S3 EC2 Traditional Server CloudWatch Logs CloudFront OS Agent-based OS Agent-based Native Pull/Push Lambda?? Pull/Push Lam bda?? Metrics filters:
  • 160. Advanced uses of CloudWatch – Logs CloudTrail S3 EC2 Traditional Server CloudWatch Logs CloudFront OS Agent-based OS Agent-based Native Pull/Push Lambda?? Pull/Push Lam bda?? Metrics filters: • Literal Terms
  • 161. Advanced uses of CloudWatch – Logs CloudTrail S3 EC2 Traditional Server CloudWatch Logs CloudFront OS Agent-based OS Agent-based Native Pull/Push Lambda?? Pull/Push Lam bda?? Metrics filters: • Literal Terms
  • 162. Advanced uses of CloudWatch – Logs CloudTrail S3 EC2 Traditional Server CloudWatch Logs CloudFront OS Agent-based OS Agent-based Native Pull/Push Lambda?? Pull/Push Lam bda?? Metrics filters: • Literal Terms • Common Log Format
  • 163. Advanced uses of CloudWatch – Logs CloudTrail S3 EC2 Traditional Server CloudWatch Logs CloudFront OS Agent-based OS Agent-based Native Pull/Push Lambda?? Pull/Push Lam bda?? Metrics filters: • Literal Terms • Common Log Format
  • 164. Advanced uses of CloudWatch – Logs CloudTrail S3 EC2 Traditional Server CloudWatch Logs CloudFront OS Agent-based OS Agent-based Native Pull/Push Lambda?? Pull/Push Lam bda?? Metrics filters: • Literal Terms • Common Log Format • JSON
  • 165. Lambda-powered custom resources EC2 instance Software pkgs, config, & dataCloudWatch alarms Your AWS CloudFormation stack // Implement custom logic here Look up an AMI ID Your AWS Lambda functions Look up VPC ID and Subnet ID Reverse an IP address Lambda-powered custom resources
  • 166. Lambda-powered custom resources security group Auto Scaling group EC2 instance Elastic Load Balancing ElastiCache memcached cluster Software pkgs, config, & dataCloudWatch alarms Your AWS CloudFormation stack // Implement custom logic here Look up an AMI ID Your AWS Lambda functions Look up VPC ID and Subnet ID Reverse an IP address Lambda-powered custom resources
  • 168. Recent announcements of interest • AWS Lambda GA • Amazon EC2 Container Service GA • Amazon Machine Learning • Amazon Workspaces Application Manager • Amazon Elastic File System