SlideShare a Scribd company logo
1 of 34
Download to read offline
S U M M I T
Lo n don
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Java on AWS
Lee Packham
Solutions Architect
Amazon Web Services
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
`whoami`
Lee Packham
Solutions Architect
Amazon Web Services
• 20 years experience of dev, systems architecture and DevOps
across Startup and Enterprise; 10 years of AWS experience
• Developer (Python/Go/Java/Scala/Kotlin/C/Node/Rust)
• Working with customers as well as internal teams on services
such as AWS Cloud Development Kit (CDK)
Twitter: @joolz / Email: leepac@amazon.com
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
What we’ll cover
• The JVM ecosystem in relation to AWS
• Amazon Corretto
• The AWS Java SDK v2
• Developer Preview of AWS Cloud Development Kit (CDK)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS JVM Ecosystem
Kinesis
Consumer
Library
Kinesis
Producer
Library
Kinesis/Streaming
S3 Transfer
Manager
S3A
Hadoop FS
S3
Encryption
Client
Amazon S3
DynamoDB
Mapper
DynamoDB
Document
API
DynamoDB
Encryption
Client
Amazon DynamoDB
DynamoDB
Accelerator
(DAX) Client
SWF
Flow Library
Step
Functions
DSL
Workflow
Eclipse
Toolkit
Beanstalker
Maven
Plugins
Client-Side Build Tools
Third Party
Scala SDKs
SQS
Extended
Client
Library
IAM Policy
DSL
Java Mail
Client for
SES
Other
Code Deployment
AWS
CodeStar
AWS
CodeDeploy
AWS
CodePipeline
Execution Environments
AWS Elastic
Beanstalk
AWS
Lambda
Amazon EMR Amazon ECSAmazon EC2
Ships with SDK (v1)
AWS Open Source
3rd Party Open
Source
AWS Services
Legend
Ships with SDK (v2)
AWS SDK
for Java (v1)
Toolkit for
IntelliJ
Serverless
deployment
with IntelliJ
AWS SDK
for Java (v2)
New APIs
with SDK v2
Faster SDK
start-up in
Lambda
HTTP/2 Bi-
Directional
Streaming
Full duplex
streaming
Cloud
Development
Kit (CDK)
Infrastructure
as code
Amazon
Corretto
Amazon
supported
OpenJDK
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Amazon Corretto
• Amazon supported distribution of OpenJDK
• Run internally on thousands of production services
• Multiplatform: Amazon Linux 2, Windows, macOS, Docker, Ubuntu, etc.
• No cost – Distributed under open source license - no charge for use or
distribution
• No cost LTS (patches, performance improvements)
• Both Corretto 8 and 11 are Generally Available
• Open source – all patches and enhancements will be upstreamed to
OpenJDK - https://github.com/corretto
• More info - https://aws.amazon.com/corretto
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS Toolkit for JetBrains
Meeting developers where they are
IntelliJ
PyCharm
Broad ecosystem
• WebStorm
• Clion
• RubyMine
• Rider
• AppCode
• GoLand
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS Toolkit for IntelliJ IDEA & PyCharm
Make it easier to develop on AWS
Open Source
Initial focus: Serverless
AWS Lambda
AWS SAM CLI Integration
Local debugging
Serverless application support
Basic resource/credential management
Will grow support across AWS
https://aws.amazon.com/intellij
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS SDK
for Java
Ships with SDK (v1)
AWS Open Source
3rd Party Open
Source
AWS Services
Legend
Ships with SDK (v2)
Kinesis
Consumer
Library
Kinesis
Producer
Library
Streaming
Eclipse
Toolkit
Beanstalker
Maven
Plugins
Client-Side Build Tools
Third Party
Scala SDKs
Execution Environments
AWS Elastic
Beanstalk
AWS
Lambda
Amazon EMR Amazon ECSAmazon EC2
Toolkit for
JetBrains
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS SDK
for Java (v2)
AWS SDK
for Java (v1)
AWS SDK
for Java
Ships with SDK (v1)
AWS Open Source
3rd Party Open
Source
AWS Services
Legend
Ships with SDK (v2)
Kinesis
Consumer
Library
Kinesis
Producer
Library
Streaming
Execution Environments
AWS Elastic
Beanstalk
AWS
Lambda
Amazon EMR Amazon ECSAmazon EC2
Eclipse
Toolkit
Beanstalker
Maven
Plugins
Client-Side Build Tools
Third Party
Scala SDKs
Toolkit for
JetBrains
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Ships with SDK (v1)
AWS Open Source
3rd Party Open
Source
AWS Services
Legend
Ships with SDK (v2)
Kinesis
Consumer
Library
Kinesis
Producer
Library
Streaming
Execution Environments
AWS Elastic
Beanstalk
Amazon EMR Amazon ECSAmazon EC2
Eclipse
Toolkit
Beanstalker
Maven
Plugins
Client-Side Build Tools
Third Party
Scala SDKs
Toolkit for
JetBrains
AWS SDK
for Java (v1)
AWS SDK
for Java (v2)
AWS
Lambda
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS Lambda and the AWS SDK for Java v2
How to get the best Lambda experience with the SDK
Startup time of the SDK
What did we change?
URLConnection as http client
Moved off of Jackson Object Mapper at runtime
Generate resources at compile time
Profile, profile, profile
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS SDK for Java v2
Modularized
Endpoint Discovery
Client Cloud
Client
Cloud
Cloud
Cloud
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS SDK for Java v2
Modularized
Endpoint Discovery
HTTP/2 Event Streaming
Fully Non-Blocking HTTP/2 Clients
Bi-directional real-time streaming responses
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Ships with SDK (v1)
AWS Open Source
3rd Party Open
Source
AWS Services
Legend
Ships with SDK (v2)
Kinesis
Consumer
Library
Kinesis
Producer
Library
Streaming
Execution Environments
AWS Elastic
Beanstalk
Amazon EMR Amazon ECSAmazon EC2
Eclipse
Toolkit
Beanstalker
Maven
Plugins
Client-Side Build Tools
Third Party
Scala SDKs
Toolkit for
JetBrains
AWS SDK
for Java (v1)
AWS SDK
for Java (v2)
AWS
Lambda
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Ships with SDK (v1)
AWS Open Source
3rd Party Open
Source
AWS Services
Legend
Ships with SDK (v2)
Execution Environments
AWS Elastic
Beanstalk
Amazon
Elastic Map
Reduce
(EMR)
Amazon EC2
Container
Service (ECS)
Amazon
Elastic
Compute
(EC2)
Eclipse
Toolkit
Beanstalker
Maven
Plugins
Client-Side Build Tools
Third Party
Scala SDKs
Toolkit for
JetBrains
AWS SDK
for Java (v1)
AWS SDK
for Java (v2)
AWS
Lambda
Kinesis
Consumer
Library
Kinesis
Producer
Library
Streaming
HTTP/2 Bi-
Directional
Streaming
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS SDK for Java v2
GA as of 11/18
https://github.com/aws/aws-sdk-java-v2
https://docs.aws.amazon.com/sdk-for-java/v2/developer-guide/welcome.html
KCL 2.0 Available Now
https://github.com/awslabs/amazon-kinesis-client
High-Level Libraries Coming Soon
S3 Managed Multi-Part Uploads/Downloads
DynamoDB ORM & Document Model
IAM Policy Generation
API Gateway Client Generation
And More With Your Feedback!
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Manual
Easy to get started
Not reproducible
Error prone
Time consuming
Manual
High
level
Low
level
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Scripted
What happens if an API call fails?
How do I make updates?
How do I know a resource is ready?
How do I roll back?
Scripted
Manual
High
level
Low
level
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Resource provisioning engines
AWS CloudFormation
template
(JSON/YAML)
HashiCorp Configuration
Language (HCL)
Desired state configuration
Easy to automate
Reproducible
Configuration syntax
No abstraction, lots of details
Declarative
Scripted
Manual
High
level
Low
level
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Document Object Models (DOMs)
Troposphere Python
SparkleFormation Ruby
GoFormation Go
…
if statements, for loops, IDE benefits
Ex: 218 lines of Troposphere for a VPC
AWS
CloudFormation
Template
Real code
Desired state
Abstraction is not built-in
DOMs
Declarative
Scripted
Manual
High
level
Low
level
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS CDK
AWS
CloudFormation
template
AWS CDK application
Stack(s)
Construct Construct
Resources
Developer preview
Componentized
DOMs
Declarative
Scripted
Manual
High
level
Low
level
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Simple CDK example
Stack
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Simple CDK example
Stack
Queue queue = new Queue(this, "Queue", QueueProps.builder()
.withVisibilityTimeoutSec(300)
.build());
Topic topic = new Topic(this, "Topic", TopicProps.builder()
.withDisplayName("Some Amazing Topic")
.build());
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Simple CDK example
Queue queue = new Queue(this, "Queue", QueueProps.builder()
.withVisibilityTimeoutSec(300)
.build());
Topic topic = new Topic(this, "Topic", TopicProps.builder()
.withDisplayName("Some Amazing Topic")
.build());
topic.subscribeQueue(queue);
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Synthesized Template
{
"Resources": {
"Queue4A7E3555": {
"Type": "AWS::SQS::Queue",
"Properties": { "VisibilityTimeout": 300 }
},
"QueuePolicy25439813": {
"Type": "AWS::SQS::QueuePolicy",
"Properties": {
"PolicyDocument": {
"Statement": [
{
"Action": "sqs:SendMessage",
"Condition": {
"ArnEquals": {
"aws:SourceArn": { "Ref": "TopicBFC7AF6E" }
}
},
"Effect": "Allow",
"Principal": { "Service": "sns.amazonaws.com" },
"Resource": {
"Fn::GetAtt": [ "Queue4A7E3555", "Arn" ]
}
}
],
"Version": "2012-10-17"
},
"Queues": [{ "Ref": "Queue4A7E3555" }]
}
},
"TopicBFC7AF6E": {
"Type": "AWS::SNS::Topic",
"Properties": {
"DisplayName": "Some Amazing Topic"
}
},
"TopicQueueSubscription2D098ED4": {
"Type": "AWS::SNS::Subscription",
"Properties": {
"Endpoint": {
"Fn::GetAtt": [ "Queue4A7E3555", "Arn" ]
},
"Protocol": "sqs",
"TopicArn": { "Ref": "TopicBFC7AF6E" }
}
}
}
}
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
npm install –g aws-cdk
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
mkdir –p ~/cdk/myapp
cd "$_"
cdk init app --language=java
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Thank you!
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Lee Packham
@joolz
leepac@amazon.co.uk
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

