This reference architecture creates an AWS Service Catalog Portfolio called "Service Catalog Elastic Beanstalk Reference Architecture" with one associated product. The Service Catalog product references a CloudFormation template that deploys a web application bundle to a new Elastic Beanstalk environment. The environment is a load balanced auto scaling cluaster. The template provides parameters for the user to control the autoscaling group. To launch the environment, the user provides basic information such as the web application name, the name of the S3 bucket where the web application is stored, and the name of the Elastic Beanstalk solution stack that the application will run on. A list of available Solution Stacks can be found here: https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html
Get a list of Solution Stacks from the AWS CLI with this command:
aws elasticbeanstalk list-available-solution-stacks
See the blog about this solution: Standardizing CI/CD pipelines for .NET web applications with AWS Service Catalog
Launch the Elastic Beanstalk portfolio stack:
Be aware, running this service as demonstrated here is non-SSL http. In production you must protect all web traffic with SSL.
The example templates here cannot create and manage SSL for you, so it must be done as an additional task in your account.
- clone this git repo:
git clone [email protected]:aws-samples/aws-service-catalog-reference-architectures.git
- Copy everything in the repo to an S3 bucket:
cd aws-service-catalog-reference-architectures
aws s3 cp . s3://[YOUR-BUCKET-NAME-HERE] --exclude "*" --include "*.json" --include "*.yml" --recursive
- In the AWS CloudFormation console choose "Create Stack" and supply the Portfolio S3 url:
https://s3.amazonaws.com/[YOUR-BUCKET-NAME-HERE]/elasticbeanstalk/sc-portfolio-elasticbeanstalk.json
- Set the LinkedRole1 and LinkedRole2 parameters to any additional end user roles you may want to link to the Portfolio.
- Set the CreateEndUsers parameter to No if you have already run a Portfolio stack from this repo (ServiceCatalogEndusers already exists).
- Change the RepoRootURL parameter to your bucket's root url:
https://s3.amazonaws.com/[YOUR-BUCKET-NAME-HERE]/