SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Build Once, Deploy Many:
A r c h i t e c t i n g a n d B u i l d i n g A u t o m a t e d , R e u s a b l e R e f e r e n c e
D e p l o y m e n t s w i t h A W S C l o u d F o r m a t i o n
G P S T E C 3 1 9
S a n t i a g o C a r d e n a s
P a r t n e r S o l u t i o n s A r c h i t e c t
A W S Q u i c k S t a r t
N o v e m b e r 2 8 , 2 0 1 7
AWS re:INVENT
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Work smarter, not harder
copyright 2006 john klossner www.jklossner.com
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
A day in the life of IT
Discover
TryDeploy
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Quick Starts
Automated reference deployments on AWS
Help streamline installation and configuration
AWS Partner Network team
Primarily technical program
Focus on enabling customers
“Using AWS SAP HANA Quick Start,
we only needed to push a few
buttons to get a functioning SAP
HANA solution.”
–Philip Miller, IT Director
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Wide spectrum of Quick Starts
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• 1 stepSign up, sign in
• 2 stepsChoose region and key pair
• 4 stepsCreate VPC
• 4 stepsCreate Internet gateway
• 24 stepsCreate 12 subnets
• 24 stepsCreate 4 NACLs
• 16 stepsCreate 4 NAT gateways
• 27 stepsCreate 9 route tables
• 2 stepsCreate routes
• Many more stepsAdd more stacks
Sign up, sign in
Choose region and
key pair
Launch Quick Start
Manual deployment VPC Quick Start
Reducing complexity
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Plan
and
Design
Build
and
Test
Optimize
and
Enhance
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Plan
and
Design
Build
and
Test
Optimize
and
Enhance
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
The value of planning
Modern Data Warehouse on AWS
New use case-based Quick Start
Defined the scope and organization
Produced architectural diagrams
Designed and developed
reference deployment
Provided product expertise
and sample data set
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Secure Reliable Performant Efficient
Attributes of great architectures
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Security tips
Lock down CIDR blocks for external admin access
Implement security groups with principle of least privilege and role-based
access
No default passwords (and provides a way to set one)
Use public and private subnets
Avoid outputting secrets in logs, and scrub as needed
Implement ways of auditing access and usage
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Reliability tips
Span across subnets in multiple Availability Zones
Consider multiple regions for disaster recovery
Regularly create snapshots of data
Implement health checks to remove/replace problematic nodes
Scale up to handle additional load
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Performance tips
Deliver static content from edge network locations
Implement caching where it makes sense
Avoid storing state in compute or app-level instances
Utilize high performance features of load balancers
Run on instance types with appropriate compute/memory/storage
ratios
Take advantage of high performance database services like
Amazon Aurora and Amazon DynamoDB
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Efficiency tips
Scale down based on load
Containerized solutions for higher compute density
Separate constant load as opposed to bursty load
Implement pay-per-execution serverless components
Use services with lower operational burden like RDS, EFS, Directory
Service
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Security Reliability Performance
Efficiency
Cost
Optimization
AWS Well-Architected framework
Operational
Excellence
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Plan
and
Design
Build
and
Test
Optimize
and
Enhance
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scripting Orchestration Source control
Recurring themes
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Yum/Apt/Zypper
Shell/Python
File based configurations
Command line utilities
Less reboots
Windows Installer/Chocolatey
PowerShell
Windows Registry
PowerShell modules
More reboots
Wi nd owsL i nux
Linux and Windows
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
#!bin/bash
export PATH=$PATH:/usr/local/bin
# update packages
[ `which yum` ] && yum update -y && echo "YUM UPDATED"
[ `which apt-get` ] && apt-get -y update && apt-get -y upgrade && echo "APT-GET UPDATED"
# install python pip
which pip &> /dev/null
if [ $? -ne 0 ] ; then
echo "PIP NOT INSTALLED"
[ `which yum` ] && $(yum install -y epel-release; yum install -y python-pip) && echo "PIP INSTALLED"
[ `which apt-get` ] && apt-get -y update && apt-get -y install python-pip && echo "PIP INSTALLED"
fi
# upgrade pip
pip install --upgrade pip &> /dev/null
# install awscli
pip install awscli --ignore-installed six &> /dev/null
# install cloudformation bootstrap tools
easy_install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz
# call cfn-init
cfn-init -v --stack AWS::StackName --resource ResourceName --region AWS::Region
# call cfn-signal
cfn-signal -e $? --stack AWS::StackName --resource ResourceName --region AWS::Region
User data for Linux
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
<powershell>
# call cfn-init
cfn-init.exe -v -c ConfigSetName --stack AWS::StackName
--resource ResourceName --region AWS::Region
</powershell>
User data for Windows
updates
AWS CLI
CFN helpers
cfn-signal
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Initialize
New-AWSQuickStartWaitHandle
New-AWSQuickStartResourceSignal
Finalize
Write-AWSQuickStartException
Write-AWSQuickStartStatus
Create-
ADServiceAccount
Create-Share
Disable-AutoLogon
Disable-CredSSP
Download-File
Enable-AutoLogon
Enable-CredSSP
Install-Module
Install-WMF5
Invoke-
ADReplication
Join-Domain
Mount-DiskImage
New-
LocalAdministrator
Rename-Computer
Set-Dns
Unzip-Archive
P o w e r S h e l l s c r i p t sP o w e r S h e l l m o d u l e
AWS Quick Start PowerShell
https://github.com/aws-quickstart/quickstart-microsoft-utilities
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Windows PowerShell scripts
param(
[Parameter(Mandatory=$true)]
[string]$Parameter1
)
try {
$ErrorActionPreference = "Stop"
# DO STUFF
}
catch {
$_ | Write-AWSQuickStartException
}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Configuration management
Improve your scripts by ensuring that they can be rerun in place as needed
AWS Partner solutions or PowerShell DSC can help you
PowerShell DSCAnsible Chef Puppet
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Gives developers and systems administrators
an easy way to create and manage a collection
of related AWS resources
Understands dependencies and supports
rollbacks and versioning
Allows for reusable component design
strategies
Supports JSON and YAML formats
AWS CloudFormation
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Template anatomy
AWSTemplateFormatVersion
Description
Metadata
Parameters
Mappings
Conditions
Rules
Transform
Resources (the ONLY mandatory section)
Outputs
AWS Service Catalog
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
An AWS CloudFormation stack is a
single unit used to manage related
resources
You can create, update, and delete
resources by creating, updating, and
deleting stacks
Stacks are created from templates
Change sets allow you to edit your
stacks
Virtually every kind of AWS resource can
be managed via stacks
It’s all about the stacks
Stack
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
cfn-init
Enables a variety of scripting languages for bootstrapping
Credentials are specified in AWS::CloudFormation::Authentication
Configuration is specified in AWS::CloudFormation::Init
Executes as root (Linux)/Local System (Windows)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example authentication section
Metadata:
...
AWS::CloudFormation::Authentication:
S3AccessCreds:
type: S3
roleName:
Ref: SomeHostRole
buckets:
-Ref: QSS3BucketName
...
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example Linux init files
Metadata:
AWS::CloudFormation::Init:
config:
files:
/tmp/some_script.sh:
source:
Fn::Sub:
https://${QSS3BucketName}.s3.amazonaws.com/${QSS3KeyPrefix}scripts/script.sh
mode: '000550'
owner: root
group: root
authentication: S3AccessCreds
...
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example Linux init commands
Metadata:
AWS::CloudFormation::Init:
config:
files:
...
commands:
do_first_thing:
command:
Fn::Sub: /tmp/some_script.sh --parameter ${ParameterFromTemplate}
do_second_thing:
command: touch /tmp/some_file
...
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Organizing the assets
Define a strategy for organizing the assets within a repository
Helps keep files in expected locations
Make use of submodules for common code
Avoid storing software bits/binaries
.
├── ci/
├── functions/
├── scripts/
├── submodules/
├── templates/
├── LICENSE.txt
├── NOTICE.txt
└── README.md
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example config and param files
GitHub Jenkins Amazon S3
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Test all the things with taskcat
AWS CloudFormation launcher/tester toolkit
Compatible with many of the features from our CI systems
Beta work-in-progress for feature parity and more
Already OPEN SOURCE!
https://github.com/aws-quickstart/taskcat
Source: Hyperbole and a half
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Plan
and
Design
Build
and
Test
Optimize
and
Enhance
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Maintainable Flexible Reusable Standardized
Attributes of great templates
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Maintainability tips
Store in source control systems and version
Testing can be easily automated and on a recurring basis
Implement stack nesting to reuse common template patterns
Use intrinsic functions to resolve and combine properties (e.g., Ref, Join,
Sub, GetAtt, etc.)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Flexibility tips
Relative paths to resolve external template assets (scripts, configs, etc.)
Assets can be moved to a different Amazon S3 bucket
Driven by parameters, mappings, and conditions
Runs on multiple AWS regions/accounts (concurrently)
Supports AWS GovCloud (via conditionals)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Reusability tips
New and existing VPC deployments
Templates based on roles
Make use of common templates as submodules
Combine templates to build a larger and/or more complex deployment
Do not use named resources (avoids global resource collisions)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Standardization tips
Settle on <spaces> or <tabs> (and other coding conventions)
Beautification and readability of templates
Sensible and common defaults across other architectures
Predictable AMI mappings (helps in automated maintenance, too!)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Secure Reliable Performant Efficient
Scripting Orchestration Source
control
Maintainable Flexible Reusable Standardized
Plan
and
Design
Build
and
Test
Optimize
and
Enhance
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Quick Start catalog
https://aws.amazon.com/quickstart
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
We’re on GitHub!
https://github.com/aws-quickstart
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Further reading
AWS Quick Start:
Catalog https://aws.amazon.com/quickstart/
FAQ https://aws.amazon.com/quickstart/faq/
GitHub org https://github.com/aws-quickstart
Guides https://aws-quickstart.github.io
TaskCat https://github.com/aws-quickstart/taskcat
Contact QuickStart@amazon.com
Plan and design your architecture:
AWS Well-Architected framework: http://amzn.to/2hhUCVH
AWS Well-Architected Framework whitepaper: http://bit.ly/1KW6fK7
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Further reading
Build and test your deployment:
AWS CloudFormation best practices: http://amzn.to/2yfpSjR
AWS CloudFormation concepts: http://amzn.to/2xwjOEQ
AWS CloudFormation template anatomy: http://amzn.to/2y9g3o9
AWS Service Catalog template constraints: http://amzn.to/2yW7hXu
Optimize and enhance your deployment:
Maintainability: http://bit.ly/2gaPd8s
Flexibility: http://bit.ly/2yfhFME
Reusability: http://bit.ly/2y900qE
Coding conventions: http://bit.ly/2xwkLgo
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!