More Related Content

What's hot

Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfAmazon Web Services
 
Semplificare la gestione dei container con i servizi AWS
Semplificare la gestione dei container con i servizi AWSSemplificare la gestione dei container con i servizi AWS
Semplificare la gestione dei container con i servizi AWSAmazon Web Services
 
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS SummitRun Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS SummitAmazon Web Services
 
Containers on AWS: An Introduction
Containers on AWS: An IntroductionContainers on AWS: An Introduction
Containers on AWS: An IntroductionAmazon Web Services
 
Deep Dive on Amazon Elastic Container Service (ECS) and Fargate
Deep Dive on Amazon Elastic Container Service (ECS) and FargateDeep Dive on Amazon Elastic Container Service (ECS) and Fargate
Deep Dive on Amazon Elastic Container Service (ECS) and FargateAmazon Web Services
 
Deep dive ECS & Fargate Deep Dive
Deep dive ECS & Fargate Deep DiveDeep dive ECS & Fargate Deep Dive
Deep dive ECS & Fargate Deep DiveAmazon Web Services
 
Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018
Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018
Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018Amazon Web Services
 
Containers on AWS - State of the Union
Containers on AWS - State of the UnionContainers on AWS - State of the Union
Containers on AWS - State of the UnionAWS Germany
 
CI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateCI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateAmazon Web Services
 
