SlideShare a Scribd company logo
1 of 53
Download to read offline
Deploying, Scaling, and
Running Grails on AWS and VPC
Learn the ropes of networking to maximize
your potential
Created by /Ryan Vanderwerf @RyanVanderwerf
About Me
Learn the ropes of networking to maximize
your potential
Chief Architect @ ReachForce
Co-Chair Austin Groovy and Grails User Group
Help maintain Grails Quartz plugin
Maintain GVPS Plugin (Grails Video Pseudo Streamer)
Maintain Struts-1 Plugin
Submit pull requests for others when I can!
What We Will Cover
VPC
S3
ElasticWolf
sshoogr and gramazon
Grails Plugins
Elastic Load Balancers
Autoscaling
Others misc tips
VPC - Virtual Private Cloud
Routing
NAT
ACL Firewall
Suggested Subnets
Security Groups
DHCP Tips
Others misc tips
VPC Overview
Now required on new AWS accounts
Very different that EC2 'Classic' which has no private network layer
Costs nothing extra - you have nothing to lose
VPC - Routing/Subnets
VPC - Routing/Subnets
VPC - Routing/Subnets
adding a 3rd subnet - this gives a helping
hand
auto-scaling instances can access internet through NAT
Web Servers, Web facing apps can live behind ELB yet be able to run
OS updates
S3 Buckets accessible
can access your secure subnet as well
VPC - Routing/Subnets
VPC - Routing/Subnets
VPC - Routing/Subnets
VPC - Routing/Subnets
VPC - Routing/Subnets
Security ACLs
ACLs like a full firewall - unlike groups
Protect subnets instead of EC2 instances
Processed in order of rule #
ACLs are stateless - responses to inbound bound by outbound rules
To accommodate various clients and OSs open ephemeral ports 1024-
65535 then block malicous ports
VPC - Routing/Subnets
Security Groups
VPC Security Groups are different than EC2 Groups - use different and
descriptive names if both used
You can use a security group ID (starting with sgXXXXX) in most places
where IPs can be entered
Processed in order of rule #
ACLs are stateless - responses to inbound bound by outbound rules
To accommodate various clients and OSs open ephemeral ports 1024-
65535 then block malicous ports
VPC - Routing/Subnets
DHCP Options
Determine What DNS DHCP clients use
Can do things like set default domain, whether to use internal or
external DNS for your VPC
From Web UI, assign only 1 option set at a time
Using amazon provided DNS, using naming scheme of 10.0.1.x,
default domain ec2.internal
Can assign your own DNS server names, or even Netbios name
servers or NTP servers
Options are semicolor delimited name value pairs, i.e. 'domain-
name=something.com; domain-name-severs=AmazonProvidedDNSs
VPC - IAM Roles
Don't use root account anymore. Traditional security page is retired
Set up your IAM roles for each user and use designated login url they
give you
Use resource level security with IAM to tier access to
instances/resources
VPC - Misc EC2 Tips
Reboot != Reboot be careful
Rebooting a machine from console will keep instance in place and
ephemeral storage(OS reboot faster)
If you issue an 'stop' command you machine will move and lose
ephemeral state
VPC - Misc EC2 Tips
VPN
Use OpenVPN instead of metered AWS VPN - it runs fine on a tiny
instance- save $$
Use OpenVPN client to leave remote servers connected to VPC - it
auto-reconnects
VPC - Misc EC2 Tips
Load Balancer
60s timeout on idle max - can file ticket for extension to 15+ minutes
Use Haproxy for anything very advanced, can accommodate many
options
VPC - Misc EC2 Tips
EBS Based Instances
Use EBS backed instances for anything not build for cloud
If you can build server on the fly with Chef/Puppet like tools, go for
ephemeral based
EBS backed instances have no swap by default - be sure to specify
ephemeral disks on launch, use as swap
EBS backed instances have no ephemeral disks on by default be sure
to use them on launch of instance and AMIs
S3 Storage
Limitations
Common tools
Regions with different functionality
Glacier
Grails S3 Plugin
S3 Storage
Limitations - Eventual Consistency
This means after write/update it will EVENTUALLY be consistent
Make your app retry on read fail - it might not be synced yet
Different regions have different consistency rules
US-West and EU Buckets have read after write consistency - but not
update or delete (and cost more)
US-East is so large it cannot handle any kind of consistency after
write/update/delete - except patience!
S3 Storage
Limitations - large files
Files over 5GB supported, but most tools don't handle properly
S3 Tools must support mime/multipart
s3cmd(Linux) / CyberDuck 4(Mac/Win32) / S3 Browser(Win32) /
Cloudberry Explorer(PRO Win32) / Bucket Explorer
File > 5GB files work with these tools, it is EXTREMELY slow
S3 Storage
Tools
s3fs - mount as filesystem - but >5GB files broken, beware of
consistency!
Make sure FUSE is in kernel
s3cmd is best free command line tools
Bucket Explorer & CloudBerry Backup are good solid windows clients
that parallelize multi-part uploads to ease the pain
s3 Browser is ok free tool
For install on Ubuntu: http://zentraal.com/docs/installing-s3fs-on-
ubuntu/
S3 Storage
Different Function Between Different
Regions
US-East-1 Cheapest for full redundancy otherwise to save $ you can
use RRS (Or Glacier)
US-West and EU Buckets have read after write consistency - but not
update or delete (and cost more)
US-East is so large it cannot handle any kind of consistency after
write/update/delete - except patience!
Barring these limitations (and budget!), use the region closed to your
VPC instances and regions
S3 Storage
Grails S3 Plugin
Looks unmaintained, but still works fine on latest Grails versions (no
JIRA bugs pending!)
Delete Buckets (See )
Uploads and catalogs assets (will use bucket name you give as base
for its bucket name)
Names files inside bucket with UUIDs to avoid collisions
Can give each asset a bucket and key pair or global
Demo - s3-demo project
org.grails.s3.BucketService
General AWS Grails Plugins
Grails AWS Plugin
AWS SDK Plugin
DynamoDB GORM Plugin - not covered
Amazon Flexible Payments - not covered
SimpleDB GORM Plugin - not convered
CDN Asset Pipeline plugin - not covered
General AWS Grails Plugins -
Grails AWS Plugin
Actual Groovy/Grails Code to Manage S3
storage and SES Service (vs Java wrapper)
General AWS Grails Plugins -
Grails AWS Plugin
Has handy Gant scripts installed - used for
SES stats
Aws-Ses-Get-Send-Quota
Aws-Sws-Get-Send-Statistics
Aws-Ses-List-Verified-Emails
Aws-Ses-Send-Ping-Mail
Aws-Ses-Verify-Email
General AWS Grails Plugins -
Grails AWS Plugin
Aws-Ses-Get-Send-Quota
Gets your current Quota for Simple Email Service
Shows email limit per day, per second, # of emails
Output looks like this:
[AWS SES] The maximum number of emails the user is allowed to
send in a 24-hour interval: 10000.0
[AWS SES] The maximum number of emails the user is allowed to
send per second: 5.0
[AWS SES] The number of emails sent during the previous 24 hours:
15.0
General AWS Grails Plugins -
Grails AWS Plugin
Aws-Sws-Get-Send-Statistics
Gets your email sending statistics
The output is a list of items, for the last two weeks of sending activity.
Example output:
[AWS SES] -------------------------------------------------------------------------------
[AWS SES] | time range | attemps | rejects (SES) | complaints
(recipient) | bounces |
[AWS SES] |-------------------------------------------------------------------------------|
[AWS SES] | 2013/06/26 22:42 | 1 | 0 | 0 | 0 |
General AWS Grails Plugins -
Grails AWS Plugin
aws-ses-list-verified-emails
Shows a list of all verified emails with
The output is a list of emails authorized to send email FROM
Example output:
[AWS SES] 1) support@reachforce.com
General AWS Grails Plugins -
Grails AWS Plugin
aws-ses-send-ping-mail
Script will verify a given email has been 'verified' by Amazon
General AWS Grails Plugins -
Grails AWS Plugin
aws-ses-verify-email
Script will submit an email for verification to amazon, and send an
email to that address
General AWS Grails Plugins -
Grails AWS Plugin
aws-ses-verify-email
Script will submit an email for verification to amazon, and send an
email to that address
General AWS Grails Plugins -
Grails AWS Plugin
S3 File Management
Demo
General AWS Grails Plugins -
Grails AWS Plugin
S3 File Management
Handy for storing existing assets into S3
Convert local File to S3 Storage
def s3file = new File("/tmp/test.txt").s3upload { path
"folder/to/my/file/" }
Upload directly from Stream:
def file = request.getFile('photo') def uploadedFile =
file.inputStream.s3upload(file.originalFilename) { bucket "file-upload-
from-inputstream" }
General AWS Grails Plugins -
Grails AWS Plugin
SES Management
AFAIK skip this - the mail plugin handles all of this
// settings for mail plugin to work with SES grails { mail { host = "email-
smtp.us-east-1.amazonaws.com" port = 25 username =
"SESUsername" password = "SESPassword" props =
["mail.smtp.starttls.enable":"true",
"mail.smtp.port":"587","mail.debug":"true","mail.smtp.auth":"true"] //
uncomment to force all emails to one address //
grails.mail.overrideAddress="test@address.com"
grails.mail.default.from = "support@reachforce.com" } }
General AWS Grails Plugins -
AWS SDK Plugin
Wrapper for AWS Java SDK
This is the one to use for most powerful work of services - can access
almost all of AWS services that JDK supports
Uses AWS Web Service API wrapped in a Java Library
Error handing can be more difficult than using web service api directly
General AWS Grails Plugins -
AWS SDK Plugin
Services Supported
EC2 - ELB,CloudWatch, Elastic Beanstalk
RDS - Elastic Mapreduce, SDB, Dynamo, Redshift, SimpleDB
S3/Glacier
SES (us-east-1,us-west-2,eu-west-1 only)
SQS, SWF
CloudFormation,CloudFront
Elastic Beanstalk, Transcoder, Opsworks(Old Chef)
Cloudformation, CloudSearch, Elasticache
General AWS Grails Plugins -
AWS SDK Plugin
EC2
Grails service wrapper is 'amazonWebService'
Call amazonWebService.ec2. - for default region, call
amazonWebService.getEc2('region'). for others
RunInstancesRequest class defines parameters to launch an instance
(It seems picky about nulls)
use amazonWebService.runInstances() to start instances
Complete docs at:
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/
General AWS Grails Plugins -
AWS SDK Plugin
RDS
Not sure why you would spin up entire databases, but you can!
Most practical use would be to automate snapshots of the database
If you have a small simple database, service is good
Cannot start/top RDS instances, and pay premium to use their
licenses if using commercial DBs
If you have the skill or have large DB requirements, set up your own
database - there is probably an AMI for it
Has good multi-az failover (but pricey!) with PIOPS EBS Volumes (You
can raid your own PIOPS drives!)
General AWS Grails Plugins -
AWS SDK Plugin
S3
manage buckets, upload/download and delete files
Transfer Manager - handles multipart uploads (big files, batch, fast!)
full docs here:
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/s
summary.html
General AWS Grails Plugins -
AWS SDK Plugin
Glacier
cold storage for data - not immediately available on demand
vaults - organize your archives and policies (where your files go)
Upload files via
amazonWebService.glacier.uploadArchive(UploadArchiveRequest
uploadArchiveRequest) or UploadMultiPart
Files are retrieved via 'initiateJob'
Call 'listJobs' until your job is done.
Can use Amazon SNS to notify you when jobs are complete
When done get files from your vault via GetJobOutput
General AWS Grails Plugins -
AWS SDK Plugin
Glacier
General AWS Grails Plugins -
AWS SDK Plugin
SQS
Simple queue service
Create / Delete Queues
Receive Message
Can also assign permissions and batch messages
Messages can remain in queue for 12 hours
ElasticWolf
More powerful than web console gui
Can control things like auto-scaling
Created partly for new GovCloud because they had no UI at all initially
Managed by sales organization instead of IT
Actively Maintained on Github
ElasticWolf
Demo
sshoogr and gramazon
sshoogr - Groovy-based DSL library for working with remote servers
through SSH - DSL Allows:
connecting
executing remote commands
copying files and directories
creating tunnels in a simple and concise way
gradle plugin also for
project very active (last commit 1 month ago)
gramazon - Groovy based API for Amazon EC2
interface library that can be used to interact with the Amazon EC2
system and control server resources on demand from your Groovy
scripts or from Gradle, using a plug-in.>
uses gradle to run commands
maybe could be used as basis for a groovy version of chef or
puppet?
project very active (last commit 1 month ago)
gradle project template available as well as 'gradle-ssh-plugin'
Repos for these: https://github.com/aestasit/sshoogr and
https://github.com/aestasit/gramazon-gradle
Autoscaling Overview
Autoscaling can be used for fault-tolernance (min 1)
Most efficient user of instance
Set Policies using templates for how more servers created/terminated
Control Spot instance bit price
You app must be able to handle 'sudden death'
Make sure your debug your AMI BEFORE adding to a autoscale group
(debugging failed autoscaled instances is no way to go through life
son!)
Autoscaling Setup
Step 1: Create Launch Config(Just like launching instance but a
template)
Step 2: Create Autoscale Group
Step 3: Create Policies
Demo with ElasticWolf (can use web console now too)
Elastic Beanstalk
Finally a good solution to push your application to Elastic Beanstalk on
Grails!
Ken Liu now has first class citizen support in Grails for Elastic
Beanstalk!
Easy to set up and configure, just add keys and params to
Config.groovy
Use command 'aws-eb-deploy' and 'aws-eb-stop' - that's it!
Detailed online manual available at http://kenliu.net/grails-elastic-
beanstalk/manual.html
Useful resources
Elastic Beanstalk plugin by Ken Liu: http://grails.org/plugin/aws-elastic-
beanstalk
Elastic Beanstalk Intro @ Bobby Warner's Blog:
http://www.bobbywarner.com/2011/10/14/grails-on-aws/
Another Beanstalk:
http://malderhout.wordpress.com/2011/02/18/deploy-grails-apps-in-
3-simple-steps-to-amazon-beanstalk/
Sample Beanstalk app: https://github.com/4np/grailsOnAWS
Oracle, EBS, and other Tips from AWS Architect Tom Laszewski
http://cloudconclave.blogspot.com/
Building an S3 Browser in Grails
http://aws.amazon.com/articles/Amazon-S3/4000