Mais conteúdo relacionado

Mais procurados

GPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWSGPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWSAmazon Web Services
 
GPSTEC312-SAP HANA HA on AWS Preventing Production Facepalms
GPSTEC312-SAP HANA HA on AWS Preventing Production FacepalmsGPSTEC312-SAP HANA HA on AWS Preventing Production Facepalms
GPSTEC312-SAP HANA HA on AWS Preventing Production FacepalmsAmazon Web Services
 
MSC204_Leverage AWS Marketplace to accelerate production ready workloads
MSC204_Leverage AWS Marketplace to accelerate production ready workloadsMSC204_Leverage AWS Marketplace to accelerate production ready workloads
MSC204_Leverage AWS Marketplace to accelerate production ready workloadsAmazon Web Services
 
ARC201_Scaling Up to Your First 10 Million Users
ARC201_Scaling Up to Your First 10 Million UsersARC201_Scaling Up to Your First 10 Million Users
ARC201_Scaling Up to Your First 10 Million UsersAmazon Web Services
 
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...Amazon Web Services
 
GPSTEC326-GPS Industry 4.0 AI and the Future of Manufacturing
GPSTEC326-GPS Industry 4.0 AI and the Future of ManufacturingGPSTEC326-GPS Industry 4.0 AI and the Future of Manufacturing
GPSTEC326-GPS Industry 4.0 AI and the Future of ManufacturingAmazon Web Services
 
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot Fleet
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot FleetCMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot Fleet
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot FleetAmazon Web Services
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐Amazon Web Services
 