Deep Dive on Amazon Elastic Container Service (ECS) | AWS Summit Tel Aviv 2019
Deep Dive on Amazon Elastic Container Service (ECS)  | AWS Summit Tel Aviv 2019Deep Dive on Amazon Elastic Container Service (ECS)  | AWS Summit Tel Aviv 2019
Deep Dive on Amazon Elastic Container Service (ECS) | AWS Summit Tel Aviv 2019AWS Summits
 
Amazon EKS: Getting Started
Amazon EKS: Getting StartedAmazon EKS: Getting Started
Amazon EKS: Getting StartedTanya Seno
 
Automatically scaling your Kubernetes workloads - SVC210-S - Santa Clara AWS ...
Automatically scaling your Kubernetes workloads - SVC210-S - Santa Clara AWS ...Automatically scaling your Kubernetes workloads - SVC210-S - Santa Clara AWS ...
Automatically scaling your Kubernetes workloads - SVC210-S - Santa Clara AWS ...Amazon Web Services
 

What's hot (20)

Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdf
 
Semplificare la gestione dei container con i servizi AWS
Semplificare la gestione dei container con i servizi AWSSemplificare la gestione dei container con i servizi AWS
Semplificare la gestione dei container con i servizi AWS
 
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS SummitRun Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
 
Containers on AWS: An Introduction
Containers on AWS: An IntroductionContainers on AWS: An Introduction
Containers on AWS: An Introduction
 
