2. Problems to Solve
• Infrastructure as Code
• Logical Separation of Infra Code
• Simple and Readable Code
• Integration with AWS Services
• Integration with CI/CD Tools
• Ease of Deployment
• No Management of Underlying
Infrastructure
• Ease of Customization
3. Problems with MicroServices Deployments
• Too many deployments to Manage
• Additional Costs of Compute with Each Deployment
• Release with Compatible MicroService Versions
Service A v1
Service B v1
Service C v1
Development at
Unit Level
Versioning at
Integration and Unit
Level
Deployment at
Product Level
Service A v1
Service B v1
Service C v1
Product v1.3
Service A v1
Service B v1
Service C v1
Product v1.3
4. Network
• VPCs
• Subnets
• NACL
Solution with CloudFormation and ElasticBeanstalk
Product
Application Resources
• S3 Buckets
• SQS
• Application IAM Roles
• Application IAM
Policies
Service A
• Code
• JVM Startup Params
• ELB
• Auto Scaling Groups
• Deployment Policies
Service B
• Code
• JVM Startup Params
• ELB
• Auto Scaling Groups
• Deployment Policies
Database
• RDS
• DynamoDB
Security
• EC2 Keypairs
• AWS Certs
• Security Groups
6. Continuous Deployment with Environment Provisioning and Infra Code
CloudFormation
ChangeSets
Product Stack
Resources Service A Service B
Deployment
Orchestration
Tool
Invoking CF
7. What Features of CloudFormation and ElasticBeanstalk to Use
• Cross Referencing of Stacks – Use CloudFormation “Outputs” with “Export” and
“Import” – ( Refer - Cross Referencing )
• Nested Stacks – Use “Outputs” and Pass to other Template as Parameter with
“Stack.Outputs” – ( Refer - Nested Stacks )
• SSM Parameter Store is also a very good option to Utilize. – ( Refer - SSM Parameter
Store )
• EBExtensions – ( Refer - EB Extensions )
• Modifying ElasticBeanstalk Resources – ( Refer - Customizing with EB Extensions,
Customoizing Environment Resources )
• CloudFormation and ElasticBeanstalk – ( Refer - CF with ElasticBeanstalk,
ElasticBeanstalk Option Settings )
• AWS Custom Resources with Lambda – ( Refer - CloudFormation Custom Resources )
• CloudFormation ChangeSets – ( Refer - CloudFormation ChangeSets )