ecs-refarch-cloudformation
cdk-django
Our great sponsors
ecs-refarch-cloudformation | cdk-django | |
---|---|---|
5 | 10 | |
1,675 | 46 | |
- | - | |
0.0 | 5.1 | |
9 months ago | 5 days ago | |
Makefile | TypeScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ecs-refarch-cloudformation
-
My Infrastructure as Code Rosetta Stone - Deploying the same web application on AWS ECS Fargate with CDK, Terraform and Pulumi
I first started out with IaC following this project aws-samples/ecs-refarch-cloudformation (which is pretty old at this point) and wrote a lot of CloudFormation by hand. The pain of doing that lead me to explore the CDK with Python. I learned TypeScript by rewriting the Python CDK code I wrote in TypeScript. I later worked with a team that was more experienced in Terraform and learned how to use that. I feel like Pulumi takes the best of the two tools and has a really great developer experience. There is a little bit of a learning curve with Pulumi, and you give up some of the simplicity of Terraform.
-
Daisy-chaining CloudFormation templates together
Yes, deploy them as nested stacks inside a parent template. You can reference outputs via !GetAtt NestedStackX.Outputs.OutputName. see this repo for an example https://github.com/aws-samples/ecs-refarch-cloudformation
-
My approach to building ad hoc developer environments using AWS ECS, Terraform and GitHub Actions (article link and diagram description in comments)
Sure. My IaC journey actually started out with CloudFormation, and I learned a lot from this reference project: aws-samples/ecs-refarch-cloudformation. Then I picked up CDK when that became available and migrated a project from CloudFormation to CDK. It sounded like a nicer way to handle stacks in a familiar language with lots great one-liners and utility functions and constructs, and it definitely is. I have a similar project written in CDK that is an application/framework-first (Django) approach to learning and doing IaC that you can find here: https://github.com/briancaffey/django-cdk. This implements both ECS and EKS, but my attempts at learning EKS sort of fizzled out for now as I don't have the need to use it, and for the task at hand (running a monolithic Django application on AWS) I think ECS makes a LOT more sense.
-
Docker Hosting
I'm mostly using just EC2 instances running Docker Engine and Docker Compose (with configs and Compose projects in Git), but I'm starting to use CloudFormation and ECS more. I've taken a lot of inspiration from https://github.com/aws-samples/aws-refarch-shibboleth, https://github.com/awslabs/ecs-refarch-continuous-deployment, and https://github.com/aws-samples/ecs-refarch-cloudformation. At some point in the future, I plan to refactor my CloudFormation/ECS deployments into something more cloud agnostic using Terraform/Kubernetes.
-
Best way to deploy docker compose to AWS ECS?
If you need more options that is provided the Docker/ECS tool listed above you can roll your own using CloudFormation (the AWS deployment scripting tool). There's a good starter here.
cdk-django
-
My Infrastructure as Code Rosetta Stone - Deploying the same Django application on AWS ECS Fargate with CDK, Terraform and Pulumi
cdk-django
-
My Infrastructure as Code Rosetta Stone - Deploying the same web application on AWS ECS Fargate with CDK, Terraform and Pulumi
CDK Construct Library: github.com/briancaffey/cdk-django
-
Django AWS CDK deployment
- Another aspect of my approach that I prefer over the other one is using a high-level construct that you publish and then consume in your project. This requires that you write a construct in TypeScript and then publish it to npm or PyPI. I'm working on a construct library for deploying Django apps with CDK called djagno-cdk, and one of the constructs in it uses ECS Fargate: https://github.com/briancaffey/django-cdk/blob/main/src/django-ecs.ts. Ideally you don't have everything in a single construct though, so I like how Mariano is doing that in his project. My Terraform project does a better job at separating layers of the application, so I need to apply that same principle to django-cdk when I get around to working on that project again.
-
My approach to building ad hoc developer environments using AWS ECS, Terraform and GitHub Actions (article link and diagram description in comments)
Sure. My IaC journey actually started out with CloudFormation, and I learned a lot from this reference project: aws-samples/ecs-refarch-cloudformation. Then I picked up CDK when that became available and migrated a project from CloudFormation to CDK. It sounded like a nicer way to handle stacks in a familiar language with lots great one-liners and utility functions and constructs, and it definitely is. I have a similar project written in CDK that is an application/framework-first (Django) approach to learning and doing IaC that you can find here: https://github.com/briancaffey/django-cdk. This implements both ECS and EKS, but my attempts at learning EKS sort of fizzled out for now as I don't have the need to use it, and for the task at hand (running a monolithic Django application on AWS) I think ECS makes a LOT more sense.
-
Basic questions about Django app deployment on AWS
I have an example of doing this here, and I posted about this earlier on this sub https://www.reddit.com/r/django/comments/rj7sj2/deploying_django_applications_to_a_singlenode/
-
Deploying Django applications to a single-node docker swarm cluster on EC2 with AWS Cloud Development Kit (CDK) and GitHub Actions (description, repo links + full article in comments)
I'm not sure what you mean by "architecture", and I'm not sure what is wrong with trying to save money while learning how to do IaC and CI/CD. My thinking is that I can use some of what I learned here in a more robust setup of a Django app that uses ECS, I'm working on that here: https://github.com/briancaffey/django-cdk/blob/main/src/django-ecs.ts.
-
Any examples of custom ecs constructs which builds on the top of ecs patterns
Here is on that I’m working on: https://github.com/briancaffey/django-cdk
-
Ask r/kubernetes: What are you working on this week?
Here's a link to the repo: https://github.com/briancaffey/django-cdk. This library currently offers high level constructs for EKS as well as ECS. I have previously used ECS for most of the containerized web apps I have worked with, so I'm hoping to use this as a way to compare the two orchestration tools for my use case and gather some best practices. This project includes a companion repo that is included as a git submodule that I have been to do live tests/deployments using my construct library.
What are some alternatives?
django-step-by-step - A Django + Vue reference project that focuses on developer tooling and CI/CD + IaC
aws-cdk - The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code
aws-refarch-shibboleth - Containerized version of the Shibboleth IdP running on AWS with AWS Secrets Manager and AWS CodePipeline integrations. You can submit feedback & requests for changes by submitting issues in this repo or by making proposed changes & submitting a pull request.
pulumi-quickstart - Pulumi best practices
projen - Rapidly build modern applications with advanced configuration management
preview-environments - Quickly create temporary preview environments
ecs-refarch-continuous-deployment - ECS Reference Architecture for creating a flexible and scalable deployment pipeline to Amazon ECS using AWS CodePipeline
knboard - Kanban boards with React & Django.
pulumi-aws-django - A Pulumi package for deploying Django applications to AWS using ECS Fargate and other managed services
actions - A collection of GitHub Actions to run Pluralith in CI and automate infrastructure documentation generation
ctk - Visual composer for container based workloads