Deep Dive on Amazon Elastic Container Service (ECS) and Fargate
Deep Dive on Amazon Elastic Container Service (ECS) and FargateDeep Dive on Amazon Elastic Container Service (ECS) and Fargate
Deep Dive on Amazon Elastic Container Service (ECS) and Fargate
 
AWS Containers Day.pdf
AWS Containers Day.pdfAWS Containers Day.pdf
AWS Containers Day.pdf
 
Deep dive ECS & Fargate Deep Dive
Deep dive ECS & Fargate Deep DiveDeep dive ECS & Fargate Deep Dive
Deep dive ECS & Fargate Deep Dive
 
Amazon EKS Deep Dive
Amazon EKS Deep DiveAmazon EKS Deep Dive
Amazon EKS Deep Dive
 
Using Containers on AWS
Using Containers on AWSUsing Containers on AWS
Using Containers on AWS
 
Containers - State of the Union
Containers - State of the UnionContainers - State of the Union
Containers - State of the Union
 
Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018
Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018
Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018
 
Containers on AWS - State of the Union
Containers on AWS - State of the UnionContainers on AWS - State of the Union
Containers on AWS - State of the Union
 
Serverless functions deep dive
Serverless functions deep diveServerless functions deep dive
Serverless functions deep dive
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
CI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateCI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and Fargate
 
AWS ECS vs EKS
AWS ECS vs EKSAWS ECS vs EKS
AWS ECS vs EKS
 
Introducing AWS Fargate
Introducing AWS FargateIntroducing AWS Fargate
Introducing AWS Fargate
 
Deep Dive on Amazon Elastic Container Service (ECS) | AWS Summit Tel Aviv 2019
Deep Dive on Amazon Elastic Container Service (ECS)  | AWS Summit Tel Aviv 2019Deep Dive on Amazon Elastic Container Service (ECS)  | AWS Summit Tel Aviv 2019
Deep Dive on Amazon Elastic Container Service (ECS) | AWS Summit Tel Aviv 2019
 
Amazon EKS: Getting Started
Amazon EKS: Getting StartedAmazon EKS: Getting Started
Amazon EKS: Getting Started
 
Automatically scaling your Kubernetes workloads - SVC210-S - Santa Clara AWS ...
Automatically scaling your Kubernetes workloads - SVC210-S - Santa Clara AWS ...Automatically scaling your Kubernetes workloads - SVC210-S - Santa Clara AWS ...
Automatically scaling your Kubernetes workloads - SVC210-S - Santa Clara AWS ...
 

Similar to Java on AWS

Hands-on in the AWS Java Ecosystem (DEV325-R1) - AWS re:Invent 2018
Hands-on in the AWS Java Ecosystem (DEV325-R1) - AWS re:Invent 2018Hands-on in the AWS Java Ecosystem (DEV325-R1) - AWS re:Invent 2018
Hands-on in the AWS Java Ecosystem (DEV325-R1) - AWS re:Invent 2018Amazon Web Services
 
AWS Summit Singapore 2019 | Microsoft DevOps on AWS
AWS Summit Singapore 2019 | Microsoft DevOps on AWSAWS Summit Singapore 2019 | Microsoft DevOps on AWS
AWS Summit Singapore 2019 | Microsoft DevOps on AWSAWS Summits
 
Developing serverless applications with .NET using AWS SDK and tools - MAD308...
Developing serverless applications with .NET using AWS SDK and tools - MAD308...Developing serverless applications with .NET using AWS SDK and tools - MAD308...
Developing serverless applications with .NET using AWS SDK and tools - MAD308...Amazon Web Services
 