GPSWKS408-GPS Migrate Your Databases with AWS Database Migration Service and ...
GPSWKS408-GPS Migrate Your Databases with AWS Database Migration Service and ...GPSWKS408-GPS Migrate Your Databases with AWS Database Migration Service and ...
GPSWKS408-GPS Migrate Your Databases with AWS Database Migration Service and ...Amazon Web Services
 
Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017
Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017
Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017Amazon Web Services
 
ARC207_Monitoring Performance of Enterprise Applications on AWS
ARC207_Monitoring Performance of Enterprise Applications on AWSARC207_Monitoring Performance of Enterprise Applications on AWS
ARC207_Monitoring Performance of Enterprise Applications on AWSAmazon Web Services
 
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfDEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfAmazon Web Services
 
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...Amazon Web Services
 
DAT322_The Nanoservices Architecture That Powers BBC Online
DAT322_The Nanoservices Architecture That Powers BBC OnlineDAT322_The Nanoservices Architecture That Powers BBC Online
DAT322_The Nanoservices Architecture That Powers BBC OnlineAmazon Web Services
 
DEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to MicroservicesDEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to MicroservicesAmazon Web Services
 
DEV337_Deploy a Data Lake with AWS CloudFormation
DEV337_Deploy a Data Lake with AWS CloudFormationDEV337_Deploy a Data Lake with AWS CloudFormation
DEV337_Deploy a Data Lake with AWS CloudFormationAmazon Web Services
 
