code for article pfeilbr/aws-copilot-playground
learn AWS Copilot CLI
- load balanced web service
- backend service - isolated to private VPC that is accessible to frontend web app (load balanced web service)
- scheduled job
- Application - a group of related services, environments, and pipelines
- Environments - environment can have its own version of a service running allowing you to create a “test” and “production” environment
- Service - your code and all of the supporting infrastructure needed to get it up and running on AWS
- Jobs - ephemeral ECS tasks that are triggered by an event. uses CloudWatch’s rate expressions. Scheduled Jobs are composed of an AmazonECS Task Definition, Task Role, Task Execution Role, a Step Function State Machine for retrying on failures, and finally an Event Rule to trigger the state machine.
- Pipelines - release pipeline that deploys your service whenever you push to your git repository. (At this time, Copilot supports GitHub, Bitbucket, and CodeCommit repositories.) When a push is detected, your pipeline will build your service, push the image to ECR, and deploy to your environments.
- copilot cli automatically creates thw following stacks
- similar dev workflow to Elastic Beanstalk (eb), Cloud Foundry (cf), heroku.
Files and Directories
copilot/- copilot working directory
- copilot/aws-copilot-playground-nginx/manifest.yml - manifest file generated by copilot
# copilot does not allow use of root account. # copilot will use `AWS_PROFILE` setting export AWS_PROFILE=admin copilot init copilot deploy copilot app show copilot svc ls # create new service (web, backend, scheduled) copilot svc init copilot svc show copilot svc logs # delete all resources / stack(s) copilot app delete