More Related Content

What's hot

Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Amazon Web Services
 
Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesAmazon Web Services
 
AWS reinvent 2019 - Transforming to feature-driven development
AWS reinvent 2019 - Transforming to feature-driven developmentAWS reinvent 2019 - Transforming to feature-driven development
AWS reinvent 2019 - Transforming to feature-driven developmentBhuvaneswari Subramani
 
Asgard, the Grails App that Deploys Netflix to the Cloud
Asgard, the Grails App that Deploys Netflix to the CloudAsgard, the Grails App that Deploys Netflix to the Cloud
Asgard, the Grails App that Deploys Netflix to the CloudJoe Sondow
 
Leveraging Elastic Web Scale Computing with AWS
 Leveraging Elastic Web Scale Computing with AWS Leveraging Elastic Web Scale Computing with AWS
Leveraging Elastic Web Scale Computing with AWSShiva Narayanaswamy
 
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...Amazon Web Services
 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineAmazon Web Services
 
Intro to AWS Developer Tools, featuring AWS CodeStar
Intro to AWS Developer Tools, featuring AWS CodeStarIntro to AWS Developer Tools, featuring AWS CodeStar
Intro to AWS Developer Tools, featuring AWS CodeStarAmazon Web Services
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldAmazon Web Services
 
20201012 - Serverless Architecture Conference - Deploying serverless applicat...
20201012 - Serverless Architecture Conference - Deploying serverless applicat...20201012 - Serverless Architecture Conference - Deploying serverless applicat...
20201012 - Serverless Architecture Conference - Deploying serverless applicat...Marcia Villalba
 
DevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryDevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryMikhail Prudnikov
 
How to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStarHow to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStarAmazon Web Services
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Amazon Web Services
 
How we do Serverless
How we do ServerlessHow we do Serverless
How we do ServerlessA Cloud Guru
 
Container Days - AWS Microservice Workshop
Container Days - AWS Microservice WorkshopContainer Days - AWS Microservice Workshop
Container Days - AWS Microservice WorkshopTara Walker
 
Infrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormationInfrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormationAmazon Web Services
 
An Overview of Designing Microservices Based Applications on AWS - March 2017...
An Overview of Designing Microservices Based Applications on AWS - March 2017...An Overview of Designing Microservices Based Applications on AWS - March 2017...
An Overview of Designing Microservices Based Applications on AWS - March 2017...Amazon Web Services
 
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...Amazon Web Services
 

What's hot (20)

AWS Deployment Best Practices
AWS Deployment Best PracticesAWS Deployment Best Practices
AWS Deployment Best Practices
 
Platform for Innovation - AWS
Platform for Innovation - AWSPlatform for Innovation - AWS
Platform for Innovation - AWS
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web Services
 
AWS reinvent 2019 - Transforming to feature-driven development
AWS reinvent 2019 - Transforming to feature-driven developmentAWS reinvent 2019 - Transforming to feature-driven development
AWS reinvent 2019 - Transforming to feature-driven development
 
Asgard, the Grails App that Deploys Netflix to the Cloud
Asgard, the Grails App that Deploys Netflix to the CloudAsgard, the Grails App that Deploys Netflix to the Cloud
Asgard, the Grails App that Deploys Netflix to the Cloud
 
Leveraging Elastic Web Scale Computing with AWS
 Leveraging Elastic Web Scale Computing with AWS Leveraging Elastic Web Scale Computing with AWS
Leveraging Elastic Web Scale Computing with AWS
 
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
Connect and Interconnect – The Mesh of Event-Driven Compute and Marvelous Vir...
 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules Engine
 
