Runtime reference
Runtime operations
Use this guide after an app exists. It covers deployment operations, runtime configuration, networking controls, reserved IP behavior, and managed PostgreSQL.
01 / DEPLOYMENTS AND LIFECYCLE
Deploy an image and verify that it is serving traffic.
Purpose: build the configured repository, store the image in ECR, update the app instance, and confirm its public health check.
- 01Choose a deployment source
Open an app and select Deploy. Enter a branch or immutable Git ref. Use an immutable commit SHA when you need a reproducible release. Automatic deployments use the app's configured branch only when continuous deployment is enabled and the GitHub App can access the repository.
- 02Watch build and runtime state
Deployment history shows the build status. After a successful build, the container starts on the app instance. The app must bind to the configured port and respond with HTTP 2xx from
/. - 03Verify the release
Confirm deployment status
succeeded, then open the app hostname. Select Tail logs to refresh the latest 500 container lines every three seconds. Select Stop tail to retain the current snapshot, or Close to stop and remove it. Use the output to confirm the process started with the expected environment and did not exit after the health check. - 04Start, stop, or restart the runtime
Start creates or resumes the app instance. Stop shuts it down. Restart restarts the application container through the control plane. A stopped app can retain queued environment changes; it cannot receive a live container update until it is running.
02 / RUNTIME ENVIRONMENT
Store configuration without exposing secret values.
Purpose: set non-public runtime variables for the application container. Values are encrypted; the console records names and delivery state but does not reveal stored values.
- 01Add or replace a variable
Open the app, select Environment, enter the key and value, and save. Use a key format accepted by the application runtime, such as
DATABASE_URLorAPI_TOKEN. - 02Wait for delivery
For a running app, Astroscale writes the encrypted environment document and restarts or updates the runtime target as needed. For a stopped or transitioning app, the update stays queued until the target can accept it.
- 03Verify application behavior
Confirm that the variable reports delivered, then restart or deploy when the application reads settings only at process startup. Validate through the application health endpoint or logs; never validate by printing a secret.
- 04Remove an unneeded variable
Delete the key from Environment and confirm delivery. Re-deploy or restart if the application caches configuration at startup.
03 / NETWORKING
Open only the network path the application needs.
Purpose: retain HTTPS access through the managed proxy by default, then add narrowly scoped public or private rules when the architecture requires them.
Reserved public IP
- 01Enable or disable it in App configuration
Enable Reserved IP when a stable public IPv4 is required. Enablement checks the Regional Elastic IP quota before CloudFormation requests an address. Disable it when the app does not need a fixed address.
- 02Wait for the infrastructure transition
The app enters
transitioning. When disabling, Astroscale disassociates and releases the EIP to prevent an unused-address charge. When enabling, it associates the allocated address with the app instance. - 03Verify DNS after a non-reserved restart
Without an EIP, an EC2 stop/start can change the public IPv4 address. The control plane reconciles the Route 53 record after the app returns. Confirm the hostname, not a previously observed IP address.
Public ingress and private service routes
- 01Add public ingress only when required
Open Network controls and add the exact TCP port and IPv4 CIDR. Use the smallest CIDR possible. Ports
80and443remain owned by the managed HTTPS proxy and cannot be reassigned. - 02Create a private app-to-app route
Select a running source app and a running destination app in the same AWS account and Region. Astroscale creates a security-group rule that permits the source to reach the destination's internal listener on TCP
8080. - 03Configure the source application
Use the private hostname shown for the destination and connect to port
8080. Do not use the destination public hostname for an internal service dependency. - 04Remove access when the dependency ends
Delete the private route. Astroscale revokes the associated security-group rule. Deleting either app also removes managed private routes that reference it.
04 / MANAGED POSTGRESQL
Create, attach, rotate, and delete a database.
Purpose: create a private 5 GiB PostgreSQL RDS instance in the app's AWS account and Region, then deliver a protected DATABASE_URL to the attached app.
- The app and database use the same connected AWS account and Region.
- The app's regional foundation is healthy and the AWS onboarding role includes the managed database permissions.
- RDS service-linked role creation is allowed if the AWS account has not created it already.
- 01Create with a new app or attach later
In New app, enable managed PostgreSQL to create the app and database as one coordinated workflow. For an existing running app, open Managed PostgreSQL and choose Create database. The system waits until app networking is available before it creates RDS.
- 02Wait for database availability
RDS provisioning can take several minutes. The database status progresses through creation and environment delivery. Do not add a hand-written
DATABASE_URLwhile a managed attachment is being delivered. - 03Verify attachment
Confirm database status
availablewith the reasonDATABASE_URL has been delivered to the app environment. Then confirm the app has deployed or restarted and use application logs to verify it connected successfully. - 04Rotate credentials
Select Rotate credentials. Astroscale resets the RDS master password, updates the encrypted managed database credential, regenerates
DATABASE_URL, waits for RDS to apply the change, delivers the new value, and restarts the attached application. - 05Delete a database
Detach and delete it from Managed PostgreSQL only after the application no longer needs it. Verify the database's deletion state in the console and AWS RDS console. Deleting an app also starts the managed database cleanup path.
05 / FAILURE HANDLING
Collect the right evidence before retrying.
Most failures fall into one of three categories: AWS permissions or quotas, source/build failures, or overlapping infrastructure operations.
| Observed state | Likely cause | Safe next action |
|---|---|---|
| Provisioning failure | CloudFormation rejected a resource, permission, quota, or template operation. | Open Infrastructure history, expand Event details, correct the initiating AWS error, then retry creation. The failed app remains visible after AWS cleans up its stack. |
UPDATE_IN_PROGRESS | CloudFormation is applying an earlier change. | Wait for a terminal stack state. Do not submit another configuration update. |
| Elastic IP quota error | The Region has no allocatable EIPs. | Disable Reserved IP, release unused addresses, or request an AWS quota increase. |
| CodeConnection unavailable | GitHub OAuth consent is incomplete or the connection is in another Region/account. | Fix the connection in AWS, confirm Available, then attach its ARN. |
| Waiting for PostgreSQL delivery | RDS is still creating or the environment worker cannot write its target. | Check database status and the app's change events; correct the reported AWS permission before retrying. |
| Application health check fails | Container exits, listens on the wrong address/port, or / is not 2xx. | Read deployment logs, correct the Dockerfile or runtime configuration, then redeploy. |