App-FargateStack
view release on metacpan or search on metacpan
* [Warning: task placed in a public subnet](#warning-task-placed-in-a-public-subnet)
* [Why this matters](#why-this-matters)
* [Recommended pattern](#recommended-pattern)
* [When is a public subnet acceptable?](#when-is-a-public-subnet-acceptable)
* [Note on image pulls](#note-on-image-pulls)
* [My task fails with this message:](#my-task-fails-with-this-message)
* [Common causes](#common-causes)
* [How to fix it](#how-to-fix-it)
* [Note on Subnet Selection](#note-on-subnet-selection)
* [My task failed to start and the reason is unclear](#my-task-failed-to-start-and-the-reason-is-unclear)
* [The Solution: Finding the `stoppedReason`](#the-solution-finding-the-stoppedreason)
* [Why is my task or service still using an old image?](#why-is-my-task-or-service-still-using-an-old-image)
* [One-off tasks: `run-task` uses a fixed image digest](#one-off-tasks-run-task-uses-a-fixed-image-digest)
* [Services: `create-service` and `update-service` use frozen images too](#services-create-service-and-update-service-use-frozen-images-too)
* [`--force-new-deployment` re-pulls image tags (if not pinned by digest)](#--force-new-deployment-re-pulls-image-tags-if-not-pinned-by-digest)
* [Confirm what your task definition is using](#confirm-what-your-task-definition-is-using)
* [Best practices](#best-practices)
* [ROADMAP](#roadmap)
* [SEE ALSO](#see-also)
* [AUTHOR](#author)
* [LICENSE](#license)
* [POD ERRORS](#pod-errors)
---
[Back to Table of Contents](#table-of-contents)
# NAME
App::FargateStack
[Back to Table of Contents](#table-of-contents)
# SYNOPSIS
# Dry-run and analyze the configuration
app-FargateStack plan -c my-stack.yml
# Provision the full stack
app-FargateStack apply -c my-stack.yml
[Back to Table of Contents](#table-of-contents)
# DESCRIPTION
**App::FargateStack** is a lightweight deployment framework for Amazon
ECS on Fargate. It enables you to define and launch containerized
services with minimal AWS-specific knowledge and virtually no
boilerplate. Designed to simplify cloud infrastructure without
sacrificing flexibility, the framework lets you declaratively specify
tasks, IAM roles, log groups, secrets, and networking in a concise
YAML configuration.
By automating the orchestration of ALBs, security groups, EFS mounts,
CloudWatch logs, and scheduled or daemon tasks, **App::FargateStack**
reduces the friction of getting secure, production-grade workloads
running in AWS. You supply a config file, and the tool intelligently
discovers or provisions required resources.
It supports common service types such as HTTP, HTTPS, daemon, and cron
tasks, and handles resource scoping, role-based access, and health
checks behind the scenes. It assumes a reasonable AWS account layout
and defaults, but gives you escape hatches where needed.
**App::FargateStack** is ideal for developers who want the power of ECS
and Fargate without diving into the deep end of Terraform,
CloudFormation, or the AWS Console.
## Current Status of App::FargateStack
_This is a work in progress._ Versions prior to 1.1.0 are considered usable
but may still contain issues related to edge cases or uncommon configuration
combinations.
This documentation corresponds to version 1.0.50.
The release of version _1.1.0_ will mark the first production-ready release.
Until then, you're encouraged to try it out and provide feedback. Issues or
feature requests can be submitted via
[GitHub](https://github.com/rlauer6/App-FargateStack/issues).
## Caveats
- The documentation may be incomplete or inaccurate.
- Features may change, and new ones will be added. See the
["ROADMAP"](#roadmap) for details.
- Deploying resources using this framework may result in AWS charges.
- This software is provided "as is", without warranty of any kind.
Use at your own risk.
## Features
- Minimal configuration: launch a Fargate service with just a task name
and container image
- Supports multiple task types: HTTP, HTTPS, daemon, cron (scheduled)
- Automatic resource provisioning: IAM roles, log groups, target groups,
listeners, etc.
- Discovers and reuses existing AWS resources when available (e.g.,
VPCs, subnets, ALBs)
- Secret injection from AWS Secrets Manager
- CloudWatch log integration with configurable retention
- Optional EFS volume support (per-task configuration)
- Public or private service deployment (via ALB in public subnet or
internal-only)
- Built-in service health check integration
- Automatic IAM role and policy generation based on configured resources
- Optional HTTPS support with ACM certificate discovery and creation
- Optional support for adding AWS WAF support for your HTTPS site
- Lightweight dependency stack: Perl, AWS CLI, a few CPAN modules
- Convenient CLI: start, stop, update, and tail logs for any service
- Scheduled and metric based autoscaling
[Back to Table of Contents](#table-of-contents)
# METHODS AND SUBROUTINES
This class is implemented as a modulino and is not designed for traditional
object-oriented use. As such, this section is intentionally omitted.
[Back to Table of Contents](#table-of-contents)
# USAGE
( run in 0.374 second using v1.01-cache-2.11-cpan-df04353d9ac )