Intro to AWS Developer Tools, featuring AWS CodeStar
Intro to AWS Developer Tools, featuring AWS CodeStarIntro to AWS Developer Tools, featuring AWS CodeStar
Intro to AWS Developer Tools, featuring AWS CodeStar
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
20201012 - Serverless Architecture Conference - Deploying serverless applicat...
20201012 - Serverless Architecture Conference - Deploying serverless applicat...20201012 - Serverless Architecture Conference - Deploying serverless applicat...
20201012 - Serverless Architecture Conference - Deploying serverless applicat...
 
DevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryDevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous Delivery
 
How to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStarHow to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStar
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
How we do Serverless
How we do ServerlessHow we do Serverless
How we do Serverless
 
Container Days - AWS Microservice Workshop
Container Days - AWS Microservice WorkshopContainer Days - AWS Microservice Workshop
Container Days - AWS Microservice Workshop
 
Infrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormationInfrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormation
 
An Overview of Designing Microservices Based Applications on AWS - March 2017...
An Overview of Designing Microservices Based Applications on AWS - March 2017...An Overview of Designing Microservices Based Applications on AWS - March 2017...
An Overview of Designing Microservices Based Applications on AWS - March 2017...
 
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
 

Similar to Deploying, Scaling, and Running Grails on AWS and VPC

Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudVladimir Ilic
 
Architecting Cloud Apps
Architecting Cloud AppsArchitecting Cloud Apps
Architecting Cloud Appsjineshvaria
 
Deploying and running Grails in the cloud
Deploying and running Grails in the cloudDeploying and running Grails in the cloud
Deploying and running Grails in the cloudPhilip Stehlik
 
Europe Cloud Summit - Security hardening of public cloud services
Europe Cloud Summit - Security hardening of public cloud servicesEurope Cloud Summit - Security hardening of public cloud services
Europe Cloud Summit - Security hardening of public cloud servicesRuncy Oommen
 
How to copy multiple files from local to aws s3 bucket using aws cli
How to copy multiple files from local to aws s3 bucket using aws cliHow to copy multiple files from local to aws s3 bucket using aws cli
How to copy multiple files from local to aws s3 bucket using aws cliKaty Slemon
 
Re:Invent 2019 Recap. AWS User Group Zaragoza. Javier Ramirez
Re:Invent 2019 Recap. AWS User Group Zaragoza. Javier RamirezRe:Invent 2019 Recap. AWS User Group Zaragoza. Javier Ramirez
Re:Invent 2019 Recap. AWS User Group Zaragoza. Javier Ramirezjavier ramirez
 
Amazon EMR Deep Dive & Best Practices
Amazon EMR Deep Dive & Best PracticesAmazon EMR Deep Dive & Best Practices
Amazon EMR Deep Dive & Best PracticesAmazon Web Services
 
AWS Certified Solutions Architect - Associate SAA-C03 Dumps
AWS Certified Solutions Architect - Associate SAA-C03 DumpsAWS Certified Solutions Architect - Associate SAA-C03 Dumps
AWS Certified Solutions Architect - Associate SAA-C03 DumpsVictoriaMeisel
 
Exam Overview 70-533 Implementing Azure Infrastructure Solutions
Exam Overview 70-533 Implementing Azure Infrastructure SolutionsExam Overview 70-533 Implementing Azure Infrastructure Solutions
Exam Overview 70-533 Implementing Azure Infrastructure SolutionsGustavo Zimmermann (MVP)
 
Dallas Breakfast Seminar
Dallas Breakfast SeminarDallas Breakfast Seminar
Dallas Breakfast SeminarNuoDB
 
REPEAT_1_Deep_dive_on_new_features_in_Amazon_RDS_for_SQL_Server_DAT364-R1(1).pdf
REPEAT_1_Deep_dive_on_new_features_in_Amazon_RDS_for_SQL_Server_DAT364-R1(1).pdfREPEAT_1_Deep_dive_on_new_features_in_Amazon_RDS_for_SQL_Server_DAT364-R1(1).pdf
REPEAT_1_Deep_dive_on_new_features_in_Amazon_RDS_for_SQL_Server_DAT364-R1(1).pdfAkashGoel82
 
데이터 마이그레이션 AWS와 같이하기 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
데이터 마이그레이션 AWS와 같이하기 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming데이터 마이그레이션 AWS와 같이하기 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
데이터 마이그레이션 AWS와 같이하기 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 GamingAmazon Web Services Korea
 
