SlideShare una empresa de Scribd logo
1 de 69
Host a hit site in the cloud
without downtime or going
broke
David Veksler
Nuts and bolts of running a popular site in the
AWS cloud
• I will share how we develop and host a popular publishing platform in
the cloud with a limited budget and technology team.
• We'll cover architecture, including a variety of services at Amazon
Web Services such as elastic load balancing, S3, Elastic Beanstalk, and
RDS in the context of a real site.
• We'll cover how we control costs with Spot and burstable instances
and scale up with distributed caching.
• Finally we'll discuss continuous deployment strategies for Windows
and Linux-based cloud applications in the context of a distributed
team using an agile process.
Contents
1. Cloud Architecture
2. Key AWS Services
3. Keeping costs under control
4. Configuration management
5. Key tools for distributed agile development
Architecture Overview
Northern Virginia AZ
FEE-DB security groupSpot Instance Fleet
fee-media
(US-Standard Region)
Media Storage
EC2
VM
C4.2xlarge
Cloudflare
DNS
CDN,
Firewall
Services
LIVE DB:
feedb2
Amazon Web Services Cloud
FEE-Dev.org
FEE.org Admin Node
TeamCity CI
Fee-dev.org:8080
EC2
VM
C4.2xlarge
Admin.fee.org
Fee-dev.org
Web1.fee.org
Admin.fee.org contains:
SES
Internal
Email
Other Services:
• Domain: Google
Domains
• Performance: New
Relic Pro
• Analytics: Parse.ly,
Clicky, Google
Analytics
• Uptime: Pingdom
• Email: MailChimp
• Code: BitBucket
users
Web2.fee.org
EC2
VM
C4.2xlarge
fee-misc
(US-Standard Region)
Backups
admin.fee.org
hosts both live
and dev, acts as
staging for
deployments
cache cluster:
fee-cache-001
fee-cache-002
Redis Cache
Architecture
Diagram
DEV DB:
fee-dev2
Elastic Load
Balancing
lb.fee.org
Analytics &
Content
Recommendations
Marketing
Email
web#.FEE.org
instances use spot
pricing to bid for
the best price
DNS, Firewall and
CDN
RDS
RDS
High-level objectives (by priority)
1. Front end uptime should be 99.8%
2. Back Office (admin) uptime should be 95%
3. Keep personal information (payments, admin access) secure
4. Stay up during traffic surges up to 6X weekly peak
5. Keep budget under $1,600/month
6. Ongoing development should not impact uptime.
Design strategy
1. All components should be redundant and self-healing
2. Pay for normal load while supporting surges
3. Outsource infrastructure: let AWS cloud be responsible for as much
infrastructure as feasible
4. Automate all backup processes
5. Semi-automated disaster recovery: site should recover from most
outages automatically, when cost of doing so is reasonable
6. Change management integrated into architecture via imaging and
cache keys
Architecture Summary
• Front-end is load balanced, scalable, and self-healing
• Backend is isolated from front-end
• Automatic snapshots for servers, transaction logging for DB
• Rely on AWS services for all infrastructure services
• Combine functionality within servers to save costs
• Massively over-allocate capacity using market-based pricing
• Development process integrated with production architecture
Northern Virginia AZ
FEE-DB security groupSpot Instance Fleet
fee-media
(US-Standard Region)
Media Storage
EC2
VM
C4.2xlarge
Cloudflare
DNS
CDN,
Firewall
Services
LIVE DB:
feedb2
EC2
VM
C4.2xlarge
Admin.fee.org
Fee-dev.org
Web1.fee.org
SES
Internal
Email
users
Web2.fee.org
EC2
VM
C4.2xlarge
fee-misc
(US-Standard Region)
Backups
cache cluster:
fee-cache-001
fee-cache-002
Redis Cache
DEV DB: fee-
dev2
Elastic Load
Balancing
lb.fee.org
RDS
RDS
Amazon Cloud Services Used
• Load balancing: Elastic Load Balancer
• Virtual machines: EC2 Spot Instances
• Databases: RDS (SQL Server)
• Media Storage & Backups: S3
• Distributed Cache: ElastiCache (Redis)
• CDN: CloudFront CloudFlare
• Email: Amazon SES
Other Cloud Services
• Analytics: Parse.ly, Clicky, Google Analytics
• Performance: New Relic Pro
• Email: MailChimp (Campaigns & Automations)
Selected Services in Detail
Why CloudFlare is awesome
• Flat-rate CDN service (supports CDN daisy-chaining)
• Free, powerful SSL
• Active, crowd-sourced firewall
• Powerful DNS (CNAME flatting, much more)
• HTML and Image minification
• Much more!
• Saves FEE.org $ thousands per year in bandwidth costs
• Starts at $20/month
30 days:
Elastic Load Balancer
• Point DNS at CNAME of load balancer
• Point destination to specific VMs or use auto-scaling rules
• Set destination by path pattern with Application Load Balancer
• Use TCP, HTTP, SSL for health check
• We use a custom health check endpoint which verifies application
uptime & DB connectivity
RDS: Relational Database Service
• FEE.org uses SQL Server Web
• Other sites use AuroraDB, which is 10X faster than MySQL
• (With proper tuning, in specific scenarios)
• Use snapshots to create dev instances of DB
• Schedule configuration changed for off-hours
• Be aware that RDS SQL Server restricts most admin actions. There are
special sprocs for some actions such as renaming DB or bringing DB online
(but not taking offline!)
• Backup restore not allowed: use SQL Database Migration Wizard to restore
DB
• Use burstable SQL Server instances, especially for dev DB
S3: Media storage + backup
• FEE.org uses S3 as a media (Image/PDF/EPUB/MP4/MP3) store
• Only originals are stored in S3, thumbnails are stored on server
• Amazon Web Services S3 IFileSystem provider for Umbraco + a
custom caching layer
• XSLT transforms to specify production/dev buckets
Spot Instances
• Instances only run when market price below the bid price
• In practical terms, Spot = 80% saving on hourly instances
• Supports auto scaling. Use it!
• Set bid price equal to hourly instance price and get 100% availability
(so far)
• Specify a range of qualified instance types (including previous
generations) to maximize chance of availability.
• FEE.org runs master server as xlarge hourly instance and read-only
nodes as 2xlarge Spot instances. This guarantees at least 1 cheap(er)
instance even if prices spike or instances refresh at the same time.
Spot Pricing History
Elastic Load Balancer
Auto Scaling
Example: Netflix
• http://techblog.netflix.com/2012/01/auto-scaling-in-amazon-cloud.html
Red= # of servers
Green = CPU
utilization
Auto Scaling
Build cloud
systems that scale
automatically to
meet current
demand
When to auto-scale?
• Instances that don’t take very long to spin up
• Individual instances don’t use too much resources
• Version release process is automated (such as with Elastic Beanstalk)
• Don’t release very often, or cost or snapshot management is minimal
• Large difference between minimum and peak traffic
• Unpredictable traffic trends
Alternatives to auto-scaling
• Burstable instances
• Spot Instances
• Schedule on/off instance times with AutomatiCloud
Why doesn’t FEE.org auto-scale?
• Minimum instance count for high availability is 3
• Peak traffic (> 600 concurrent users) can be handled by 2 instances
• Each instance requires 16GB ram and 8 CPUs for optimal performance
• Release process not fully automated & no full-time developers (do
not use Elastic Beanstalk & have to make manual snapshots post-
release)
• Can spin up new instances within minutes with Spot + New Relic
Alerts
• Will probably consider auto-scaling when we have more process
maturity (fully automated release process)
(More)
More: http://www.slideshare.net/DavidVeksler/auto-scaling-websites-
Elastic Beanstalk
Elastic Beanstalk
• Upload DLLs to AWS git reposity, AWS does the rest
• AWS will deploy the code, load balancing, auto-scaling, health
monitoring, etc.
• Environment configuration with web.config XSLT transforms and ACL
permissions (wpp.targets) file.
• FREE service – only pay for resources used
• If using .Net, works with most 100% managed code projects
• GUI integrated with Visual Studio
Cloud hosting on a budget
Thinking about IAAS/SAAS Pricing Strategy
• Cloud services almost always cost much more per compute resource
than colocations or dedicated hardware
• Cost savings come in matching demand to infrastructure and
outsourcing management services
• Amazon & Azure are some of the most costly cloud services per
resources, but recommended for most scenarios because of
productivity benefits from breadth and depth of managed services.
Cloud Services Pricing Summary
• Each cloud service provider has a unique bundle of services and pricing
model. Different providers have unique price advantages for different
products. Provider selection should be based on a typical application mix
for our business.
• Azure may have a price advantage over Amazon when using cloud-
optimized architecture based on Microsoft products.
• Softlayer, Digital Ocean, and Google Compute all have better prices than
bost for various scenarios, especially Windows VM, but offer fewer
services.
• Cost is just one of many criteria for choosing a provider! No provider has a
decisive advantage for all scenarios.
Pricing Recommendations
1. Use the pricing calculator offered by each provider to estimate total
application cost for specific applications. Keep in mind cloud-
optimized architectures may have a much lower cost. (For example,
compute functions instantiated on-demand, auto-scaling, etc.)
2. Do not make pricing the primary consideration in provider selection
unless the cost difference is critical to businesses requirements. In
general, major service and quality differences between providers
are more important than pricing considerations.
3. Developing deep expertise and service integration with a cloud
provider is usually more important than cost differences for
individual projects.
Saving Money with AWS
• Reserved Instances
• Spot Instances
• Burstable Instances
• Scheduled Instances (using AWS or third party tool)
• This can be used with any AWS VM service – EC2, RDS, ElastiCache,
etc!
AWS Instance type selection criteria
• Use the latest generation of instance types (x4/t2)
• Use burstable instances for applications with high daily variability
• Evaluate whether applications are CPU, memory, or IO intensive and
select the appropriate type – scale up your particular bottleneck
• For applications with consistent and predicable load, prefer larger
instances; for applications with unpredictable load, auto-scale
horizontally with more burstable instances
Buying a reserved instance
• Unsure about your needs?
Get a convertible
instance! Can move up or
across.
• You can sell them! (I
haven’t tried this)
• Best savings/risk is usually
with partial payment
option.
S3 Reduced Redundancy Store & Glacier
• “Only” duplicated across 2 facilities
• .01% storage failure rate (“400 times the durability of typical HDD”)
• About 25% cheaper
• Background service via event handle
to media upload completed method
• $412GB * $0.0314 per GB =
$155/year saved on storage alone
• Runs as AWS Marketplace service
($39/month) or desktop app
JPEGmini
Summary: FEE.org $ saving strategy:
• 2 reserved burstable RDS databases
• 1 reserved admin EC2 VM
• 2 Spot EC2 front-end server instances
• AutomatiCloud EC2 scheduling for off-hours (and backup automation)
• S3 Reduced redundancy store for non-critical backups and dev data
• CloudFlare CDN
• JPEGmini image optimization background service
Continuous Deployment
Strategies
FEE Development Process
1. Post job on UpWork.com
2. Hire freelancer
3. Developer commits work to git
4. Deploy to dev environment
5. Test work
6. Create pull request for release
7. Release build
8. Staged deployment to production servers
Development Process in Detail
UpWork.com
Orientation
• Google Doc with:
• Architectural overview
• FEE.org development process
• Instructions to setup localhost environment
• Review of tools used
• Relevant people involved & their contact info
• Address of FEE-Dev Skype group
• Code Quality Expectations
Development Environment Setup
1. Checkout git repository
2. “Just hit F5”
• NuGet for all dependencies
• XSLT for non-local environments
• Dev DB hosted in cloud
• Optional: Install Redis on localhost for better performance
Continuous Integration
http://fee-dev.org:8080/
Login as guest now!
Release Build
Staged, Staggered Deployment
• xcopy to each production server
• ELB takes server out of production within 30
seconds
• Stagger release by ~5 minutes to let each
application pool warm up
Environment Monitoring
Collaboration & Internal Messaging
• SlackBot
Project Management
Aside: LAMP deployment strategy (highly
available WordPress)
• Commit hooks on master branch in Bitbucket git repository
• Hooks call deploy.php script which runs a git pull in dev environment
• Release PHP code with git pull on production
• Image staging server (AMI), and deploy Spot fleet with AMI
• Use S3 Media storage provider, Redis cache – no persistent data on
Spot instances
• Easy Engine for easy nginx configuration, etckeeper to backup/sync
configuration file
The End
dveksler@fee.org
@AtlCodeCamp
httpS://AtlantaCodeCamp.com/2016
Platinum Sponsors
Gold Sponsors
SWAG Sponsors
Silver Sponsors
Surveys and Prizes
• Please complete the session and event surveys!
1 ticket per session survey
1 ticket for the event survey
1 ticket for completing the booth game
• Drawing for prizes begins at 5pm in Q202

