Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xsalazar/terraform-aws-docker-deploy

🍳 This repository holds simple boilerplate code to deploy a basic Typescript API application within a Fargate-managed ECS cluster. This repository also leverages GitHub Actions to lay the CI/CD groundwork to automatically deploy application changes to ECR and redeploy the ECS cluster with updates.
https://github.com/xsalazar/terraform-aws-docker-deploy

aws docker ecs fargate github-actions terraform typescript

Last synced: 3 days ago
JSON representation

🍳 This repository holds simple boilerplate code to deploy a basic Typescript API application within a Fargate-managed ECS cluster. This repository also leverages GitHub Actions to lay the CI/CD groundwork to automatically deploy application changes to ECR and redeploy the ECS cluster with updates.

Awesome Lists containing this project

README

        

# Terraform/AWS Docker Deploy to Fargate

This repository holds simple boilerplate code to deploy a basic Typescript API application within a Fargate-managed ECS cluster.
This repository also leverages GitHub Actions to lay the CI/CD groundwork to automatically deploy application changes to ECR and redeploy the ECS cluster with updates.

## Installation

### Application

The Typescript application code lives in the [`app/`](app/) subdirectory. This application is built using `node` v18.

```bash
cd app/
npm install && npm start
```

### Infrastructure

The required `terraform` version for this repository is v1.1.2. The architecture built from this code is below.

![](assets/architecture/architecture.svg)

## Usage

This repository is meant to be managed through GitHub Action as the main CI/CD pipeline.

The initial bootstrapping should be done by running the [bootstrap](.github/workflows/bootstrap.yml) workflow. This will initialize the ECR registry, push the initial Docker image, and then apply the remaining infrastructure, deploying the Docker image to ECS.

Subsequent changes can be applied by running the [push_to_ecr](.github/workflows/push_to_ecr.yml) workflow.