How to Assess Your Organization's Readiness to Migrate at Scale to AWS - ENT2...
How to Assess Your Organization's Readiness to Migrate at Scale to AWS - ENT2...How to Assess Your Organization's Readiness to Migrate at Scale to AWS - ENT2...
How to Assess Your Organization's Readiness to Migrate at Scale to AWS - ENT2...Amazon Web Services
 

Mais procurados (20)

GPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWSGPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
 
GPSTEC312-SAP HANA HA on AWS Preventing Production Facepalms
GPSTEC312-SAP HANA HA on AWS Preventing Production FacepalmsGPSTEC312-SAP HANA HA on AWS Preventing Production Facepalms
GPSTEC312-SAP HANA HA on AWS Preventing Production Facepalms
 
MSC204_Leverage AWS Marketplace to accelerate production ready workloads
MSC204_Leverage AWS Marketplace to accelerate production ready workloadsMSC204_Leverage AWS Marketplace to accelerate production ready workloads
MSC204_Leverage AWS Marketplace to accelerate production ready workloads
 
ARC201_Scaling Up to Your First 10 Million Users
ARC201_Scaling Up to Your First 10 Million UsersARC201_Scaling Up to Your First 10 Million Users
ARC201_Scaling Up to Your First 10 Million Users
 
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...
 
GPSTEC326-GPS Industry 4.0 AI and the Future of Manufacturing
GPSTEC326-GPS Industry 4.0 AI and the Future of ManufacturingGPSTEC326-GPS Industry 4.0 AI and the Future of Manufacturing
GPSTEC326-GPS Industry 4.0 AI and the Future of Manufacturing
 
ARC213_Open Source at AWS
ARC213_Open Source at AWSARC213_Open Source at AWS
ARC213_Open Source at AWS
 
GPSTEC325-Enterprise Storage
GPSTEC325-Enterprise StorageGPSTEC325-Enterprise Storage
GPSTEC325-Enterprise Storage
 
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot Fleet
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot FleetCMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot Fleet
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot Fleet
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐
 
GPSWKS408-GPS Migrate Your Databases with AWS Database Migration Service and ...
GPSWKS408-GPS Migrate Your Databases with AWS Database Migration Service and ...GPSWKS408-GPS Migrate Your Databases with AWS Database Migration Service and ...
GPSWKS408-GPS Migrate Your Databases with AWS Database Migration Service and ...
 
Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017
Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017
Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017
 