Integrate Your Favourite Microsoft DevOps Tools with AWS - AWS Summit Sydney
Integrate Your Favourite Microsoft DevOps Tools with AWS - AWS Summit SydneyIntegrate Your Favourite Microsoft DevOps Tools with AWS - AWS Summit Sydney
Integrate Your Favourite Microsoft DevOps Tools with AWS - AWS Summit SydneyAmazon Web Services
 
Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...
Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...
Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...Amazon Web Services
 
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019Provectus
 
From Code to a running container | AWS Summit Tel Aviv 2019
From Code to a running container | AWS Summit Tel Aviv 2019From Code to a running container | AWS Summit Tel Aviv 2019
From Code to a running container | AWS Summit Tel Aviv 2019Amazon Web Services
 
CON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWSCON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWSAmazon Web Services
 
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017Amazon Web Services
 
[AWS Container Service] Getting Started with Cloud Map, App Mesh and Firecracker
[AWS Container Service] Getting Started with Cloud Map, App Mesh and Firecracker[AWS Container Service] Getting Started with Cloud Map, App Mesh and Firecracker
[AWS Container Service] Getting Started with Cloud Map, App Mesh and FirecrackerAmazon Web Services Korea
 
.NET Development and Debugging in AWS
.NET Development and Debugging in AWS.NET Development and Debugging in AWS
.NET Development and Debugging in AWSAmazon 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
 
Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Web Services
 
Breaking the Monolith using AWS Container Services
Breaking the Monolith using AWS Container ServicesBreaking the Monolith using AWS Container Services
Breaking the Monolith using AWS Container ServicesAmazon Web Services
 
Introduction to EC2 A1 instances, powered by the AWS Graviton processor - CMP...
Introduction to EC2 A1 instances, powered by the AWS Graviton processor - CMP...Introduction to EC2 A1 instances, powered by the AWS Graviton processor - CMP...
Introduction to EC2 A1 instances, powered by the AWS Graviton processor - CMP...Amazon Web Services
 
Developing applications on AWS with .NET core - AWS Cape Town Summit 2018
Developing applications on AWS with .NET core - AWS Cape Town Summit 2018Developing applications on AWS with .NET core - AWS Cape Town Summit 2018
Developing applications on AWS with .NET core - AWS Cape Town Summit 2018Amazon Web Services
 
AWS Summit London 2019 - Containers on AWS
AWS Summit London 2019 - Containers on AWSAWS Summit London 2019 - Containers on AWS
AWS Summit London 2019 - Containers on AWSMassimo Ferre'
 
Optimize costs - Migrate existing workloads to the new A1 EC2 Instances - CMP...
Optimize costs - Migrate existing workloads to the new A1 EC2 Instances - CMP...Optimize costs - Migrate existing workloads to the new A1 EC2 Instances - CMP...
Optimize costs - Migrate existing workloads to the new A1 EC2 Instances - CMP...Amazon Web Services
 

Similar to Java on AWS (20)

.NET on AWS
.NET on AWS.NET on AWS
.NET on AWS
 
Hands-on in the AWS Java Ecosystem (DEV325-R1) - AWS re:Invent 2018
Hands-on in the AWS Java Ecosystem (DEV325-R1) - AWS re:Invent 2018Hands-on in the AWS Java Ecosystem (DEV325-R1) - AWS re:Invent 2018
Hands-on in the AWS Java Ecosystem (DEV325-R1) - AWS re:Invent 2018
 
AWS Summit Singapore 2019 | Microsoft DevOps on AWS
AWS Summit Singapore 2019 | Microsoft DevOps on AWSAWS Summit Singapore 2019 | Microsoft DevOps on AWS
AWS Summit Singapore 2019 | Microsoft DevOps on AWS
 
Developing serverless applications with .NET using AWS SDK and tools - MAD308...
Developing serverless applications with .NET using AWS SDK and tools - MAD308...Developing serverless applications with .NET using AWS SDK and tools - MAD308...
Developing serverless applications with .NET using AWS SDK and tools - MAD308...
 
Integrate Your Favourite Microsoft DevOps Tools with AWS - AWS Summit Sydney
Integrate Your Favourite Microsoft DevOps Tools with AWS - AWS Summit SydneyIntegrate Your Favourite Microsoft DevOps Tools with AWS - AWS Summit Sydney
Integrate Your Favourite Microsoft DevOps Tools with AWS - AWS Summit Sydney
 
Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...
Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...
Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...
 
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
 