Hybrid Cloud Storage for Recovery & Migration with AWS Storage Gateway (STG30...
Hybrid Cloud Storage for Recovery & Migration with AWS Storage Gateway (STG30...Hybrid Cloud Storage for Recovery & Migration with AWS Storage Gateway (STG30...
Hybrid Cloud Storage for Recovery & Migration with AWS Storage Gateway (STG30...Amazon Web Services
 
Windows azure camp
Windows azure campWindows azure camp
Windows azure campAbhishek Sur
 
Securing serverless and container services - SDD306 - AWS re:Inforce 2019
Securing serverless and container services - SDD306 - AWS re:Inforce 2019 Securing serverless and container services - SDD306 - AWS re:Inforce 2019
Securing serverless and container services - SDD306 - AWS re:Inforce 2019 Amazon Web Services
 
Re:Invent 2019 Recap. AWS User Groups in Spain. Javier Ramirez
 Re:Invent 2019 Recap. AWS User Groups in Spain. Javier Ramirez Re:Invent 2019 Recap. AWS User Groups in Spain. Javier Ramirez
Re:Invent 2019 Recap. AWS User Groups in Spain. Javier Ramirezjavier ramirez
 
Architecting-for-the-cloud-Best-Practices
Architecting-for-the-cloud-Best-PracticesArchitecting-for-the-cloud-Best-Practices
Architecting-for-the-cloud-Best-PracticesAmazon Web Services
 
(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduce(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduceAmazon Web Services
 
Developing And Running A Website On Amazon S E
Developing And Running A Website On Amazon S EDeveloping And Running A Website On Amazon S E
Developing And Running A Website On Amazon S Ejaymuntz
 

Similar to Deploying, Scaling, and Running Grails on AWS and VPC (20)

Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloud
 
Architecting Cloud Apps
Architecting Cloud AppsArchitecting Cloud Apps
Architecting Cloud Apps
 
Deploying and running Grails in the cloud
Deploying and running Grails in the cloudDeploying and running Grails in the cloud
Deploying and running Grails in the cloud
 
Europe Cloud Summit - Security hardening of public cloud services
Europe Cloud Summit - Security hardening of public cloud servicesEurope Cloud Summit - Security hardening of public cloud services
Europe Cloud Summit - Security hardening of public cloud services
 
How to copy multiple files from local to aws s3 bucket using aws cli
How to copy multiple files from local to aws s3 bucket using aws cliHow to copy multiple files from local to aws s3 bucket using aws cli
How to copy multiple files from local to aws s3 bucket using aws cli
 
Re:Invent 2019 Recap. AWS User Group Zaragoza. Javier Ramirez
Re:Invent 2019 Recap. AWS User Group Zaragoza. Javier RamirezRe:Invent 2019 Recap. AWS User Group Zaragoza. Javier Ramirez
Re:Invent 2019 Recap. AWS User Group Zaragoza. Javier Ramirez
 
Amazon EMR Deep Dive & Best Practices
Amazon EMR Deep Dive & Best PracticesAmazon EMR Deep Dive & Best Practices
Amazon EMR Deep Dive & Best Practices
 
AWS Certified Solutions Architect - Associate SAA-C03 Dumps
AWS Certified Solutions Architect - Associate SAA-C03 DumpsAWS Certified Solutions Architect - Associate SAA-C03 Dumps
AWS Certified Solutions Architect - Associate SAA-C03 Dumps
 
Exam Overview 70-533 Implementing Azure Infrastructure Solutions
Exam Overview 70-533 Implementing Azure Infrastructure SolutionsExam Overview 70-533 Implementing Azure Infrastructure Solutions
Exam Overview 70-533 Implementing Azure Infrastructure Solutions
 
Dallas Breakfast Seminar
Dallas Breakfast SeminarDallas Breakfast Seminar
Dallas Breakfast Seminar
 
REPEAT_1_Deep_dive_on_new_features_in_Amazon_RDS_for_SQL_Server_DAT364-R1(1).pdf
REPEAT_1_Deep_dive_on_new_features_in_Amazon_RDS_for_SQL_Server_DAT364-R1(1).pdfREPEAT_1_Deep_dive_on_new_features_in_Amazon_RDS_for_SQL_Server_DAT364-R1(1).pdf
REPEAT_1_Deep_dive_on_new_features_in_Amazon_RDS_for_SQL_Server_DAT364-R1(1).pdf
 
데이터 마이그레이션 AWS와 같이하기 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
데이터 마이그레이션 AWS와 같이하기 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming데이터 마이그레이션 AWS와 같이하기 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
데이터 마이그레이션 AWS와 같이하기 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
 
Hybrid Cloud Storage for Recovery & Migration with AWS Storage Gateway (STG30...
Hybrid Cloud Storage for Recovery & Migration with AWS Storage Gateway (STG30...Hybrid Cloud Storage for Recovery & Migration with AWS Storage Gateway (STG30...
Hybrid Cloud Storage for Recovery & Migration with AWS Storage Gateway (STG30...
 
Windows azure camp
Windows azure campWindows azure camp
Windows azure camp
 
Securing serverless and container services - SDD306 - AWS re:Inforce 2019
Securing serverless and container services - SDD306 - AWS re:Inforce 2019 Securing serverless and container services - SDD306 - AWS re:Inforce 2019
Securing serverless and container services - SDD306 - AWS re:Inforce 2019
 
Re:Invent 2019 Recap. AWS User Groups in Spain. Javier Ramirez
 Re:Invent 2019 Recap. AWS User Groups in Spain. Javier Ramirez Re:Invent 2019 Recap. AWS User Groups in Spain. Javier Ramirez
Re:Invent 2019 Recap. AWS User Groups in Spain. Javier Ramirez
 
Architecting-for-the-cloud-Best-Practices
Architecting-for-the-cloud-Best-PracticesArchitecting-for-the-cloud-Best-Practices
Architecting-for-the-cloud-Best-Practices
 
(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduce(BDT208) A Technical Introduction to Amazon Elastic MapReduce
(BDT208) A Technical Introduction to Amazon Elastic MapReduce
 
Scalable Web Architecture
Scalable Web ArchitectureScalable Web Architecture
Scalable Web Architecture
 
Developing And Running A Website On Amazon S E
Developing And Running A Website On Amazon S EDeveloping And Running A Website On Amazon S E
Developing And Running A Website On Amazon S E
 

More from GR8Conf

DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your TeamGR8Conf
 
Creating and testing REST contracts with Accurest Gradle
Creating and testing REST contracts with Accurest Gradle Creating and testing REST contracts with Accurest Gradle
Creating and testing REST contracts with Accurest Gradle GR8Conf
 
Mum, I want to be a Groovy full-stack developer
Mum, I want to be a Groovy full-stack developerMum, I want to be a Groovy full-stack developer
Mum, I want to be a Groovy full-stack developerGR8Conf
 
Metaprogramming with Groovy
Metaprogramming with GroovyMetaprogramming with Groovy
Metaprogramming with GroovyGR8Conf
 
Scraping with Geb
Scraping with GebScraping with Geb
Scraping with GebGR8Conf
 
How to create a conference android app with Groovy and Android
How to create a conference android app with Groovy and AndroidHow to create a conference android app with Groovy and Android
How to create a conference android app with Groovy and AndroidGR8Conf
 
Ratpack On the Docks
Ratpack On the DocksRatpack On the Docks
Ratpack On the DocksGR8Conf
 
Groovy Powered Clean Code
Groovy Powered Clean CodeGroovy Powered Clean Code
Groovy Powered Clean CodeGR8Conf
 
Cut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature pluginsCut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature pluginsGR8Conf
 
Performance tuning Grails applications
 Performance tuning Grails applications Performance tuning Grails applications
Performance tuning Grails applicationsGR8Conf
 
Ratpack and Grails 3
 Ratpack and Grails 3 Ratpack and Grails 3
Ratpack and Grails 3GR8Conf
 
Grails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloudGrails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloudGR8Conf
 
Functional testing your Grails app with GEB
Functional testing your Grails app with GEBFunctional testing your Grails app with GEB
Functional testing your Grails app with GEBGR8Conf
 
The Grails introduction workshop
The Grails introduction workshopThe Grails introduction workshop
The Grails introduction workshopGR8Conf
 
Idiomatic spock
Idiomatic spockIdiomatic spock
Idiomatic spockGR8Conf
 
The Groovy Ecosystem Revisited
The Groovy Ecosystem RevisitedThe Groovy Ecosystem Revisited
The Groovy Ecosystem RevisitedGR8Conf
 
Groovy 3 and the new Groovy Meta Object Protocol in examples
Groovy 3 and the new Groovy Meta Object Protocol in examplesGroovy 3 and the new Groovy Meta Object Protocol in examples
Groovy 3 and the new Groovy Meta Object Protocol in examplesGR8Conf
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and GroovyGR8Conf
 
CRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual MachineCRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual MachineGR8Conf
 
Grooscript gr8conf
Grooscript gr8confGrooscript gr8conf
Grooscript gr8confGR8Conf
 

More from GR8Conf (20)

DevOps Enabling Your Team
DevOps Enabling Your TeamDevOps Enabling Your Team
DevOps Enabling Your Team
 
Creating and testing REST contracts with Accurest Gradle
Creating and testing REST contracts with Accurest Gradle Creating and testing REST contracts with Accurest Gradle
Creating and testing REST contracts with Accurest Gradle
 
Mum, I want to be a Groovy full-stack developer
Mum, I want to be a Groovy full-stack developerMum, I want to be a Groovy full-stack developer
Mum, I want to be a Groovy full-stack developer
 
Metaprogramming with Groovy
Metaprogramming with GroovyMetaprogramming with Groovy
Metaprogramming with Groovy
 
Scraping with Geb
Scraping with GebScraping with Geb
Scraping with Geb
 
How to create a conference android app with Groovy and Android
How to create a conference android app with Groovy and AndroidHow to create a conference android app with Groovy and Android
How to create a conference android app with Groovy and Android
 
Ratpack On the Docks
Ratpack On the DocksRatpack On the Docks
Ratpack On the Docks
 
Groovy Powered Clean Code
Groovy Powered Clean CodeGroovy Powered Clean Code
Groovy Powered Clean Code
 
Cut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature pluginsCut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature plugins
 
Performance tuning Grails applications
 Performance tuning Grails applications Performance tuning Grails applications
Performance tuning Grails applications
 
Ratpack and Grails 3
 Ratpack and Grails 3 Ratpack and Grails 3
Ratpack and Grails 3
 
Grails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloudGrails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloud
 
Functional testing your Grails app with GEB
Functional testing your Grails app with GEBFunctional testing your Grails app with GEB
Functional testing your Grails app with GEB
 
The Grails introduction workshop
The Grails introduction workshopThe Grails introduction workshop
The Grails introduction workshop
 
Idiomatic spock
Idiomatic spockIdiomatic spock
Idiomatic spock
 
The Groovy Ecosystem Revisited
The Groovy Ecosystem RevisitedThe Groovy Ecosystem Revisited
The Groovy Ecosystem Revisited
 
Groovy 3 and the new Groovy Meta Object Protocol in examples
Groovy 3 and the new Groovy Meta Object Protocol in examplesGroovy 3 and the new Groovy Meta Object Protocol in examples
Groovy 3 and the new Groovy Meta Object Protocol in examples
 
Integration using Apache Camel and Groovy
Integration using Apache Camel and GroovyIntegration using Apache Camel and Groovy
Integration using Apache Camel and Groovy
 
CRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual MachineCRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual Machine
 
Grooscript gr8conf
Grooscript gr8confGrooscript gr8conf
Grooscript gr8conf
 

Recently uploaded

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
[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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.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
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Deploying, Scaling, and Running Grails on AWS and VPC

  • 1. Deploying, Scaling, and Running Grails on AWS and VPC Learn the ropes of networking to maximize your potential Created by /Ryan Vanderwerf @RyanVanderwerf
  • 2. About Me Learn the ropes of networking to maximize your potential Chief Architect @ ReachForce Co-Chair Austin Groovy and Grails User Group Help maintain Grails Quartz plugin Maintain GVPS Plugin (Grails Video Pseudo Streamer) Maintain Struts-1 Plugin Submit pull requests for others when I can!
  • 3. What We Will Cover VPC S3 ElasticWolf sshoogr and gramazon Grails Plugins Elastic Load Balancers Autoscaling Others misc tips
  • 4. VPC - Virtual Private Cloud Routing NAT ACL Firewall Suggested Subnets Security Groups DHCP Tips Others misc tips
  • 5. VPC Overview Now required on new AWS accounts Very different that EC2 'Classic' which has no private network layer Costs nothing extra - you have nothing to lose
  • 8. VPC - Routing/Subnets adding a 3rd subnet - this gives a helping hand auto-scaling instances can access internet through NAT Web Servers, Web facing apps can live behind ELB yet be able to run OS updates S3 Buckets accessible can access your secure subnet as well
  • 13. VPC - Routing/Subnets Security ACLs ACLs like a full firewall - unlike groups Protect subnets instead of EC2 instances Processed in order of rule # ACLs are stateless - responses to inbound bound by outbound rules To accommodate various clients and OSs open ephemeral ports 1024- 65535 then block malicous ports
  • 14. VPC - Routing/Subnets Security Groups VPC Security Groups are different than EC2 Groups - use different and descriptive names if both used You can use a security group ID (starting with sgXXXXX) in most places where IPs can be entered Processed in order of rule # ACLs are stateless - responses to inbound bound by outbound rules To accommodate various clients and OSs open ephemeral ports 1024- 65535 then block malicous ports
  • 15. VPC - Routing/Subnets DHCP Options Determine What DNS DHCP clients use Can do things like set default domain, whether to use internal or external DNS for your VPC From Web UI, assign only 1 option set at a time Using amazon provided DNS, using naming scheme of 10.0.1.x, default domain ec2.internal Can assign your own DNS server names, or even Netbios name servers or NTP servers Options are semicolor delimited name value pairs, i.e. 'domain- name=something.com; domain-name-severs=AmazonProvidedDNSs
  • 16. VPC - IAM Roles Don't use root account anymore. Traditional security page is retired Set up your IAM roles for each user and use designated login url they give you Use resource level security with IAM to tier access to instances/resources
  • 17. VPC - Misc EC2 Tips Reboot != Reboot be careful Rebooting a machine from console will keep instance in place and ephemeral storage(OS reboot faster) If you issue an 'stop' command you machine will move and lose ephemeral state
  • 18. VPC - Misc EC2 Tips VPN Use OpenVPN instead of metered AWS VPN - it runs fine on a tiny instance- save $$ Use OpenVPN client to leave remote servers connected to VPC - it auto-reconnects
  • 19. VPC - Misc EC2 Tips Load Balancer 60s timeout on idle max - can file ticket for extension to 15+ minutes Use Haproxy for anything very advanced, can accommodate many options
  • 20. VPC - Misc EC2 Tips EBS Based Instances Use EBS backed instances for anything not build for cloud If you can build server on the fly with Chef/Puppet like tools, go for ephemeral based EBS backed instances have no swap by default - be sure to specify ephemeral disks on launch, use as swap EBS backed instances have no ephemeral disks on by default be sure to use them on launch of instance and AMIs
  • 21. S3 Storage Limitations Common tools Regions with different functionality Glacier Grails S3 Plugin
  • 22. S3 Storage Limitations - Eventual Consistency This means after write/update it will EVENTUALLY be consistent Make your app retry on read fail - it might not be synced yet Different regions have different consistency rules US-West and EU Buckets have read after write consistency - but not update or delete (and cost more) US-East is so large it cannot handle any kind of consistency after write/update/delete - except patience!
  • 23. S3 Storage Limitations - large files Files over 5GB supported, but most tools don't handle properly S3 Tools must support mime/multipart s3cmd(Linux) / CyberDuck 4(Mac/Win32) / S3 Browser(Win32) / Cloudberry Explorer(PRO Win32) / Bucket Explorer File > 5GB files work with these tools, it is EXTREMELY slow
  • 24. S3 Storage Tools s3fs - mount as filesystem - but >5GB files broken, beware of consistency! Make sure FUSE is in kernel s3cmd is best free command line tools Bucket Explorer & CloudBerry Backup are good solid windows clients that parallelize multi-part uploads to ease the pain s3 Browser is ok free tool For install on Ubuntu: http://zentraal.com/docs/installing-s3fs-on- ubuntu/
  • 25. S3 Storage Different Function Between Different Regions US-East-1 Cheapest for full redundancy otherwise to save $ you can use RRS (Or Glacier) US-West and EU Buckets have read after write consistency - but not update or delete (and cost more) US-East is so large it cannot handle any kind of consistency after write/update/delete - except patience! Barring these limitations (and budget!), use the region closed to your VPC instances and regions
  • 26. S3 Storage Grails S3 Plugin Looks unmaintained, but still works fine on latest Grails versions (no JIRA bugs pending!) Delete Buckets (See ) Uploads and catalogs assets (will use bucket name you give as base for its bucket name) Names files inside bucket with UUIDs to avoid collisions Can give each asset a bucket and key pair or global Demo - s3-demo project org.grails.s3.BucketService
  • 27. General AWS Grails Plugins Grails AWS Plugin AWS SDK Plugin DynamoDB GORM Plugin - not covered Amazon Flexible Payments - not covered SimpleDB GORM Plugin - not convered CDN Asset Pipeline plugin - not covered
  • 28. General AWS Grails Plugins - Grails AWS Plugin Actual Groovy/Grails Code to Manage S3 storage and SES Service (vs Java wrapper)
  • 29. General AWS Grails Plugins - Grails AWS Plugin Has handy Gant scripts installed - used for SES stats Aws-Ses-Get-Send-Quota Aws-Sws-Get-Send-Statistics Aws-Ses-List-Verified-Emails Aws-Ses-Send-Ping-Mail Aws-Ses-Verify-Email
  • 30. General AWS Grails Plugins - Grails AWS Plugin Aws-Ses-Get-Send-Quota Gets your current Quota for Simple Email Service Shows email limit per day, per second, # of emails Output looks like this: [AWS SES] The maximum number of emails the user is allowed to send in a 24-hour interval: 10000.0 [AWS SES] The maximum number of emails the user is allowed to send per second: 5.0 [AWS SES] The number of emails sent during the previous 24 hours: 15.0
  • 31. General AWS Grails Plugins - Grails AWS Plugin Aws-Sws-Get-Send-Statistics Gets your email sending statistics The output is a list of items, for the last two weeks of sending activity. Example output: [AWS SES] ------------------------------------------------------------------------------- [AWS SES] | time range | attemps | rejects (SES) | complaints (recipient) | bounces | [AWS SES] |-------------------------------------------------------------------------------| [AWS SES] | 2013/06/26 22:42 | 1 | 0 | 0 | 0 |
  • 32. General AWS Grails Plugins - Grails AWS Plugin aws-ses-list-verified-emails Shows a list of all verified emails with The output is a list of emails authorized to send email FROM Example output: [AWS SES] 1) support@reachforce.com
  • 33. General AWS Grails Plugins - Grails AWS Plugin aws-ses-send-ping-mail Script will verify a given email has been 'verified' by Amazon
  • 34. General AWS Grails Plugins - Grails AWS Plugin aws-ses-verify-email Script will submit an email for verification to amazon, and send an email to that address
  • 35. General AWS Grails Plugins - Grails AWS Plugin aws-ses-verify-email Script will submit an email for verification to amazon, and send an email to that address
  • 36. General AWS Grails Plugins - Grails AWS Plugin S3 File Management Demo
  • 37. General AWS Grails Plugins - Grails AWS Plugin S3 File Management Handy for storing existing assets into S3 Convert local File to S3 Storage def s3file = new File("/tmp/test.txt").s3upload { path "folder/to/my/file/" } Upload directly from Stream: def file = request.getFile('photo') def uploadedFile = file.inputStream.s3upload(file.originalFilename) { bucket "file-upload- from-inputstream" }
  • 38. General AWS Grails Plugins - Grails AWS Plugin SES Management AFAIK skip this - the mail plugin handles all of this // settings for mail plugin to work with SES grails { mail { host = "email- smtp.us-east-1.amazonaws.com" port = 25 username = "SESUsername" password = "SESPassword" props = ["mail.smtp.starttls.enable":"true", "mail.smtp.port":"587","mail.debug":"true","mail.smtp.auth":"true"] // uncomment to force all emails to one address // grails.mail.overrideAddress="test@address.com" grails.mail.default.from = "support@reachforce.com" } }
  • 39. General AWS Grails Plugins - AWS SDK Plugin Wrapper for AWS Java SDK This is the one to use for most powerful work of services - can access almost all of AWS services that JDK supports Uses AWS Web Service API wrapped in a Java Library Error handing can be more difficult than using web service api directly
  • 40. General AWS Grails Plugins - AWS SDK Plugin Services Supported EC2 - ELB,CloudWatch, Elastic Beanstalk RDS - Elastic Mapreduce, SDB, Dynamo, Redshift, SimpleDB S3/Glacier SES (us-east-1,us-west-2,eu-west-1 only) SQS, SWF CloudFormation,CloudFront Elastic Beanstalk, Transcoder, Opsworks(Old Chef) Cloudformation, CloudSearch, Elasticache
  • 41. General AWS Grails Plugins - AWS SDK Plugin EC2 Grails service wrapper is 'amazonWebService' Call amazonWebService.ec2. - for default region, call amazonWebService.getEc2('region'). for others RunInstancesRequest class defines parameters to launch an instance (It seems picky about nulls) use amazonWebService.runInstances() to start instances Complete docs at: http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/
  • 42. General AWS Grails Plugins - AWS SDK Plugin RDS Not sure why you would spin up entire databases, but you can! Most practical use would be to automate snapshots of the database If you have a small simple database, service is good Cannot start/top RDS instances, and pay premium to use their licenses if using commercial DBs If you have the skill or have large DB requirements, set up your own database - there is probably an AMI for it Has good multi-az failover (but pricey!) with PIOPS EBS Volumes (You can raid your own PIOPS drives!)
  • 43. General AWS Grails Plugins - AWS SDK Plugin S3 manage buckets, upload/download and delete files Transfer Manager - handles multipart uploads (big files, batch, fast!) full docs here: http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/s summary.html
  • 44. General AWS Grails Plugins - AWS SDK Plugin Glacier cold storage for data - not immediately available on demand vaults - organize your archives and policies (where your files go) Upload files via amazonWebService.glacier.uploadArchive(UploadArchiveRequest uploadArchiveRequest) or UploadMultiPart Files are retrieved via 'initiateJob' Call 'listJobs' until your job is done. Can use Amazon SNS to notify you when jobs are complete When done get files from your vault via GetJobOutput
  • 45. General AWS Grails Plugins - AWS SDK Plugin Glacier
  • 46. General AWS Grails Plugins - AWS SDK Plugin SQS Simple queue service Create / Delete Queues Receive Message Can also assign permissions and batch messages Messages can remain in queue for 12 hours
  • 47. ElasticWolf More powerful than web console gui Can control things like auto-scaling Created partly for new GovCloud because they had no UI at all initially Managed by sales organization instead of IT Actively Maintained on Github
  • 49. sshoogr and gramazon sshoogr - Groovy-based DSL library for working with remote servers through SSH - DSL Allows: connecting executing remote commands copying files and directories creating tunnels in a simple and concise way gradle plugin also for project very active (last commit 1 month ago) gramazon - Groovy based API for Amazon EC2 interface library that can be used to interact with the Amazon EC2 system and control server resources on demand from your Groovy scripts or from Gradle, using a plug-in.> uses gradle to run commands maybe could be used as basis for a groovy version of chef or puppet? project very active (last commit 1 month ago) gradle project template available as well as 'gradle-ssh-plugin' Repos for these: https://github.com/aestasit/sshoogr and https://github.com/aestasit/gramazon-gradle
  • 50. Autoscaling Overview Autoscaling can be used for fault-tolernance (min 1) Most efficient user of instance Set Policies using templates for how more servers created/terminated Control Spot instance bit price You app must be able to handle 'sudden death' Make sure your debug your AMI BEFORE adding to a autoscale group (debugging failed autoscaled instances is no way to go through life son!)
  • 51. Autoscaling Setup Step 1: Create Launch Config(Just like launching instance but a template) Step 2: Create Autoscale Group Step 3: Create Policies Demo with ElasticWolf (can use web console now too)
  • 52. Elastic Beanstalk Finally a good solution to push your application to Elastic Beanstalk on Grails! Ken Liu now has first class citizen support in Grails for Elastic Beanstalk! Easy to set up and configure, just add keys and params to Config.groovy Use command 'aws-eb-deploy' and 'aws-eb-stop' - that's it! Detailed online manual available at http://kenliu.net/grails-elastic- beanstalk/manual.html
  • 53. Useful resources Elastic Beanstalk plugin by Ken Liu: http://grails.org/plugin/aws-elastic- beanstalk Elastic Beanstalk Intro @ Bobby Warner's Blog: http://www.bobbywarner.com/2011/10/14/grails-on-aws/ Another Beanstalk: http://malderhout.wordpress.com/2011/02/18/deploy-grails-apps-in- 3-simple-steps-to-amazon-beanstalk/ Sample Beanstalk app: https://github.com/4np/grailsOnAWS Oracle, EBS, and other Tips from AWS Architect Tom Laszewski http://cloudconclave.blogspot.com/ Building an S3 Browser in Grails http://aws.amazon.com/articles/Amazon-S3/4000