Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(typescript): Add new CDK example demonstrating AWS CodePipeline based CICD setup for ECS-Fargate and Lambda for code sourced from Github #820

Open
1 of 2 tasks
nimblewish opened this issue Mar 23, 2023 · 1 comment
Labels
effort/large Large work item – several weeks of effort feature-request A feature should be added or improved. language/typescript Related to Typescript examples

Comments

@nimblewish
Copy link

Describe the feature

A CDK example demonstrating AWS CodePipeline based CICD setup for ECS-Fargate and Lambda for code sourced from Github.

Use Case

Start-ups typically begin with a monolithic design running on bare-bones EC2. After a certain scale they try to move to Cloud-native solutions on AWS. Currently there is no readily available solution for this problem.
This CDK package serves as the production-grade template/boilerplate required to setup resources required to enable this smoothly.

Proposed Solution

A CDK package that serves as the production-grade template/boilerplate required to setup following resources on a high-level:

  1. CICD pipeline using AWS CodePipeline
  2. Lambdas (both - async triggered and rest endpoint behind API-GW)
  3. ECS Fargate based service. Source code lies in a private Github repo - it is pulled, containerised using docker and image is pushed to an ECR repo. ECS Service deploys the latest built image.
  4. Referencing manually created VPCs, and RDS instances
  5. Secrets stored in AWS SecretManager
  6. Cloudwatch Dashboards, Metrics and Alarms
  7. SQS, SNS, EventBridge (MessageBus, Rules, and Targets)

The code is neatly organised into various stacks on basis of the class of services they create which makes it easy to remove whatever infrastructure isn't needed. For instance - you can comment out the stack instantiation from lib/pipeline-stage.ts.

There are six stacks -

  1. VpcStack - for network infra related resources
  2. DataStoresStack - for databases
  3. PubSubStack - for events based infra
  4. AsyncLambdasStack - async triggered lambdas
  5. LambdaApisStack - lambdas as rest endpoints behind API Gateway
  6. EcsFargateStack - ECS Fargate Service, Cluster, Tasks and Containers.

Other Information

Refer to README.md for Dev Guide.

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Language

Typescript

@nimblewish nimblewish added feature-request A feature should be added or improved. needs-triage This issue or PR still needs to be triaged. labels Mar 23, 2023
@kaiz-io kaiz-io added language/typescript Related to Typescript examples effort/large Large work item – several weeks of effort and removed needs-triage This issue or PR still needs to be triaged. labels Oct 24, 2023
@mrlikl
Copy link
Contributor

mrlikl commented May 30, 2024

I am working on this FR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
effort/large Large work item – several weeks of effort feature-request A feature should be added or improved. language/typescript Related to Typescript examples
Projects
None yet
Development

No branches or pull requests

3 participants