From Code to a running container | AWS Summit Tel Aviv 2019
From Code to a running container | AWS Summit Tel Aviv 2019From Code to a running container | AWS Summit Tel Aviv 2019
From Code to a running container | AWS Summit Tel Aviv 2019
 
CON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWSCON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWS
 
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
 
[AWS Container Service] Getting Started with Cloud Map, App Mesh and Firecracker
[AWS Container Service] Getting Started with Cloud Map, App Mesh and Firecracker[AWS Container Service] Getting Started with Cloud Map, App Mesh and Firecracker
[AWS Container Service] Getting Started with Cloud Map, App Mesh and Firecracker
 
.NET Development and Debugging in AWS
.NET Development and Debugging in AWS.NET Development and Debugging in AWS
.NET Development and Debugging in AWS
 
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
 
Amazon ECS Deep Dive
Amazon ECS Deep DiveAmazon ECS Deep Dive
Amazon ECS Deep Dive
 
Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)
 
Breaking the Monolith using AWS Container Services
Breaking the Monolith using AWS Container ServicesBreaking the Monolith using AWS Container Services
Breaking the Monolith using AWS Container Services
 
Introduction to EC2 A1 instances, powered by the AWS Graviton processor - CMP...
Introduction to EC2 A1 instances, powered by the AWS Graviton processor - CMP...Introduction to EC2 A1 instances, powered by the AWS Graviton processor - CMP...
Introduction to EC2 A1 instances, powered by the AWS Graviton processor - CMP...
 
Developing applications on AWS with .NET core - AWS Cape Town Summit 2018
Developing applications on AWS with .NET core - AWS Cape Town Summit 2018Developing applications on AWS with .NET core - AWS Cape Town Summit 2018
Developing applications on AWS with .NET core - AWS Cape Town Summit 2018
 
AWS Summit London 2019 - Containers on AWS
AWS Summit London 2019 - Containers on AWSAWS Summit London 2019 - Containers on AWS
AWS Summit London 2019 - Containers on AWS
 
Optimize costs - Migrate existing workloads to the new A1 EC2 Instances - CMP...
Optimize costs - Migrate existing workloads to the new A1 EC2 Instances - CMP...Optimize costs - Migrate existing workloads to the new A1 EC2 Instances - CMP...
Optimize costs - Migrate existing workloads to the new A1 EC2 Instances - CMP...
 

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
 
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
 
Come costruire un'architettura Serverless nel Cloud AWS
Come costruire un'architettura Serverless nel Cloud AWSCome costruire un'architettura Serverless nel Cloud AWS
Come costruire un'architettura Serverless nel Cloud AWSAmazon 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...
 
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
 
Come costruire un'architettura Serverless nel Cloud AWS
Come costruire un'architettura Serverless nel Cloud AWSCome costruire un'architettura Serverless nel Cloud AWS
Come costruire un'architettura Serverless nel Cloud AWS
 

