docs(deploy): add genericized AWS Fargate reference deployment - #114
Merged
Conversation
Adds deploy/aws-ecs/ — a parameterized CloudFormation stack that runs the forkzero/s3proxy image on Fargate behind an ALB, with a task role scoped to s3:GetObject on the named bucket, /health checks, and CPU autoscaling. Nothing account-specific: VPC, subnets, and bucket are parameters; HTTPS (ACM cert) and a Route 53 alias are optional (single listener shaped by an `!If` on whether a certificate is supplied, HTTP/80 otherwise). Derived from the account-specific stack that previously lived in gmoon/s3proxy examples, with all hardcoded VPC/subnet/domain/region values removed and named IAM roles dropped so multiple stacks can coexist. Passes cfn-lint clean. README gets a "Deploy on AWS" section pointing at it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
deploy/aws-ecs/— a parameterized CloudFormation stack that runs theforkzero/s3proxyimage on AWS Fargate behind an ALB. This is the deployment story the README was missing (it stopped atdocker run+ "credentials come from the IAM task role" but never showed the deploy).What it provisions
ALB (+ SG) → listener → target group health-checked on
/health→ ECS cluster → Fargate service + task definition → task role scoped tos3:GetObjecton your bucket only → CloudWatch logs → CPU target-tracking autoscaling.Genericized — nothing account-specific
Derived from the account-specific stack that lived in
gmoon/s3proxy/examples/aws-ecs/, with every hardcoded value removed:CertificateArn→ HTTPS/443; otherwise HTTP/80. Implemented as a single listener shaped by!If(avoids a conditional-DependsOn).DomainName+HostedZoneName).awslogs-region→!Ref AWS::Region; ARNs use!Ref AWS::Partition.Verification
cfn-lintpasses clean (it caught, and I fixed, the conditional-DependsOnon the two-listener first draft).Docs
deploy/aws-ecs/README.md— deploy runbook (params table, HTTPS/DNS setup, a "try it againsts3proxy-public" walkthrough, update/teardown).Companion doc/cleanup PR in
gmoon/s3proxyadds a matching Deployment section and removes unrelated OTEL sample cruft from its examples.🤖 Generated with Claude Code