SlideShare a Scribd company logo
Local AWS Development
with LocalStack and Moto
MJ Berends
Intro
MJ Berends
• Engineering Team Lead at
Jellyvision
• Still overwhelmed by AWS
• She/her
Jellyvision
• Talks people through big life
decisions
• Lets me learn lots about AWS
approximatelylinear
@apprxlinear
• www.jellyvision.com
@JellyvisionLab
So, you want to run your code.
(And also share it with others. Maybe in a web page?)
A couple options:
• A machine you own
• AWS
Your Machine
Great!
• Total Control
• Familiar
• The way you like it
Meh.
• Limited resources
• Inaccessible to others
• Hard to replicate
AWS
Great!
• Run code in the cloud
• Scale out
• Delegate server maintenance
• Cheap
Meh.
• Proprietary services
• Unfamiliar environments
• Managing security
Interlude: Alphabet soup !
Service Quick Blurb
S3 (Simple Storage Service) Cheap object-based storage
DynamoDB
NoSQL database with fast and scalable single-
item lookups
SNS (Simple Notification Service) Pushes messages to multiple destinations
SQS (Simple Queue Service)
Buffers messages until there’s processing
capacity
EC2 (Elastic Compute Cloud)
General-purpose machine that will run any
program you want it to
Example: Let’s make a Dropbox!
Local System AWS
Ack! So Different!
AWS Open Source
Compute • EC2 • A CPU +
Python
Storage • DynamoDB
• S3
• MySQL
• Filesystem
Transport • SNS
• SQS
• RabbitMQ
Presentation • S3 webpage • Nginx + Nodejs
Nevertheless, AWS is...
• Managed
• Scalable
• Easy-to-configure
...and their services play nicely
with each other!
Let’s recap: Different approaches
Local development cycle
Use any tool you want, as long as
it runs on your OS
AWS development cycle
Use a combination of proprietary,
open-source, and AWS-specific
tools
Approaches
• What are ways of resolving this tension?
1. Don’t use any AWS-specific services
Use your own services in both your local environment and on your
servers.
(Deploy this code to EC2 instances in AWS, which you have complete
control over.)
2. Split codebase
• Maintain AWS-specific and local development versions
• Find alternatives to AWS-specific services for local dev
• Let ops maintain anything AWS-specific
• Develop against an AWS sandbox in limited cases
3. Use AWS everywhere you can
• Use AWS services in all environments, both cloud and local
• Find local versions of AWS code. Use them.
• And also use real AWS services in the cloud
Scorecard
Great! Meh.
Nothing by AWS, thank you Same code runs everywhere Need to manage everything
yourself
Keep my codebases separate,
please
N/A Different code in different places
AWS everywhere! Same code runs everywhere Does this really work? Won’t there
be subtle differences? I can’t have
everything the same, can I?
Local Dev Tools
Localstack
https://github.com/localstack/localstack
A fully functional local AWS cloud
stack. Develop and test your cloud
apps offline! (Backed by Atlassian)
Moto
https://github.com/spulec/moto
Moto is a library that allows your
python tests to easily mock out
the boto library
Easy to install Clear docs Coverage Robustness Attention
Localstack ✅ ⚠ 15+ ⚠
Moto ✅ ✅ 30+ ✅
What’s in a Localstack?
Localstack
Moto
<Lots others>
ElasticMQ
SQS
Kinesalite
Kinesis
Local DynamoDB Elasticsearch
LocalStack is based on Moto!
❗
Localstack
What can you do?
• Run many common AWS
services locally, including S3,
DynamoDB, SNS, and SQS.
• Develop application logic that
utilizes those AWS services
• Simulate failure scenarios, such
as services outages or capacity
limits
What can’t you do?
• Run other services outside the
set already implemented
• Test networking features, like
VPCs or CORS
• Test access controls, roles, or
permissions
Interlude: How do you access AWS?
Console
• Online GUI
• Detailed tutorials
CLI
• Text interface
• Use in the shell
SDK
• Integrates with code
• Many languages
available
Localstack Usage
Installation
•pip install
localstack
Usage
•localstack
start
Interaction
• CLI or SDK actions
(Or, run in Docker)
CLI Example: Create an SQS Queue
Just set the
--endpoint-url
to the Localstack url for the
service
So magic ✨
Development Process
• Design Applica-on logic
• Familiarize yourself with services
• Build applica-on prototype using services
• Test Services in AWS
Design application logic
• Identify candidates for AWS services
Familiarize yourself with services
• Explore AWS CLI tutorials
• Run Localstack and point AWS CLI toward instance, and try things out!
Build application prototype
Test locally
Prototype the interaction of
application logic with AWS
services
Test in AWS
Explore permissions, networking,
and application load
Test Services in AWS sandbox
• Replace localstack endpoint with Sandbox endpoint
• Add ”real” configurations
• Networking
• Access controls
• CORS
• Disaster recovery
• Multiregion support
Recommendation
Keep learning!
Use Localstack for exploring
services and doing initial
prototype
Keep building!
Don’t be afraid of AWS services!
You can keep dev versions closely
coupled with applicaAon
producAon versions
Thank you!
• Thanks to AWS Chicago for hosting! And also...
• AWS for SO MANY neato products
• Localstack (https://github.com/localstack/localstack)
• Moto (https://github.com/spulec/moto)
• Open-source contributors everywhere
And, of course, everyone here!
Questions?
• Yes, please!

More Related Content

What's hot

Going Serverless: The Best Ops is NoOps.
Going Serverless: The Best Ops is NoOps.Going Serverless: The Best Ops is NoOps.
Going Serverless: The Best Ops is NoOps.
PolarSeven Pty Ltd
 
PHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web DevelopmentPHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web Development
Irfan Maulana
 
NDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsNDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design Patterns
Ryan Green
 
Real World Rails Deployment
Real World Rails DeploymentReal World Rails Deployment
Real World Rails Deployment
Alan Hecht
 
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
Irfan Maulana
 
Build App with Nodejs - YWC Workshop
Build App with Nodejs - YWC WorkshopBuild App with Nodejs - YWC Workshop
Build App with Nodejs - YWC Workshop
Sarunyhot Suwannachoti
 
Building Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScriptBuilding Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScript
MSDEVMTL
 
Breaking the eggshell: From .NET to Node.js
Breaking the eggshell: From .NET to Node.jsBreaking the eggshell: From .NET to Node.js
Breaking the eggshell: From .NET to Node.js
Barbara Fusinska
 
Nodejs - Building a RESTful API
Nodejs - Building a RESTful APINodejs - Building a RESTful API
Nodejs - Building a RESTful API
Sang Cù
 
Ops for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless AppsOps for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless Apps
Erica Windisch
 
Neil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep DiveNeil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep Dive
WinOps Conf
 
Women Who Code Connect 2018 Conference
Women Who Code Connect 2018 ConferenceWomen Who Code Connect 2018 Conference
Women Who Code Connect 2018 Conference
Supriya Premkumar
 
Understand How Node.js and Core Features Works
Understand How Node.js and Core Features WorksUnderstand How Node.js and Core Features Works
Understand How Node.js and Core Features Works
Hengki Sihombing
 
빈스톡 첫인상 with Git
빈스톡 첫인상 with Git빈스톡 첫인상 with Git
빈스톡 첫인상 with Git
AWSKRUG - AWS한국사용자모임
 
Node, express & sails
Node, express & sailsNode, express & sails
Node, express & sails
Brian Shannon
 
Ansible Best Practices - July 30
Ansible Best Practices - July 30Ansible Best Practices - July 30
Ansible Best Practices - July 30
tylerturk
 
ASP.NET vNext
ASP.NET vNextASP.NET vNext
ASP.NET vNext
Alex Thissen
 
Introduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Ansible - Jan 28 - Austin MeetUpIntroduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Ansible - Jan 28 - Austin MeetUp
tylerturk
 
Fastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + SwaggerFastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + Swagger
Tony Tam
 
DevOps for Scala
DevOps for ScalaDevOps for Scala
DevOps for Scala
Michele Sciabarrà
 

What's hot (20)

Going Serverless: The Best Ops is NoOps.
Going Serverless: The Best Ops is NoOps.Going Serverless: The Best Ops is NoOps.
Going Serverless: The Best Ops is NoOps.
 
PHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web DevelopmentPHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web Development
 
NDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design PatternsNDev Talk - Serverless Design Patterns
NDev Talk - Serverless Design Patterns
 
Real World Rails Deployment
Real World Rails DeploymentReal World Rails Deployment
Real World Rails Deployment
 
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
 
Build App with Nodejs - YWC Workshop
Build App with Nodejs - YWC WorkshopBuild App with Nodejs - YWC Workshop
Build App with Nodejs - YWC Workshop
 
Building Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScriptBuilding Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScript
 
Breaking the eggshell: From .NET to Node.js
Breaking the eggshell: From .NET to Node.jsBreaking the eggshell: From .NET to Node.js
Breaking the eggshell: From .NET to Node.js
 
Nodejs - Building a RESTful API
Nodejs - Building a RESTful APINodejs - Building a RESTful API
Nodejs - Building a RESTful API
 
Ops for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless AppsOps for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless Apps
 
Neil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep DiveNeil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep Dive
 
Women Who Code Connect 2018 Conference
Women Who Code Connect 2018 ConferenceWomen Who Code Connect 2018 Conference
Women Who Code Connect 2018 Conference
 
Understand How Node.js and Core Features Works
Understand How Node.js and Core Features WorksUnderstand How Node.js and Core Features Works
Understand How Node.js and Core Features Works
 
빈스톡 첫인상 with Git
빈스톡 첫인상 with Git빈스톡 첫인상 with Git
빈스톡 첫인상 with Git
 
Node, express & sails
Node, express & sailsNode, express & sails
Node, express & sails
 
Ansible Best Practices - July 30
Ansible Best Practices - July 30Ansible Best Practices - July 30
Ansible Best Practices - July 30
 
ASP.NET vNext
ASP.NET vNextASP.NET vNext
ASP.NET vNext
 
Introduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Ansible - Jan 28 - Austin MeetUpIntroduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Ansible - Jan 28 - Austin MeetUp
 
Fastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + SwaggerFastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + Swagger
 
DevOps for Scala
DevOps for ScalaDevOps for Scala
DevOps for Scala
 

Similar to MJ Berends talk - Women & Non-Binary Focused Intro to AWS

MJ Berends talk from AWS Chicago Summit
MJ Berends talk from AWS Chicago SummitMJ Berends talk from AWS Chicago Summit
MJ Berends talk from AWS Chicago Summit
AWS Chicago
 
Amazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarAmazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI Webinar
Craig Dickson
 
Container Orchestration for .NET Developers
Container Orchestration for .NET DevelopersContainer Orchestration for .NET Developers
Container Orchestration for .NET Developers
Mike Melusky
 
Getting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
Amazon Web Services
 
Serverless Web Apps using API Gateway, Lambda and DynamoDB
Serverless Web Apps using API Gateway, Lambda and DynamoDBServerless Web Apps using API Gateway, Lambda and DynamoDB
Serverless Web Apps using API Gateway, Lambda and DynamoDB
Amazon Web Services
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
Amazon Web Services
 
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
Amazon Web Services
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
Amazon Web Services
 
HSBC and AWS Day - Microservices and Serverless
HSBC and AWS Day - Microservices and ServerlessHSBC and AWS Day - Microservices and Serverless
HSBC and AWS Day - Microservices and Serverless
Amazon Web Services
 
Getting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
Amazon Web Services
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon Elisha
Helen Rogers
 
Getting Started with AWS Lambda & Serverless Cloud
Getting Started with AWS Lambda & Serverless CloudGetting Started with AWS Lambda & Serverless Cloud
Getting Started with AWS Lambda & Serverless Cloud
Ian Massingham
 
Getting Started with Containers on AWS: Collision 2018
Getting Started with Containers on AWS: Collision 2018Getting Started with Containers on AWS: Collision 2018
Getting Started with Containers on AWS: Collision 2018
Amazon Web Services
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
Kristana Kane
 
20180111 we bde-bs - serverless url shortener
20180111   we bde-bs - serverless url shortener20180111   we bde-bs - serverless url shortener
20180111 we bde-bs - serverless url shortener
Luca Bianchi
 
AWS Lambda and Serverless Cloud
AWS Lambda and Serverless CloudAWS Lambda and Serverless Cloud
AWS Lambda and Serverless Cloud
Amazon Web Services
 
Serverless applications
Serverless applicationsServerless applications
Serverless applications
mbaric
 
Getting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
Amazon Web Services
 
AWS and DevOps Session 1
AWS and DevOps Session 1AWS and DevOps Session 1
Cloudformation & VPC, EC2, RDS
Cloudformation & VPC, EC2, RDSCloudformation & VPC, EC2, RDS
Cloudformation & VPC, EC2, RDS
Can Abacıgil
 

Similar to MJ Berends talk - Women & Non-Binary Focused Intro to AWS (20)

MJ Berends talk from AWS Chicago Summit
MJ Berends talk from AWS Chicago SummitMJ Berends talk from AWS Chicago Summit
MJ Berends talk from AWS Chicago Summit
 
Amazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarAmazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI Webinar
 
Container Orchestration for .NET Developers
Container Orchestration for .NET DevelopersContainer Orchestration for .NET Developers
Container Orchestration for .NET Developers
 
Getting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
 
Serverless Web Apps using API Gateway, Lambda and DynamoDB
Serverless Web Apps using API Gateway, Lambda and DynamoDBServerless Web Apps using API Gateway, Lambda and DynamoDB
Serverless Web Apps using API Gateway, Lambda and DynamoDB
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
 
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
 
HSBC and AWS Day - Microservices and Serverless
HSBC and AWS Day - Microservices and ServerlessHSBC and AWS Day - Microservices and Serverless
HSBC and AWS Day - Microservices and Serverless
 
Getting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon Elisha
 
Getting Started with AWS Lambda & Serverless Cloud
Getting Started with AWS Lambda & Serverless CloudGetting Started with AWS Lambda & Serverless Cloud
Getting Started with AWS Lambda & Serverless Cloud
 
Getting Started with Containers on AWS: Collision 2018
Getting Started with Containers on AWS: Collision 2018Getting Started with Containers on AWS: Collision 2018
Getting Started with Containers on AWS: Collision 2018
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
 
20180111 we bde-bs - serverless url shortener
20180111   we bde-bs - serverless url shortener20180111   we bde-bs - serverless url shortener
20180111 we bde-bs - serverless url shortener
 
AWS Lambda and Serverless Cloud
AWS Lambda and Serverless CloudAWS Lambda and Serverless Cloud
AWS Lambda and Serverless Cloud
 
Serverless applications
Serverless applicationsServerless applications
Serverless applications
 
Getting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
 
AWS and DevOps Session 1
AWS and DevOps Session 1AWS and DevOps Session 1
AWS and DevOps Session 1
 
Cloudformation & VPC, EC2, RDS
Cloudformation & VPC, EC2, RDSCloudformation & VPC, EC2, RDS
Cloudformation & VPC, EC2, RDS
 

More from AWS Chicago

Lena Taupier: Secure your App from bots and attacks with AWS WAF (Web Applica...
Lena Taupier: Secure your App from bots and attacks with AWS WAF (Web Applica...Lena Taupier: Secure your App from bots and attacks with AWS WAF (Web Applica...
Lena Taupier: Secure your App from bots and attacks with AWS WAF (Web Applica...
AWS Chicago
 
Rob Sable: Gen AI and Manufacfuring Community Day
Rob Sable: Gen AI and Manufacfuring Community DayRob Sable: Gen AI and Manufacfuring Community Day
Rob Sable: Gen AI and Manufacfuring Community Day
AWS Chicago
 
LinkedIn profile and strategies for earning the Top Voice award
LinkedIn profile and strategies for earning the Top Voice awardLinkedIn profile and strategies for earning the Top Voice award
LinkedIn profile and strategies for earning the Top Voice award
AWS Chicago
 
Lloyd Evans: GRC Engineering Automating Compliance
Lloyd Evans: GRC Engineering Automating ComplianceLloyd Evans: GRC Engineering Automating Compliance
Lloyd Evans: GRC Engineering Automating Compliance
AWS Chicago
 
Drake Lundstrom: How not to do a cloud migration
Drake Lundstrom: How not to do a cloud migrationDrake Lundstrom: How not to do a cloud migration
Drake Lundstrom: How not to do a cloud migration
AWS Chicago
 
Andrew May: Things AWS could learn from Azure (and things it shouldn't)
Andrew May: Things AWS could learn from Azure (and things it shouldn't)Andrew May: Things AWS could learn from Azure (and things it shouldn't)
Andrew May: Things AWS could learn from Azure (and things it shouldn't)
AWS Chicago
 
Steve Seaney: Leveraging AWS services to streamline compliance
Steve Seaney: Leveraging AWS services to streamline complianceSteve Seaney: Leveraging AWS services to streamline compliance
Steve Seaney: Leveraging AWS services to streamline compliance
AWS Chicago
 
AWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user group
AWS Chicago
 
Chicago AWS Solutions Architect Mehdy Haghy recaps the new AI/ML releases and...
Chicago AWS Solutions Architect Mehdy Haghy recaps the new AI/ML releases and...Chicago AWS Solutions Architect Mehdy Haghy recaps the new AI/ML releases and...
Chicago AWS Solutions Architect Mehdy Haghy recaps the new AI/ML releases and...
AWS Chicago
 
WilliamCollins_Road-to-Transit-Gateway.pptx
WilliamCollins_Road-to-Transit-Gateway.pptxWilliamCollins_Road-to-Transit-Gateway.pptx
WilliamCollins_Road-to-Transit-Gateway.pptx
AWS Chicago
 
Suresh Poopandi_Generative AI On AWS-MidWestCommunityDay-Final.pdf
Suresh Poopandi_Generative AI On AWS-MidWestCommunityDay-Final.pdfSuresh Poopandi_Generative AI On AWS-MidWestCommunityDay-Final.pdf
Suresh Poopandi_Generative AI On AWS-MidWestCommunityDay-Final.pdf
AWS Chicago
 
Streamlined Entitlements with AWS Lake Formation - Anusha Dwivedula
Streamlined Entitlements with AWS Lake Formation - Anusha DwivedulaStreamlined Entitlements with AWS Lake Formation - Anusha Dwivedula
Streamlined Entitlements with AWS Lake Formation - Anusha Dwivedula
AWS Chicago
 
Steve Seaney_AWS Control Tower - 2023 Midwest Community Day - Final.pptx
Steve Seaney_AWS Control Tower - 2023 Midwest Community Day - Final.pptxSteve Seaney_AWS Control Tower - 2023 Midwest Community Day - Final.pptx
Steve Seaney_AWS Control Tower - 2023 Midwest Community Day - Final.pptx
AWS Chicago
 
Saurabh_Shanbhag - Building_SaaS_on_AWS.pptx
Saurabh_Shanbhag - Building_SaaS_on_AWS.pptxSaurabh_Shanbhag - Building_SaaS_on_AWS.pptx
Saurabh_Shanbhag - Building_SaaS_on_AWS.pptx
AWS Chicago
 
Sanket_Nasre_Simplify Modernization.pdf
Sanket_Nasre_Simplify Modernization.pdfSanket_Nasre_Simplify Modernization.pdf
Sanket_Nasre_Simplify Modernization.pdf
AWS Chicago
 
Ross Stuart_Using ML to Solve Lifes Problems.pptx
Ross Stuart_Using ML to Solve Lifes Problems.pptxRoss Stuart_Using ML to Solve Lifes Problems.pptx
Ross Stuart_Using ML to Solve Lifes Problems.pptx
AWS Chicago
 
robsable_Enhancing DevOps Practices with CloudWatch APM FINAL.pdf
robsable_Enhancing DevOps Practices with CloudWatch APM FINAL.pdfrobsable_Enhancing DevOps Practices with CloudWatch APM FINAL.pdf
robsable_Enhancing DevOps Practices with CloudWatch APM FINAL.pdf
AWS Chicago
 
Sanket_Nasre_Simplify Modernization.pdf
Sanket_Nasre_Simplify Modernization.pdfSanket_Nasre_Simplify Modernization.pdf
Sanket_Nasre_Simplify Modernization.pdf
AWS Chicago
 
Mohamed Wali_AWS Security Reference Architecture.pptx
Mohamed Wali_AWS Security Reference Architecture.pptxMohamed Wali_AWS Security Reference Architecture.pptx
Mohamed Wali_AWS Security Reference Architecture.pptx
AWS Chicago
 
Nick-Walter-HOB_Migrating_Dinosaurs.pptx
Nick-Walter-HOB_Migrating_Dinosaurs.pptxNick-Walter-HOB_Migrating_Dinosaurs.pptx
Nick-Walter-HOB_Migrating_Dinosaurs.pptx
AWS Chicago
 

More from AWS Chicago (20)

Lena Taupier: Secure your App from bots and attacks with AWS WAF (Web Applica...
Lena Taupier: Secure your App from bots and attacks with AWS WAF (Web Applica...Lena Taupier: Secure your App from bots and attacks with AWS WAF (Web Applica...
Lena Taupier: Secure your App from bots and attacks with AWS WAF (Web Applica...
 
Rob Sable: Gen AI and Manufacfuring Community Day
Rob Sable: Gen AI and Manufacfuring Community DayRob Sable: Gen AI and Manufacfuring Community Day
Rob Sable: Gen AI and Manufacfuring Community Day
 
LinkedIn profile and strategies for earning the Top Voice award
LinkedIn profile and strategies for earning the Top Voice awardLinkedIn profile and strategies for earning the Top Voice award
LinkedIn profile and strategies for earning the Top Voice award
 
Lloyd Evans: GRC Engineering Automating Compliance
Lloyd Evans: GRC Engineering Automating ComplianceLloyd Evans: GRC Engineering Automating Compliance
Lloyd Evans: GRC Engineering Automating Compliance
 
Drake Lundstrom: How not to do a cloud migration
Drake Lundstrom: How not to do a cloud migrationDrake Lundstrom: How not to do a cloud migration
Drake Lundstrom: How not to do a cloud migration
 
Andrew May: Things AWS could learn from Azure (and things it shouldn't)
Andrew May: Things AWS could learn from Azure (and things it shouldn't)Andrew May: Things AWS could learn from Azure (and things it shouldn't)
Andrew May: Things AWS could learn from Azure (and things it shouldn't)
 
Steve Seaney: Leveraging AWS services to streamline compliance
Steve Seaney: Leveraging AWS services to streamline complianceSteve Seaney: Leveraging AWS services to streamline compliance
Steve Seaney: Leveraging AWS services to streamline compliance
 
AWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user group
 
Chicago AWS Solutions Architect Mehdy Haghy recaps the new AI/ML releases and...
Chicago AWS Solutions Architect Mehdy Haghy recaps the new AI/ML releases and...Chicago AWS Solutions Architect Mehdy Haghy recaps the new AI/ML releases and...
Chicago AWS Solutions Architect Mehdy Haghy recaps the new AI/ML releases and...
 
WilliamCollins_Road-to-Transit-Gateway.pptx
WilliamCollins_Road-to-Transit-Gateway.pptxWilliamCollins_Road-to-Transit-Gateway.pptx
WilliamCollins_Road-to-Transit-Gateway.pptx
 
Suresh Poopandi_Generative AI On AWS-MidWestCommunityDay-Final.pdf
Suresh Poopandi_Generative AI On AWS-MidWestCommunityDay-Final.pdfSuresh Poopandi_Generative AI On AWS-MidWestCommunityDay-Final.pdf
Suresh Poopandi_Generative AI On AWS-MidWestCommunityDay-Final.pdf
 
Streamlined Entitlements with AWS Lake Formation - Anusha Dwivedula
Streamlined Entitlements with AWS Lake Formation - Anusha DwivedulaStreamlined Entitlements with AWS Lake Formation - Anusha Dwivedula
Streamlined Entitlements with AWS Lake Formation - Anusha Dwivedula
 
Steve Seaney_AWS Control Tower - 2023 Midwest Community Day - Final.pptx
Steve Seaney_AWS Control Tower - 2023 Midwest Community Day - Final.pptxSteve Seaney_AWS Control Tower - 2023 Midwest Community Day - Final.pptx
Steve Seaney_AWS Control Tower - 2023 Midwest Community Day - Final.pptx
 
Saurabh_Shanbhag - Building_SaaS_on_AWS.pptx
Saurabh_Shanbhag - Building_SaaS_on_AWS.pptxSaurabh_Shanbhag - Building_SaaS_on_AWS.pptx
Saurabh_Shanbhag - Building_SaaS_on_AWS.pptx
 
Sanket_Nasre_Simplify Modernization.pdf
Sanket_Nasre_Simplify Modernization.pdfSanket_Nasre_Simplify Modernization.pdf
Sanket_Nasre_Simplify Modernization.pdf
 
Ross Stuart_Using ML to Solve Lifes Problems.pptx
Ross Stuart_Using ML to Solve Lifes Problems.pptxRoss Stuart_Using ML to Solve Lifes Problems.pptx
Ross Stuart_Using ML to Solve Lifes Problems.pptx
 
robsable_Enhancing DevOps Practices with CloudWatch APM FINAL.pdf
robsable_Enhancing DevOps Practices with CloudWatch APM FINAL.pdfrobsable_Enhancing DevOps Practices with CloudWatch APM FINAL.pdf
robsable_Enhancing DevOps Practices with CloudWatch APM FINAL.pdf
 
Sanket_Nasre_Simplify Modernization.pdf
Sanket_Nasre_Simplify Modernization.pdfSanket_Nasre_Simplify Modernization.pdf
Sanket_Nasre_Simplify Modernization.pdf
 
Mohamed Wali_AWS Security Reference Architecture.pptx
Mohamed Wali_AWS Security Reference Architecture.pptxMohamed Wali_AWS Security Reference Architecture.pptx
Mohamed Wali_AWS Security Reference Architecture.pptx
 
Nick-Walter-HOB_Migrating_Dinosaurs.pptx
Nick-Walter-HOB_Migrating_Dinosaurs.pptxNick-Walter-HOB_Migrating_Dinosaurs.pptx
Nick-Walter-HOB_Migrating_Dinosaurs.pptx
 

Recently uploaded

OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 

Recently uploaded (20)

OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 

MJ Berends talk - Women & Non-Binary Focused Intro to AWS

  • 1. Local AWS Development with LocalStack and Moto MJ Berends
  • 2. Intro MJ Berends • Engineering Team Lead at Jellyvision • Still overwhelmed by AWS • She/her Jellyvision • Talks people through big life decisions • Lets me learn lots about AWS approximatelylinear @apprxlinear • www.jellyvision.com @JellyvisionLab
  • 3. So, you want to run your code. (And also share it with others. Maybe in a web page?) A couple options: • A machine you own • AWS
  • 4. Your Machine Great! • Total Control • Familiar • The way you like it Meh. • Limited resources • Inaccessible to others • Hard to replicate
  • 5. AWS Great! • Run code in the cloud • Scale out • Delegate server maintenance • Cheap Meh. • Proprietary services • Unfamiliar environments • Managing security
  • 6. Interlude: Alphabet soup ! Service Quick Blurb S3 (Simple Storage Service) Cheap object-based storage DynamoDB NoSQL database with fast and scalable single- item lookups SNS (Simple Notification Service) Pushes messages to multiple destinations SQS (Simple Queue Service) Buffers messages until there’s processing capacity EC2 (Elastic Compute Cloud) General-purpose machine that will run any program you want it to
  • 7. Example: Let’s make a Dropbox! Local System AWS
  • 8. Ack! So Different! AWS Open Source Compute • EC2 • A CPU + Python Storage • DynamoDB • S3 • MySQL • Filesystem Transport • SNS • SQS • RabbitMQ Presentation • S3 webpage • Nginx + Nodejs Nevertheless, AWS is... • Managed • Scalable • Easy-to-configure ...and their services play nicely with each other!
  • 9. Let’s recap: Different approaches Local development cycle Use any tool you want, as long as it runs on your OS AWS development cycle Use a combination of proprietary, open-source, and AWS-specific tools
  • 10. Approaches • What are ways of resolving this tension?
  • 11. 1. Don’t use any AWS-specific services Use your own services in both your local environment and on your servers. (Deploy this code to EC2 instances in AWS, which you have complete control over.)
  • 12. 2. Split codebase • Maintain AWS-specific and local development versions • Find alternatives to AWS-specific services for local dev • Let ops maintain anything AWS-specific • Develop against an AWS sandbox in limited cases
  • 13. 3. Use AWS everywhere you can • Use AWS services in all environments, both cloud and local • Find local versions of AWS code. Use them. • And also use real AWS services in the cloud
  • 14. Scorecard Great! Meh. Nothing by AWS, thank you Same code runs everywhere Need to manage everything yourself Keep my codebases separate, please N/A Different code in different places AWS everywhere! Same code runs everywhere Does this really work? Won’t there be subtle differences? I can’t have everything the same, can I?
  • 15. Local Dev Tools Localstack https://github.com/localstack/localstack A fully functional local AWS cloud stack. Develop and test your cloud apps offline! (Backed by Atlassian) Moto https://github.com/spulec/moto Moto is a library that allows your python tests to easily mock out the boto library Easy to install Clear docs Coverage Robustness Attention Localstack ✅ ⚠ 15+ ⚠ Moto ✅ ✅ 30+ ✅
  • 16. What’s in a Localstack? Localstack Moto <Lots others> ElasticMQ SQS Kinesalite Kinesis Local DynamoDB Elasticsearch LocalStack is based on Moto! ❗
  • 17. Localstack What can you do? • Run many common AWS services locally, including S3, DynamoDB, SNS, and SQS. • Develop application logic that utilizes those AWS services • Simulate failure scenarios, such as services outages or capacity limits What can’t you do? • Run other services outside the set already implemented • Test networking features, like VPCs or CORS • Test access controls, roles, or permissions
  • 18. Interlude: How do you access AWS? Console • Online GUI • Detailed tutorials CLI • Text interface • Use in the shell SDK • Integrates with code • Many languages available
  • 20. CLI Example: Create an SQS Queue Just set the --endpoint-url to the Localstack url for the service So magic ✨
  • 21. Development Process • Design Applica-on logic • Familiarize yourself with services • Build applica-on prototype using services • Test Services in AWS
  • 22. Design application logic • Identify candidates for AWS services
  • 23. Familiarize yourself with services • Explore AWS CLI tutorials • Run Localstack and point AWS CLI toward instance, and try things out!
  • 24. Build application prototype Test locally Prototype the interaction of application logic with AWS services Test in AWS Explore permissions, networking, and application load
  • 25. Test Services in AWS sandbox • Replace localstack endpoint with Sandbox endpoint • Add ”real” configurations • Networking • Access controls • CORS • Disaster recovery • Multiregion support
  • 26. Recommendation Keep learning! Use Localstack for exploring services and doing initial prototype Keep building! Don’t be afraid of AWS services! You can keep dev versions closely coupled with applicaAon producAon versions
  • 27. Thank you! • Thanks to AWS Chicago for hosting! And also... • AWS for SO MANY neato products • Localstack (https://github.com/localstack/localstack) • Moto (https://github.com/spulec/moto) • Open-source contributors everywhere And, of course, everyone here!