ARC207_Monitoring Performance of Enterprise Applications on AWS
ARC207_Monitoring Performance of Enterprise Applications on AWSARC207_Monitoring Performance of Enterprise Applications on AWS
ARC207_Monitoring Performance of Enterprise Applications on AWS
 
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfDEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
 
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...
 
ARC205_Born in the Cloud
ARC205_Born in the CloudARC205_Born in the Cloud
ARC205_Born in the Cloud
 
DAT322_The Nanoservices Architecture That Powers BBC Online
DAT322_The Nanoservices Architecture That Powers BBC OnlineDAT322_The Nanoservices Architecture That Powers BBC Online
DAT322_The Nanoservices Architecture That Powers BBC Online
 
DEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to MicroservicesDEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to Microservices
 
DEV337_Deploy a Data Lake with AWS CloudFormation
DEV337_Deploy a Data Lake with AWS CloudFormationDEV337_Deploy a Data Lake with AWS CloudFormation
DEV337_Deploy a Data Lake with AWS CloudFormation
 
How to Assess Your Organization's Readiness to Migrate at Scale to AWS - ENT2...
How to Assess Your Organization's Readiness to Migrate at Scale to AWS - ENT2...How to Assess Your Organization's Readiness to Migrate at Scale to AWS - ENT2...
How to Assess Your Organization's Readiness to Migrate at Scale to AWS - ENT2...
 

Semelhante a GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable Reference Deployments with AWS CloudFormation

NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017Amazon Web Services
 
Stack Mastery: Create and Optimize Advanced AWS CloudFormation Templates - DE...
Stack Mastery: Create and Optimize Advanced AWS CloudFormation Templates - DE...Stack Mastery: Create and Optimize Advanced AWS CloudFormation Templates - DE...
Stack Mastery: Create and Optimize Advanced AWS CloudFormation Templates - DE...Amazon Web Services
 
Born in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupBorn in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupAmazon Web Services
 
CON203_Driving Innovation with Containers
CON203_Driving Innovation with ContainersCON203_Driving Innovation with Containers
CON203_Driving Innovation with ContainersAmazon Web Services
 
Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017Amazon Web Services
 
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta penggunaScale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta penggunaAmazon Web Services
 
Getting Started with AWS for Developers
Getting Started with AWS for DevelopersGetting Started with AWS for Developers
Getting Started with AWS for DevelopersAmazon Web Services
 
Moving to Amazon ECS – the Not-So-Obvious Benefits - CON356 - re:Invent 2017
Moving to Amazon ECS – the Not-So-Obvious Benefits - CON356 - re:Invent 2017Moving to Amazon ECS – the Not-So-Obvious Benefits - CON356 - re:Invent 2017
Moving to Amazon ECS – the Not-So-Obvious Benefits - CON356 - re:Invent 2017Amazon Web Services
 
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)Amazon Web Services
 
Deployment of SAP Solutions on AWS (Level 200)
Deployment of SAP Solutions on AWS (Level 200)Deployment of SAP Solutions on AWS (Level 200)
Deployment of SAP Solutions on AWS (Level 200)Amazon Web Services
 
Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...
Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...
Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...Amazon Web Services
 
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...Amazon Web Services
 
Deployment of SAP Solutions on AWS (Level 200)
Deployment of SAP Solutions on AWS (Level 200)Deployment of SAP Solutions on AWS (Level 200)
Deployment of SAP Solutions on AWS (Level 200)Amazon Web Services
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Amazon Web Services
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Amazon Web Services
 
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...Amazon Web Services
 

Semelhante a GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable Reference Deployments with AWS CloudFormation (20)

NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
 
Stack Mastery: Create and Optimize Advanced AWS CloudFormation Templates - DE...
Stack Mastery: Create and Optimize Advanced AWS CloudFormation Templates - DE...Stack Mastery: Create and Optimize Advanced AWS CloudFormation Templates - DE...
Stack Mastery: Create and Optimize Advanced AWS CloudFormation Templates - DE...
 
Born in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupBorn in the Cloud, Built like a Startup
Born in the Cloud, Built like a Startup
 
CON203_Driving Innovation with Containers
CON203_Driving Innovation with ContainersCON203_Driving Innovation with Containers
CON203_Driving Innovation with Containers
 
Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017
 
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta penggunaScale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
 
