This solution demonstrates multiple best-practices for deploying a PHP web application using AWS CodeDeploy.
This application is deployed using AWS CloudFormation.
- GitHubRepo
- GitHubBranch
- GitHubToken (never commit this value)
- GitHubUser
This solution require Shared Resource stack to be deployed as primary stack, then Applicaiton stack.
Stacks | Deploy |
---|---|
Shared Resources | |
Application |
This application will be deployed on EC2 Autoscaling Group nodes working behind an Application Load Balancer. It can be used as an example application in a workshop, with multiple stacks in the same account.
Create shared resources (create once):
aws cloudformation deploy --stack-name ghc-workshop-shared-resources --template-file cloudformation_templates/shared_resources.yml --capabilities CAPABILITY_NAMED_IAM --parameter-overrides WorkshopName="ghc-workshop"
Create website resources (can create multiple stacks for a workshop):
aws cloudformation deploy --stack-name ghc-workshop-application-1 --template-file cloudformation_templates/application.yml --parameter-overrides SharedResourceStack="ghc-workshop-shared-resources"
Go to the CodePipeline console:
https://console.aws.amazon.com/codesuite/codepipeline/pipelines
Once the deployment completes, go to the application URL:
aws cloudformation describe-stacks --stack-name ghc-workshop-application-1 --query 'Stacks[0].Outputs[?OutputKey==`Url`].OutputValue' --output text
- Delete S3 objects for CodeSuite before deleting CloudFormation stacks
- Delete Stacks:
aws cloudformation delete-stack --stack-name ghc-workshop-shared-resources
aws cloudformation delete-stack --stack-name ghc-workshop-application-1
- Based on React Trivia
- Grace Hopper clip art by gingercoons
- Based on grace-hopper-jeopardy
This library is licensed under the MIT License.