Java on AWS

  • 1. S U M M I T Lo n don
  • 2. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Java on AWS Lee Packham Solutions Architect Amazon Web Services
  • 3. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T `whoami` Lee Packham Solutions Architect Amazon Web Services • 20 years experience of dev, systems architecture and DevOps across Startup and Enterprise; 10 years of AWS experience • Developer (Python/Go/Java/Scala/Kotlin/C/Node/Rust) • Working with customers as well as internal teams on services such as AWS Cloud Development Kit (CDK) Twitter: @joolz / Email: leepac@amazon.com
  • 4. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T What we’ll cover • The JVM ecosystem in relation to AWS • Amazon Corretto • The AWS Java SDK v2 • Developer Preview of AWS Cloud Development Kit (CDK)
  • 5. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS JVM Ecosystem Kinesis Consumer Library Kinesis Producer Library Kinesis/Streaming S3 Transfer Manager S3A Hadoop FS S3 Encryption Client Amazon S3 DynamoDB Mapper DynamoDB Document API DynamoDB Encryption Client Amazon DynamoDB DynamoDB Accelerator (DAX) Client SWF Flow Library Step Functions DSL Workflow Eclipse Toolkit Beanstalker Maven Plugins Client-Side Build Tools Third Party Scala SDKs SQS Extended Client Library IAM Policy DSL Java Mail Client for SES Other Code Deployment AWS CodeStar AWS CodeDeploy AWS CodePipeline Execution Environments AWS Elastic Beanstalk AWS Lambda Amazon EMR Amazon ECSAmazon EC2 Ships with SDK (v1) AWS Open Source 3rd Party Open Source AWS Services Legend Ships with SDK (v2) AWS SDK for Java (v1) Toolkit for IntelliJ Serverless deployment with IntelliJ AWS SDK for Java (v2) New APIs with SDK v2 Faster SDK start-up in Lambda HTTP/2 Bi- Directional Streaming Full duplex streaming Cloud Development Kit (CDK) Infrastructure as code Amazon Corretto Amazon supported OpenJDK
  • 6. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Amazon Corretto • Amazon supported distribution of OpenJDK • Run internally on thousands of production services • Multiplatform: Amazon Linux 2, Windows, macOS, Docker, Ubuntu, etc. • No cost – Distributed under open source license - no charge for use or distribution • No cost LTS (patches, performance improvements) • Both Corretto 8 and 11 are Generally Available • Open source – all patches and enhancements will be upstreamed to OpenJDK - https://github.com/corretto • More info - https://aws.amazon.com/corretto
  • 7. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS Toolkit for JetBrains Meeting developers where they are IntelliJ PyCharm Broad ecosystem • WebStorm • Clion • RubyMine • Rider • AppCode • GoLand
  • 8. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS Toolkit for IntelliJ IDEA & PyCharm Make it easier to develop on AWS Open Source Initial focus: Serverless AWS Lambda AWS SAM CLI Integration Local debugging Serverless application support Basic resource/credential management Will grow support across AWS https://aws.amazon.com/intellij
  • 9. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 10. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS SDK for Java Ships with SDK (v1) AWS Open Source 3rd Party Open Source AWS Services Legend Ships with SDK (v2) Kinesis Consumer Library Kinesis Producer Library Streaming Eclipse Toolkit Beanstalker Maven Plugins Client-Side Build Tools Third Party Scala SDKs Execution Environments AWS Elastic Beanstalk AWS Lambda Amazon EMR Amazon ECSAmazon EC2 Toolkit for JetBrains
  • 11. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS SDK for Java (v2) AWS SDK for Java (v1) AWS SDK for Java Ships with SDK (v1) AWS Open Source 3rd Party Open Source AWS Services Legend Ships with SDK (v2) Kinesis Consumer Library Kinesis Producer Library Streaming Execution Environments AWS Elastic Beanstalk AWS Lambda Amazon EMR Amazon ECSAmazon EC2 Eclipse Toolkit Beanstalker Maven Plugins Client-Side Build Tools Third Party Scala SDKs Toolkit for JetBrains
  • 12. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Ships with SDK (v1) AWS Open Source 3rd Party Open Source AWS Services Legend Ships with SDK (v2) Kinesis Consumer Library Kinesis Producer Library Streaming Execution Environments AWS Elastic Beanstalk Amazon EMR Amazon ECSAmazon EC2 Eclipse Toolkit Beanstalker Maven Plugins Client-Side Build Tools Third Party Scala SDKs Toolkit for JetBrains AWS SDK for Java (v1) AWS SDK for Java (v2) AWS Lambda
  • 13. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS Lambda and the AWS SDK for Java v2 How to get the best Lambda experience with the SDK Startup time of the SDK What did we change? URLConnection as http client Moved off of Jackson Object Mapper at runtime Generate resources at compile time Profile, profile, profile
  • 14. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS SDK for Java v2 Modularized Endpoint Discovery Client Cloud Client Cloud Cloud Cloud
  • 15. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS SDK for Java v2 Modularized Endpoint Discovery HTTP/2 Event Streaming Fully Non-Blocking HTTP/2 Clients Bi-directional real-time streaming responses
  • 16. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Ships with SDK (v1) AWS Open Source 3rd Party Open Source AWS Services Legend Ships with SDK (v2) Kinesis Consumer Library Kinesis Producer Library Streaming Execution Environments AWS Elastic Beanstalk Amazon EMR Amazon ECSAmazon EC2 Eclipse Toolkit Beanstalker Maven Plugins Client-Side Build Tools Third Party Scala SDKs Toolkit for JetBrains AWS SDK for Java (v1) AWS SDK for Java (v2) AWS Lambda
  • 17. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Ships with SDK (v1) AWS Open Source 3rd Party Open Source AWS Services Legend Ships with SDK (v2) Execution Environments AWS Elastic Beanstalk Amazon Elastic Map Reduce (EMR) Amazon EC2 Container Service (ECS) Amazon Elastic Compute (EC2) Eclipse Toolkit Beanstalker Maven Plugins Client-Side Build Tools Third Party Scala SDKs Toolkit for JetBrains AWS SDK for Java (v1) AWS SDK for Java (v2) AWS Lambda Kinesis Consumer Library Kinesis Producer Library Streaming HTTP/2 Bi- Directional Streaming
  • 18. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS SDK for Java v2 GA as of 11/18 https://github.com/aws/aws-sdk-java-v2 https://docs.aws.amazon.com/sdk-for-java/v2/developer-guide/welcome.html KCL 2.0 Available Now https://github.com/awslabs/amazon-kinesis-client High-Level Libraries Coming Soon S3 Managed Multi-Part Uploads/Downloads DynamoDB ORM & Document Model IAM Policy Generation API Gateway Client Generation And More With Your Feedback!
  • 19. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 20. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Manual Easy to get started Not reproducible Error prone Time consuming Manual High level Low level
  • 21. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Scripted What happens if an API call fails? How do I make updates? How do I know a resource is ready? How do I roll back? Scripted Manual High level Low level
  • 22. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Resource provisioning engines AWS CloudFormation template (JSON/YAML) HashiCorp Configuration Language (HCL) Desired state configuration Easy to automate Reproducible Configuration syntax No abstraction, lots of details Declarative Scripted Manual High level Low level
  • 23. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Document Object Models (DOMs) Troposphere Python SparkleFormation Ruby GoFormation Go … if statements, for loops, IDE benefits Ex: 218 lines of Troposphere for a VPC AWS CloudFormation Template Real code Desired state Abstraction is not built-in DOMs Declarative Scripted Manual High level Low level
  • 24. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS CDK AWS CloudFormation template AWS CDK application Stack(s) Construct Construct Resources Developer preview Componentized DOMs Declarative Scripted Manual High level Low level
  • 25. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Simple CDK example Stack
  • 26. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Simple CDK example Stack Queue queue = new Queue(this, "Queue", QueueProps.builder() .withVisibilityTimeoutSec(300) .build()); Topic topic = new Topic(this, "Topic", TopicProps.builder() .withDisplayName("Some Amazing Topic") .build());
  • 27. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Simple CDK example Queue queue = new Queue(this, "Queue", QueueProps.builder() .withVisibilityTimeoutSec(300) .build()); Topic topic = new Topic(this, "Topic", TopicProps.builder() .withDisplayName("Some Amazing Topic") .build()); topic.subscribeQueue(queue);
  • 28. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Synthesized Template { "Resources": { "Queue4A7E3555": { "Type": "AWS::SQS::Queue", "Properties": { "VisibilityTimeout": 300 } }, "QueuePolicy25439813": { "Type": "AWS::SQS::QueuePolicy", "Properties": { "PolicyDocument": { "Statement": [ { "Action": "sqs:SendMessage", "Condition": { "ArnEquals": { "aws:SourceArn": { "Ref": "TopicBFC7AF6E" } } }, "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Resource": { "Fn::GetAtt": [ "Queue4A7E3555", "Arn" ] } } ], "Version": "2012-10-17" }, "Queues": [{ "Ref": "Queue4A7E3555" }] } }, "TopicBFC7AF6E": { "Type": "AWS::SNS::Topic", "Properties": { "DisplayName": "Some Amazing Topic" } }, "TopicQueueSubscription2D098ED4": { "Type": "AWS::SNS::Subscription", "Properties": { "Endpoint": { "Fn::GetAtt": [ "Queue4A7E3555", "Arn" ] }, "Protocol": "sqs", "TopicArn": { "Ref": "TopicBFC7AF6E" } } } } }
  • 29. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
  • 30. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. npm install –g aws-cdk
  • 31. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. mkdir –p ~/cdk/myapp cd "$_" cdk init app --language=java
  • 32. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 33. Thank you! S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Lee Packham @joolz leepac@amazon.co.uk
  • 34. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.