From a quick glance at your docs, it seems that you are mainly focussing on web facing applications.
From a quick glance at your docs, it seems that you are mainly focussing on web facing applications.
Our current modules support running Python jobs using Fargate/ECS and Lambda (using Docker containers or packaged zip files).
Today, it is possible to pause workloads by destroying the app (nullstone down --app=<app>). Obviously, that's not ideal and we do have plans to support pausing workloads to reduce costs.
Outside of the auto build/deploy process, we don't yet support ad-hoc docker builds.
This is by far the best way to deploy compute into AWS in containerized workloads.
The abstraction you want is Jobs: https://aws.github.io/copilot-cli/docs/concepts/jobs/
Building this any other way on AWS would require provisioning multiple artifacts. The Copilot Jobs abstraction basically encapsulates the provisioning of those artifacts into one repeatable pattern.
Fully extensible with CDK and CF if the out-of-the-box workload abstractions aren't enough or you need deeper customization. I have found that the OOB abstractions are "right-sized" for most common workloads and rarely require extension aside from occasionally IAM when integrating with other AWS services.
Essentially I'd like to build a docker image of code from a repository, and deploy and run it, and manage its lifecycle. Perhaps I could copy the CF template from the Copilot to do the same.
Presumably, you're running it based on some input. Jobs are the right paradigm if this input is periodic (for example, processing a batch of items in S3 every few hours).
Otherwise, you may want to consider a Worker: https://aws.github.io/copilot-cli/docs/concepts/services/#wo... which can be connected to an SQS queue and activated by publishing messages to the queue.
Lifecycle management is a matter of using the delete commands:
svc delete
job delete
env delete
app delete
To de-provision.https://aws.github.io/copilot-cli/docs/commands/app-delete/
Hope that helps!
We don't currently support the automatic pause of applications due to inactivity. However, we do support starting/stopping your app via the UI, API, or CLI.
To launch your application you would use the `nullstone up` command. To tear it down you would use the `nullstone down` command. To deploy your code, you would use the `nullstone launch`.
Each of these command are just making API calls under the hood. If you want to hop on our Slack channel, I'd be glad to share the details.