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 application will be deployed on EC2 Autoscaling Group nodes working behind an Application Load Balancer. Multiple stacks can be used in the same account.
Create shared resources (create once):
aws cloudformation deploy --stack-name php-shared --template-file cloudformation_templates/shared_resources.yml --capabilities CAPABILITY_NAMED_IAM --parameter-overrides WorkshopName="php"
Create website resources (can create multiple stacks for a workshop):
aws cloudformation deploy --stack-name php-main --template-file cloudformation_templates/application.yml --parameter-overrides SharedResourceStack="php-shared"
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 php-main --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 php-shared
aws cloudformation delete-stack --stack-name php-main
- Based on React Trivia
- Grace Hopper clip art by gingercoons
- Based on grace-hopper-jeopardy
This library is licensed under the MIT License.