Más contenido relacionado

La actualidad más candente

Introduction to Amazon Web Services (AWS)
Introduction to Amazon Web Services (AWS)Introduction to Amazon Web Services (AWS)
Introduction to Amazon Web Services (AWS)Jason "JP" Pomerleau
 
Cloud Architecture best practices
Cloud Architecture best practicesCloud Architecture best practices
Cloud Architecture best practicesOmid Vahdaty
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Tom Laszewski
 
Running High Availability Websites with Acquia and AWS
Running High Availability Websites with Acquia and AWSRunning High Availability Websites with Acquia and AWS
Running High Availability Websites with Acquia and AWSAcquia
 
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)Amazon Web Services
 
AWS Storage Tiering for Enterprise Workloads
AWS Storage Tiering for Enterprise WorkloadsAWS Storage Tiering for Enterprise Workloads
AWS Storage Tiering for Enterprise WorkloadsTom Laszewski
 
Introduction to AWS Database Services
Introduction to AWS Database ServicesIntroduction to AWS Database Services
Introduction to AWS Database ServicesAmazon Web Services
 
Scaling the Platform for Your Startup
Scaling the Platform for Your StartupScaling the Platform for Your Startup
Scaling the Platform for Your StartupAmazon Web Services
 
Build a Cloud Render-Ready Infrastructure
Build a Cloud Render-Ready InfrastructureBuild a Cloud Render-Ready Infrastructure
Build a Cloud Render-Ready InfrastructureAvere Systems
 