Getting Started with AWS for Developers
Getting Started with AWS for DevelopersGetting Started with AWS for Developers
Getting Started with AWS for Developers
 
Moving to Amazon ECS – the Not-So-Obvious Benefits - CON356 - re:Invent 2017
Moving to Amazon ECS – the Not-So-Obvious Benefits - CON356 - re:Invent 2017Moving to Amazon ECS – the Not-So-Obvious Benefits - CON356 - re:Invent 2017
Moving to Amazon ECS – the Not-So-Obvious Benefits - CON356 - re:Invent 2017
 
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)
 
Deployment of SAP Solutions on AWS (Level 200)
Deployment of SAP Solutions on AWS (Level 200)Deployment of SAP Solutions on AWS (Level 200)
Deployment of SAP Solutions on AWS (Level 200)
 
Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...
Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...
Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...
 
Introducing Amazon Fargate
Introducing Amazon FargateIntroducing Amazon Fargate
Introducing Amazon Fargate
 
Cost Optimisation on AWS
Cost Optimisation on AWSCost Optimisation on AWS
Cost Optimisation on AWS
 
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...
DEV325_Application Deployment Techniques for Amazon EC2 Workloads with AWS Co...
 
Containers on AWS
Containers on AWSContainers on AWS
Containers on AWS
 
Cost Optimisation on AWS
Cost Optimisation on AWSCost Optimisation on AWS
Cost Optimisation on AWS
 
Deployment of SAP Solutions on AWS (Level 200)
Deployment of SAP Solutions on AWS (Level 200)Deployment of SAP Solutions on AWS (Level 200)
Deployment of SAP Solutions on AWS (Level 200)
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
 
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...
Technological Accelerants for Organizational Transformation - DVC303 - re:Inv...
 

Mais de 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
 

Mais de 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
 

GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable Reference Deployments with AWS CloudFormation

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Build Once, Deploy Many: A r c h i t e c t i n g a n d B u i l d i n g A u t o m a t e d , R e u s a b l e R e f e r e n c e D e p l o y m e n t s w i t h A W S C l o u d F o r m a t i o n G P S T E C 3 1 9 S a n t i a g o C a r d e n a s P a r t n e r S o l u t i o n s A r c h i t e c t A W S Q u i c k S t a r t N o v e m b e r 2 8 , 2 0 1 7 AWS re:INVENT
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Work smarter, not harder copyright 2006 john klossner www.jklossner.com
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. A day in the life of IT Discover TryDeploy
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Quick Starts Automated reference deployments on AWS Help streamline installation and configuration AWS Partner Network team Primarily technical program Focus on enabling customers “Using AWS SAP HANA Quick Start, we only needed to push a few buttons to get a functioning SAP HANA solution.” –Philip Miller, IT Director
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Wide spectrum of Quick Starts
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • 1 stepSign up, sign in • 2 stepsChoose region and key pair • 4 stepsCreate VPC • 4 stepsCreate Internet gateway • 24 stepsCreate 12 subnets • 24 stepsCreate 4 NACLs • 16 stepsCreate 4 NAT gateways • 27 stepsCreate 9 route tables • 2 stepsCreate routes • Many more stepsAdd more stacks Sign up, sign in Choose region and key pair Launch Quick Start Manual deployment VPC Quick Start Reducing complexity
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Plan and Design Build and Test Optimize and Enhance
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Plan and Design Build and Test Optimize and Enhance
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. The value of planning Modern Data Warehouse on AWS New use case-based Quick Start Defined the scope and organization Produced architectural diagrams Designed and developed reference deployment Provided product expertise and sample data set
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Secure Reliable Performant Efficient Attributes of great architectures
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Security tips Lock down CIDR blocks for external admin access Implement security groups with principle of least privilege and role-based access No default passwords (and provides a way to set one) Use public and private subnets Avoid outputting secrets in logs, and scrub as needed Implement ways of auditing access and usage
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Reliability tips Span across subnets in multiple Availability Zones Consider multiple regions for disaster recovery Regularly create snapshots of data Implement health checks to remove/replace problematic nodes Scale up to handle additional load
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Performance tips Deliver static content from edge network locations Implement caching where it makes sense Avoid storing state in compute or app-level instances Utilize high performance features of load balancers Run on instance types with appropriate compute/memory/storage ratios Take advantage of high performance database services like Amazon Aurora and Amazon DynamoDB
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Efficiency tips Scale down based on load Containerized solutions for higher compute density Separate constant load as opposed to bursty load Implement pay-per-execution serverless components Use services with lower operational burden like RDS, EFS, Directory Service
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Security Reliability Performance Efficiency Cost Optimization AWS Well-Architected framework Operational Excellence
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Plan and Design Build and Test Optimize and Enhance
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scripting Orchestration Source control Recurring themes
  • 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Yum/Apt/Zypper Shell/Python File based configurations Command line utilities Less reboots Windows Installer/Chocolatey PowerShell Windows Registry PowerShell modules More reboots Wi nd owsL i nux Linux and Windows
  • 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. #!bin/bash export PATH=$PATH:/usr/local/bin # update packages [ `which yum` ] && yum update -y && echo "YUM UPDATED" [ `which apt-get` ] && apt-get -y update && apt-get -y upgrade && echo "APT-GET UPDATED" # install python pip which pip &> /dev/null if [ $? -ne 0 ] ; then echo "PIP NOT INSTALLED" [ `which yum` ] && $(yum install -y epel-release; yum install -y python-pip) && echo "PIP INSTALLED" [ `which apt-get` ] && apt-get -y update && apt-get -y install python-pip && echo "PIP INSTALLED" fi # upgrade pip pip install --upgrade pip &> /dev/null # install awscli pip install awscli --ignore-installed six &> /dev/null # install cloudformation bootstrap tools easy_install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz # call cfn-init cfn-init -v --stack AWS::StackName --resource ResourceName --region AWS::Region # call cfn-signal cfn-signal -e $? --stack AWS::StackName --resource ResourceName --region AWS::Region User data for Linux
  • 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. <powershell> # call cfn-init cfn-init.exe -v -c ConfigSetName --stack AWS::StackName --resource ResourceName --region AWS::Region </powershell> User data for Windows updates AWS CLI CFN helpers cfn-signal
  • 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Initialize New-AWSQuickStartWaitHandle New-AWSQuickStartResourceSignal Finalize Write-AWSQuickStartException Write-AWSQuickStartStatus Create- ADServiceAccount Create-Share Disable-AutoLogon Disable-CredSSP Download-File Enable-AutoLogon Enable-CredSSP Install-Module Install-WMF5 Invoke- ADReplication Join-Domain Mount-DiskImage New- LocalAdministrator Rename-Computer Set-Dns Unzip-Archive P o w e r S h e l l s c r i p t sP o w e r S h e l l m o d u l e AWS Quick Start PowerShell https://github.com/aws-quickstart/quickstart-microsoft-utilities
  • 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Windows PowerShell scripts param( [Parameter(Mandatory=$true)] [string]$Parameter1 ) try { $ErrorActionPreference = "Stop" # DO STUFF } catch { $_ | Write-AWSQuickStartException }
  • 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Configuration management Improve your scripts by ensuring that they can be rerun in place as needed AWS Partner solutions or PowerShell DSC can help you PowerShell DSCAnsible Chef Puppet
  • 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Gives developers and systems administrators an easy way to create and manage a collection of related AWS resources Understands dependencies and supports rollbacks and versioning Allows for reusable component design strategies Supports JSON and YAML formats AWS CloudFormation
  • 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Template anatomy AWSTemplateFormatVersion Description Metadata Parameters Mappings Conditions Rules Transform Resources (the ONLY mandatory section) Outputs AWS Service Catalog
  • 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. An AWS CloudFormation stack is a single unit used to manage related resources You can create, update, and delete resources by creating, updating, and deleting stacks Stacks are created from templates Change sets allow you to edit your stacks Virtually every kind of AWS resource can be managed via stacks It’s all about the stacks Stack
  • 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. cfn-init Enables a variety of scripting languages for bootstrapping Credentials are specified in AWS::CloudFormation::Authentication Configuration is specified in AWS::CloudFormation::Init Executes as root (Linux)/Local System (Windows)
  • 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Example authentication section Metadata: ... AWS::CloudFormation::Authentication: S3AccessCreds: type: S3 roleName: Ref: SomeHostRole buckets: -Ref: QSS3BucketName ...
  • 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Example Linux init files Metadata: AWS::CloudFormation::Init: config: files: /tmp/some_script.sh: source: Fn::Sub: https://${QSS3BucketName}.s3.amazonaws.com/${QSS3KeyPrefix}scripts/script.sh mode: '000550' owner: root group: root authentication: S3AccessCreds ...
  • 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Example Linux init commands Metadata: AWS::CloudFormation::Init: config: files: ... commands: do_first_thing: command: Fn::Sub: /tmp/some_script.sh --parameter ${ParameterFromTemplate} do_second_thing: command: touch /tmp/some_file ...
  • 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Organizing the assets Define a strategy for organizing the assets within a repository Helps keep files in expected locations Make use of submodules for common code Avoid storing software bits/binaries . ├── ci/ ├── functions/ ├── scripts/ ├── submodules/ ├── templates/ ├── LICENSE.txt ├── NOTICE.txt └── README.md
  • 32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Example config and param files GitHub Jenkins Amazon S3
  • 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Test all the things with taskcat AWS CloudFormation launcher/tester toolkit Compatible with many of the features from our CI systems Beta work-in-progress for feature parity and more Already OPEN SOURCE! https://github.com/aws-quickstart/taskcat Source: Hyperbole and a half
  • 34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Plan and Design Build and Test Optimize and Enhance
  • 35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Maintainable Flexible Reusable Standardized Attributes of great templates
  • 36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Maintainability tips Store in source control systems and version Testing can be easily automated and on a recurring basis Implement stack nesting to reuse common template patterns Use intrinsic functions to resolve and combine properties (e.g., Ref, Join, Sub, GetAtt, etc.)
  • 37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Flexibility tips Relative paths to resolve external template assets (scripts, configs, etc.) Assets can be moved to a different Amazon S3 bucket Driven by parameters, mappings, and conditions Runs on multiple AWS regions/accounts (concurrently) Supports AWS GovCloud (via conditionals)
  • 38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Reusability tips New and existing VPC deployments Templates based on roles Make use of common templates as submodules Combine templates to build a larger and/or more complex deployment Do not use named resources (avoids global resource collisions)
  • 39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Standardization tips Settle on <spaces> or <tabs> (and other coding conventions) Beautification and readability of templates Sensible and common defaults across other architectures Predictable AMI mappings (helps in automated maintenance, too!)
  • 40. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Secure Reliable Performant Efficient Scripting Orchestration Source control Maintainable Flexible Reusable Standardized Plan and Design Build and Test Optimize and Enhance
  • 41. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Quick Start catalog https://aws.amazon.com/quickstart
  • 42. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. We’re on GitHub! https://github.com/aws-quickstart
  • 43. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Further reading AWS Quick Start: Catalog https://aws.amazon.com/quickstart/ FAQ https://aws.amazon.com/quickstart/faq/ GitHub org https://github.com/aws-quickstart Guides https://aws-quickstart.github.io TaskCat https://github.com/aws-quickstart/taskcat Contact QuickStart@amazon.com Plan and design your architecture: AWS Well-Architected framework: http://amzn.to/2hhUCVH AWS Well-Architected Framework whitepaper: http://bit.ly/1KW6fK7
  • 44. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Further reading Build and test your deployment: AWS CloudFormation best practices: http://amzn.to/2yfpSjR AWS CloudFormation concepts: http://amzn.to/2xwjOEQ AWS CloudFormation template anatomy: http://amzn.to/2y9g3o9 AWS Service Catalog template constraints: http://amzn.to/2yW7hXu Optimize and enhance your deployment: Maintainability: http://bit.ly/2gaPd8s Flexibility: http://bit.ly/2yfhFME Reusability: http://bit.ly/2y900qE Coding conventions: http://bit.ly/2xwkLgo
  • 45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you!