(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable
(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable
(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and ScalableAmazon Web Services
 
Hosting Drupal on Amazon EC2
Hosting Drupal on Amazon EC2Hosting Drupal on Amazon EC2
Hosting Drupal on Amazon EC2Kornel Lugosi
 
Get the Most Bang for Your Buck with #EC2 #WINNING
Get the Most Bang for Your Buck with #EC2 #WINNINGGet the Most Bang for Your Buck with #EC2 #WINNING
Get the Most Bang for Your Buck with #EC2 #WINNINGAmazon Web Services
 
AWS Webcast - How to Migrate On-premise NAS Storage to Cloud NAS Storage
AWS Webcast - How to Migrate On-premise NAS Storage to Cloud NAS StorageAWS Webcast - How to Migrate On-premise NAS Storage to Cloud NAS Storage
AWS Webcast - How to Migrate On-premise NAS Storage to Cloud NAS StorageAmazon Web Services
 
Amazon Ec2 Application Design
Amazon Ec2 Application DesignAmazon Ec2 Application Design
Amazon Ec2 Application Designguestd0b61e
 
AWS Webcast - Migrating to RDS Oracle
AWS Webcast - Migrating to RDS OracleAWS Webcast - Migrating to RDS Oracle
AWS Webcast - Migrating to RDS OracleAmazon Web Services
 
AWS Webcast - Explore the AWS Cloud for Government
AWS Webcast - Explore the AWS Cloud for GovernmentAWS Webcast - Explore the AWS Cloud for Government
AWS Webcast - Explore the AWS Cloud for GovernmentAmazon Web Services
 

La actualidad más candente (20)

Introduction to Amazon Web Services (AWS)
Introduction to Amazon Web Services (AWS)Introduction to Amazon Web Services (AWS)
Introduction to Amazon Web Services (AWS)
 
Cloud Architecture best practices
Cloud Architecture best practicesCloud Architecture best practices
Cloud Architecture best practices
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS
 
Running High Availability Websites with Acquia and AWS
Running High Availability Websites with Acquia and AWSRunning High Availability Websites with Acquia and AWS
Running High Availability Websites with Acquia and AWS
 
AWS EC2
AWS EC2AWS EC2
AWS EC2
 
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
 
AWS Storage Tiering for Enterprise Workloads
AWS Storage Tiering for Enterprise WorkloadsAWS Storage Tiering for Enterprise Workloads
AWS Storage Tiering for Enterprise Workloads
 
Introduction to AWS Database Services
Introduction to AWS Database ServicesIntroduction to AWS Database Services
Introduction to AWS Database Services
 
Scaling the Platform for Your Startup
Scaling the Platform for Your StartupScaling the Platform for Your Startup
Scaling the Platform for Your Startup
 
Aws best practices
Aws best practicesAws best practices
Aws best practices
 
Disaster Recovery Synapse
Disaster Recovery SynapseDisaster Recovery Synapse
Disaster Recovery Synapse
 
Build a Cloud Render-Ready Infrastructure
Build a Cloud Render-Ready InfrastructureBuild a Cloud Render-Ready Infrastructure
Build a Cloud Render-Ready Infrastructure
 
(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable
(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable
(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable
 
Hosting Drupal on Amazon EC2
Hosting Drupal on Amazon EC2Hosting Drupal on Amazon EC2
Hosting Drupal on Amazon EC2
 
Azure DBA with IaaS
Azure DBA with IaaSAzure DBA with IaaS
Azure DBA with IaaS
 
Get the Most Bang for Your Buck with #EC2 #WINNING
Get the Most Bang for Your Buck with #EC2 #WINNINGGet the Most Bang for Your Buck with #EC2 #WINNING
Get the Most Bang for Your Buck with #EC2 #WINNING
 
AWS Webcast - How to Migrate On-premise NAS Storage to Cloud NAS Storage
AWS Webcast - How to Migrate On-premise NAS Storage to Cloud NAS StorageAWS Webcast - How to Migrate On-premise NAS Storage to Cloud NAS Storage
AWS Webcast - How to Migrate On-premise NAS Storage to Cloud NAS Storage
 
Amazon Ec2 Application Design
Amazon Ec2 Application DesignAmazon Ec2 Application Design
Amazon Ec2 Application Design
 
AWS Webcast - Migrating to RDS Oracle
AWS Webcast - Migrating to RDS OracleAWS Webcast - Migrating to RDS Oracle
AWS Webcast - Migrating to RDS Oracle
 
AWS Webcast - Explore the AWS Cloud for Government
AWS Webcast - Explore the AWS Cloud for GovernmentAWS Webcast - Explore the AWS Cloud for Government
AWS Webcast - Explore the AWS Cloud for Government
 

Destacado

Microsoft's New Platform
Microsoft's New PlatformMicrosoft's New Platform
Microsoft's New PlatformJohn Rymer
 
Auto scaling websites in the cloud
Auto scaling websites in the cloudAuto scaling websites in the cloud
Auto scaling websites in the cloudDavid Veksler
 
Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)Adrian Cockcroft
 
Enterprise Cloud Architecture Best Practices
Enterprise Cloud Architecture Best PracticesEnterprise Cloud Architecture Best Practices
Enterprise Cloud Architecture Best PracticesDavid Veksler
 
(ARC401) Cloud First: New Architecture for New Infrastructure
(ARC401) Cloud First: New Architecture for New Infrastructure(ARC401) Cloud First: New Architecture for New Infrastructure
(ARC401) Cloud First: New Architecture for New InfrastructureAmazon Web Services
 
Cloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesCloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesSascha Möllering
 
Cloud Architecture Tutorial - Running in the Cloud (3of3)
Cloud Architecture Tutorial - Running in the Cloud (3of3)Cloud Architecture Tutorial - Running in the Cloud (3of3)
Cloud Architecture Tutorial - Running in the Cloud (3of3)Adrian Cockcroft
 
Everything You Need to Know About Sharding
Everything You Need to Know About ShardingEverything You Need to Know About Sharding
Everything You Need to Know About ShardingMongoDB
 
Cloud Architecture Tutorial - Why and What (1of 3)
Cloud Architecture Tutorial - Why and What (1of 3) Cloud Architecture Tutorial - Why and What (1of 3)
Cloud Architecture Tutorial - Why and What (1of 3) Adrian Cockcroft
 
Best Practices for Architecting in the Cloud - Jeff Barr
Best Practices for Architecting in the Cloud - Jeff BarrBest Practices for Architecting in the Cloud - Jeff Barr
Best Practices for Architecting in the Cloud - Jeff BarrAmazon Web Services
 

Destacado (10)

Microsoft's New Platform
Microsoft's New PlatformMicrosoft's New Platform
Microsoft's New Platform
 
Auto scaling websites in the cloud
Auto scaling websites in the cloudAuto scaling websites in the cloud
Auto scaling websites in the cloud
 
Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)Cloud Architecture Tutorial - Platform Component Architecture (2of3)
Cloud Architecture Tutorial - Platform Component Architecture (2of3)
 
Enterprise Cloud Architecture Best Practices
Enterprise Cloud Architecture Best PracticesEnterprise Cloud Architecture Best Practices
Enterprise Cloud Architecture Best Practices
 
(ARC401) Cloud First: New Architecture for New Infrastructure
(ARC401) Cloud First: New Architecture for New Infrastructure(ARC401) Cloud First: New Architecture for New Infrastructure
(ARC401) Cloud First: New Architecture for New Infrastructure
 
Cloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesCloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best Practices
 
Cloud Architecture Tutorial - Running in the Cloud (3of3)
Cloud Architecture Tutorial - Running in the Cloud (3of3)Cloud Architecture Tutorial - Running in the Cloud (3of3)
Cloud Architecture Tutorial - Running in the Cloud (3of3)
 
Everything You Need to Know About Sharding
Everything You Need to Know About ShardingEverything You Need to Know About Sharding
Everything You Need to Know About Sharding
 
Cloud Architecture Tutorial - Why and What (1of 3)
Cloud Architecture Tutorial - Why and What (1of 3) Cloud Architecture Tutorial - Why and What (1of 3)
Cloud Architecture Tutorial - Why and What (1of 3)
 
Best Practices for Architecting in the Cloud - Jeff Barr
Best Practices for Architecting in the Cloud - Jeff BarrBest Practices for Architecting in the Cloud - Jeff Barr
Best Practices for Architecting in the Cloud - Jeff Barr
 

Similar a Nuts and bolts of running a popular site in the aws cloud

Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015Amazon Web Services
 
Building a Just-in-Time Application Stack for Analysts
Building a Just-in-Time Application Stack for AnalystsBuilding a Just-in-Time Application Stack for Analysts
Building a Just-in-Time Application Stack for AnalystsAvere Systems
 
Managed Cloud Services for Siebel CRM on Amazon AWS
Managed Cloud Services for Siebel CRM on Amazon AWSManaged Cloud Services for Siebel CRM on Amazon AWS
Managed Cloud Services for Siebel CRM on Amazon AWSMilind Waikul
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWSMigrating enterprise workloads to AWS
Migrating enterprise workloads to AWSTom Laszewski
 
Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014Tom Laszewski
 
Satrtup Bootcamp - Scale on AWS
Satrtup Bootcamp - Scale on AWSSatrtup Bootcamp - Scale on AWS
Satrtup Bootcamp - Scale on AWSIdan Tohami
 
(CMP404) Cloud Rendering at Walt Disney Animation Studios
(CMP404) Cloud Rendering at Walt Disney Animation Studios(CMP404) Cloud Rendering at Walt Disney Animation Studios
(CMP404) Cloud Rendering at Walt Disney Animation StudiosAmazon Web Services
 
AWS Webcast - Webinar Series for State and Local Government #2: Discover the ...
AWS Webcast - Webinar Series for State and Local Government #2: Discover the ...AWS Webcast - Webinar Series for State and Local Government #2: Discover the ...
AWS Webcast - Webinar Series for State and Local Government #2: Discover the ...Amazon Web Services
 
Introduction to amazon web services for developers
Introduction to amazon web services for developersIntroduction to amazon web services for developers
Introduction to amazon web services for developersCiklum Ukraine
 
AWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the CloudAWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the CloudAmazon Web Services
 
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...Amazon Web Services
 
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Andrew Miller
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...Amazon Web Services
 
Clash of Technologies Google Cloud vs Microsoft Azure
Clash of Technologies Google Cloud vs Microsoft AzureClash of Technologies Google Cloud vs Microsoft Azure
Clash of Technologies Google Cloud vs Microsoft AzureMihail Mateev
 
AWS Webcast - AWS Webinar Series for Education #2 - Getting Started with AWS
AWS Webcast - AWS Webinar Series for Education #2 - Getting Started with AWSAWS Webcast - AWS Webinar Series for Education #2 - Getting Started with AWS
AWS Webcast - AWS Webinar Series for Education #2 - Getting Started with AWSAmazon Web Services
 
Amazon Web Services - Relational Database Service Meetup
Amazon Web Services - Relational Database Service MeetupAmazon Web Services - Relational Database Service Meetup
Amazon Web Services - Relational Database Service Meetupcyrilkhairallah
 
AWS September Webinar Series - Visual Effects Rendering in the AWS Cloud with...
AWS September Webinar Series - Visual Effects Rendering in the AWS Cloud with...AWS September Webinar Series - Visual Effects Rendering in the AWS Cloud with...
AWS September Webinar Series - Visual Effects Rendering in the AWS Cloud with...Amazon Web Services
 
Taking SharePoint to the Cloud
Taking SharePoint to the CloudTaking SharePoint to the Cloud
Taking SharePoint to the CloudAaron Saikovski
 
AWS Webcast - Explore the AWS Cloud
AWS Webcast - Explore the AWS CloudAWS Webcast - Explore the AWS Cloud
AWS Webcast - Explore the AWS CloudAmazon Web Services
 

Similar a Nuts and bolts of running a popular site in the aws cloud (20)

Create cloud service on AWS
Create cloud service on AWSCreate cloud service on AWS
Create cloud service on AWS
 
Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015
 
Building a Just-in-Time Application Stack for Analysts
Building a Just-in-Time Application Stack for AnalystsBuilding a Just-in-Time Application Stack for Analysts
Building a Just-in-Time Application Stack for Analysts
 
Managed Cloud Services for Siebel CRM on Amazon AWS
Managed Cloud Services for Siebel CRM on Amazon AWSManaged Cloud Services for Siebel CRM on Amazon AWS
Managed Cloud Services for Siebel CRM on Amazon AWS
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWSMigrating enterprise workloads to AWS
Migrating enterprise workloads to AWS
 
Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014
 
Satrtup Bootcamp - Scale on AWS
Satrtup Bootcamp - Scale on AWSSatrtup Bootcamp - Scale on AWS
Satrtup Bootcamp - Scale on AWS
 
(CMP404) Cloud Rendering at Walt Disney Animation Studios
(CMP404) Cloud Rendering at Walt Disney Animation Studios(CMP404) Cloud Rendering at Walt Disney Animation Studios
(CMP404) Cloud Rendering at Walt Disney Animation Studios
 
AWS Webcast - Webinar Series for State and Local Government #2: Discover the ...
AWS Webcast - Webinar Series for State and Local Government #2: Discover the ...AWS Webcast - Webinar Series for State and Local Government #2: Discover the ...
AWS Webcast - Webinar Series for State and Local Government #2: Discover the ...
 
Introduction to amazon web services for developers
Introduction to amazon web services for developersIntroduction to amazon web services for developers
Introduction to amazon web services for developers
 
AWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the CloudAWS Webcast - Website Hosting in the Cloud
AWS Webcast - Website Hosting in the Cloud
 
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...
 
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
 
Clash of Technologies Google Cloud vs Microsoft Azure
Clash of Technologies Google Cloud vs Microsoft AzureClash of Technologies Google Cloud vs Microsoft Azure
Clash of Technologies Google Cloud vs Microsoft Azure
 
AWS Webcast - AWS Webinar Series for Education #2 - Getting Started with AWS
AWS Webcast - AWS Webinar Series for Education #2 - Getting Started with AWSAWS Webcast - AWS Webinar Series for Education #2 - Getting Started with AWS
AWS Webcast - AWS Webinar Series for Education #2 - Getting Started with AWS
 
Amazon Web Services - Relational Database Service Meetup
Amazon Web Services - Relational Database Service MeetupAmazon Web Services - Relational Database Service Meetup
Amazon Web Services - Relational Database Service Meetup
 
AWS September Webinar Series - Visual Effects Rendering in the AWS Cloud with...
AWS September Webinar Series - Visual Effects Rendering in the AWS Cloud with...AWS September Webinar Series - Visual Effects Rendering in the AWS Cloud with...
AWS September Webinar Series - Visual Effects Rendering in the AWS Cloud with...
 
Taking SharePoint to the Cloud
Taking SharePoint to the CloudTaking SharePoint to the Cloud
Taking SharePoint to the Cloud
 
AWS Webcast - Explore the AWS Cloud
AWS Webcast - Explore the AWS CloudAWS Webcast - Explore the AWS Cloud
AWS Webcast - Explore the AWS Cloud
 

Último

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Nuts and bolts of running a popular site in the aws cloud

  • 1. Host a hit site in the cloud without downtime or going broke David Veksler
  • 2. Nuts and bolts of running a popular site in the AWS cloud • I will share how we develop and host a popular publishing platform in the cloud with a limited budget and technology team. • We'll cover architecture, including a variety of services at Amazon Web Services such as elastic load balancing, S3, Elastic Beanstalk, and RDS in the context of a real site. • We'll cover how we control costs with Spot and burstable instances and scale up with distributed caching. • Finally we'll discuss continuous deployment strategies for Windows and Linux-based cloud applications in the context of a distributed team using an agile process.
  • 3. Contents 1. Cloud Architecture 2. Key AWS Services 3. Keeping costs under control 4. Configuration management 5. Key tools for distributed agile development
  • 5. Northern Virginia AZ FEE-DB security groupSpot Instance Fleet fee-media (US-Standard Region) Media Storage EC2 VM C4.2xlarge Cloudflare DNS CDN, Firewall Services LIVE DB: feedb2 Amazon Web Services Cloud FEE-Dev.org FEE.org Admin Node TeamCity CI Fee-dev.org:8080 EC2 VM C4.2xlarge Admin.fee.org Fee-dev.org Web1.fee.org Admin.fee.org contains: SES Internal Email Other Services: • Domain: Google Domains • Performance: New Relic Pro • Analytics: Parse.ly, Clicky, Google Analytics • Uptime: Pingdom • Email: MailChimp • Code: BitBucket users Web2.fee.org EC2 VM C4.2xlarge fee-misc (US-Standard Region) Backups admin.fee.org hosts both live and dev, acts as staging for deployments cache cluster: fee-cache-001 fee-cache-002 Redis Cache Architecture Diagram DEV DB: fee-dev2 Elastic Load Balancing lb.fee.org Analytics & Content Recommendations Marketing Email web#.FEE.org instances use spot pricing to bid for the best price DNS, Firewall and CDN RDS RDS
  • 6. High-level objectives (by priority) 1. Front end uptime should be 99.8% 2. Back Office (admin) uptime should be 95% 3. Keep personal information (payments, admin access) secure 4. Stay up during traffic surges up to 6X weekly peak 5. Keep budget under $1,600/month 6. Ongoing development should not impact uptime.
  • 7. Design strategy 1. All components should be redundant and self-healing 2. Pay for normal load while supporting surges 3. Outsource infrastructure: let AWS cloud be responsible for as much infrastructure as feasible 4. Automate all backup processes 5. Semi-automated disaster recovery: site should recover from most outages automatically, when cost of doing so is reasonable 6. Change management integrated into architecture via imaging and cache keys
  • 8. Architecture Summary • Front-end is load balanced, scalable, and self-healing • Backend is isolated from front-end • Automatic snapshots for servers, transaction logging for DB • Rely on AWS services for all infrastructure services • Combine functionality within servers to save costs • Massively over-allocate capacity using market-based pricing • Development process integrated with production architecture
  • 9. Northern Virginia AZ FEE-DB security groupSpot Instance Fleet fee-media (US-Standard Region) Media Storage EC2 VM C4.2xlarge Cloudflare DNS CDN, Firewall Services LIVE DB: feedb2 EC2 VM C4.2xlarge Admin.fee.org Fee-dev.org Web1.fee.org SES Internal Email users Web2.fee.org EC2 VM C4.2xlarge fee-misc (US-Standard Region) Backups cache cluster: fee-cache-001 fee-cache-002 Redis Cache DEV DB: fee- dev2 Elastic Load Balancing lb.fee.org RDS RDS
  • 10. Amazon Cloud Services Used • Load balancing: Elastic Load Balancer • Virtual machines: EC2 Spot Instances • Databases: RDS (SQL Server) • Media Storage & Backups: S3 • Distributed Cache: ElastiCache (Redis) • CDN: CloudFront CloudFlare • Email: Amazon SES
  • 11. Other Cloud Services • Analytics: Parse.ly, Clicky, Google Analytics • Performance: New Relic Pro • Email: MailChimp (Campaigns & Automations)
  • 13. Why CloudFlare is awesome • Flat-rate CDN service (supports CDN daisy-chaining) • Free, powerful SSL • Active, crowd-sourced firewall • Powerful DNS (CNAME flatting, much more) • HTML and Image minification • Much more! • Saves FEE.org $ thousands per year in bandwidth costs • Starts at $20/month
  • 15.
  • 16. Elastic Load Balancer • Point DNS at CNAME of load balancer • Point destination to specific VMs or use auto-scaling rules • Set destination by path pattern with Application Load Balancer • Use TCP, HTTP, SSL for health check • We use a custom health check endpoint which verifies application uptime & DB connectivity
  • 17. RDS: Relational Database Service • FEE.org uses SQL Server Web • Other sites use AuroraDB, which is 10X faster than MySQL • (With proper tuning, in specific scenarios) • Use snapshots to create dev instances of DB • Schedule configuration changed for off-hours • Be aware that RDS SQL Server restricts most admin actions. There are special sprocs for some actions such as renaming DB or bringing DB online (but not taking offline!) • Backup restore not allowed: use SQL Database Migration Wizard to restore DB • Use burstable SQL Server instances, especially for dev DB
  • 18. S3: Media storage + backup • FEE.org uses S3 as a media (Image/PDF/EPUB/MP4/MP3) store • Only originals are stored in S3, thumbnails are stored on server • Amazon Web Services S3 IFileSystem provider for Umbraco + a custom caching layer • XSLT transforms to specify production/dev buckets
  • 19. Spot Instances • Instances only run when market price below the bid price • In practical terms, Spot = 80% saving on hourly instances • Supports auto scaling. Use it! • Set bid price equal to hourly instance price and get 100% availability (so far) • Specify a range of qualified instance types (including previous generations) to maximize chance of availability. • FEE.org runs master server as xlarge hourly instance and read-only nodes as 2xlarge Spot instances. This guarantees at least 1 cheap(er) instance even if prices spike or instances refresh at the same time.
  • 24. Auto Scaling Build cloud systems that scale automatically to meet current demand
  • 25. When to auto-scale? • Instances that don’t take very long to spin up • Individual instances don’t use too much resources • Version release process is automated (such as with Elastic Beanstalk) • Don’t release very often, or cost or snapshot management is minimal • Large difference between minimum and peak traffic • Unpredictable traffic trends
  • 26. Alternatives to auto-scaling • Burstable instances • Spot Instances • Schedule on/off instance times with AutomatiCloud
  • 27. Why doesn’t FEE.org auto-scale? • Minimum instance count for high availability is 3 • Peak traffic (> 600 concurrent users) can be handled by 2 instances • Each instance requires 16GB ram and 8 CPUs for optimal performance • Release process not fully automated & no full-time developers (do not use Elastic Beanstalk & have to make manual snapshots post- release) • Can spin up new instances within minutes with Spot + New Relic Alerts • Will probably consider auto-scaling when we have more process maturity (fully automated release process)
  • 30. Elastic Beanstalk • Upload DLLs to AWS git reposity, AWS does the rest • AWS will deploy the code, load balancing, auto-scaling, health monitoring, etc. • Environment configuration with web.config XSLT transforms and ACL permissions (wpp.targets) file. • FREE service – only pay for resources used • If using .Net, works with most 100% managed code projects • GUI integrated with Visual Studio
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40. Cloud hosting on a budget
  • 41. Thinking about IAAS/SAAS Pricing Strategy • Cloud services almost always cost much more per compute resource than colocations or dedicated hardware • Cost savings come in matching demand to infrastructure and outsourcing management services • Amazon & Azure are some of the most costly cloud services per resources, but recommended for most scenarios because of productivity benefits from breadth and depth of managed services.
  • 42. Cloud Services Pricing Summary • Each cloud service provider has a unique bundle of services and pricing model. Different providers have unique price advantages for different products. Provider selection should be based on a typical application mix for our business. • Azure may have a price advantage over Amazon when using cloud- optimized architecture based on Microsoft products. • Softlayer, Digital Ocean, and Google Compute all have better prices than bost for various scenarios, especially Windows VM, but offer fewer services. • Cost is just one of many criteria for choosing a provider! No provider has a decisive advantage for all scenarios.
  • 43. Pricing Recommendations 1. Use the pricing calculator offered by each provider to estimate total application cost for specific applications. Keep in mind cloud- optimized architectures may have a much lower cost. (For example, compute functions instantiated on-demand, auto-scaling, etc.) 2. Do not make pricing the primary consideration in provider selection unless the cost difference is critical to businesses requirements. In general, major service and quality differences between providers are more important than pricing considerations. 3. Developing deep expertise and service integration with a cloud provider is usually more important than cost differences for individual projects.
  • 44. Saving Money with AWS • Reserved Instances • Spot Instances • Burstable Instances • Scheduled Instances (using AWS or third party tool) • This can be used with any AWS VM service – EC2, RDS, ElastiCache, etc!
  • 45. AWS Instance type selection criteria • Use the latest generation of instance types (x4/t2) • Use burstable instances for applications with high daily variability • Evaluate whether applications are CPU, memory, or IO intensive and select the appropriate type – scale up your particular bottleneck • For applications with consistent and predicable load, prefer larger instances; for applications with unpredictable load, auto-scale horizontally with more burstable instances
  • 46. Buying a reserved instance • Unsure about your needs? Get a convertible instance! Can move up or across. • You can sell them! (I haven’t tried this) • Best savings/risk is usually with partial payment option.
  • 47. S3 Reduced Redundancy Store & Glacier • “Only” duplicated across 2 facilities • .01% storage failure rate (“400 times the durability of typical HDD”) • About 25% cheaper
  • 48. • Background service via event handle to media upload completed method • $412GB * $0.0314 per GB = $155/year saved on storage alone • Runs as AWS Marketplace service ($39/month) or desktop app JPEGmini
  • 49. Summary: FEE.org $ saving strategy: • 2 reserved burstable RDS databases • 1 reserved admin EC2 VM • 2 Spot EC2 front-end server instances • AutomatiCloud EC2 scheduling for off-hours (and backup automation) • S3 Reduced redundancy store for non-critical backups and dev data • CloudFlare CDN • JPEGmini image optimization background service
  • 51. FEE Development Process 1. Post job on UpWork.com 2. Hire freelancer 3. Developer commits work to git 4. Deploy to dev environment 5. Test work 6. Create pull request for release 7. Release build 8. Staged deployment to production servers
  • 54. Orientation • Google Doc with: • Architectural overview • FEE.org development process • Instructions to setup localhost environment • Review of tools used • Relevant people involved & their contact info • Address of FEE-Dev Skype group • Code Quality Expectations
  • 55. Development Environment Setup 1. Checkout git repository 2. “Just hit F5” • NuGet for all dependencies • XSLT for non-local environments • Dev DB hosted in cloud • Optional: Install Redis on localhost for better performance
  • 58. Staged, Staggered Deployment • xcopy to each production server • ELB takes server out of production within 30 seconds • Stagger release by ~5 minutes to let each application pool warm up
  • 60. Collaboration & Internal Messaging • SlackBot
  • 62. Aside: LAMP deployment strategy (highly available WordPress) • Commit hooks on master branch in Bitbucket git repository • Hooks call deploy.php script which runs a git pull in dev environment • Release PHP code with git pull on production • Image staging server (AMI), and deploy Spot fleet with AMI • Use S3 Media storage provider, Redis cache – no persistent data on Spot instances • Easy Engine for easy nginx configuration, etckeeper to backup/sync configuration file
  • 63.
  • 69. Surveys and Prizes • Please complete the session and event surveys! 1 ticket per session survey 1 ticket for the event survey 1 ticket for completing the booth game • Drawing for prizes begins at 5pm in Q202

Notas del editor

  1. http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.html https://stackoverflow.com/questions/12200907/amazon-rds-sql-server-bring-database-online https://sqlazuremw.codeplex.com/
  2. https://github.com/ElijahGlover/Umbraco-S3-Provider
  3. https://console.aws.amazon.com/ec2sp/v1/spot/home?region=us-east-1#
  4. https://us-west-2.console.aws.amazon.com/ec2sp/v1/spot/home?region=us-west-2
  5. http://www.automaticloud.net/
  6. https://aws.amazon.com/elasticbeanstalk/ https://msdn.microsoft.com/en-us/library/ff398069(v=vs.110).aspx
  7. http://techblog.netflix.com/2012/01/auto-scaling-in-amazon-cloud.html
  8. https://aws.amazon.com/s3/reduced-redundancy/
  9. https://aws.amazon.com/marketplace/pp/B00AR2FEAW
  10. https://aws.amazon.com/s3/reduced-redundancy/
  11. https://docs.google.com/document/d/173ulhWi4cbZUwK5__1M-J3hAzbeyru49U4U4rRteG8Q/edit
  12. https://docs.google.com/document/d/173ulhWi4cbZUwK5__1M-J3hAzbeyru49U4U4rRteG8Q/edit