GithubHelp home page GithubHelp logo

kirinnsan / ecs-blueprints Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aws-ia/ecs-blueprints

0.0 0.0 0.0 6.51 MB

Configure and deploy complete ECS solutions with Terraform or CDK

License: Apache License 2.0

Shell 1.69% JavaScript 8.56% Python 43.85% TypeScript 4.14% CSS 1.24% Makefile 0.01% HTML 0.23% Batchfile 0.11% HCL 35.02% Dockerfile 0.65% EJS 4.49%

ecs-blueprints's Introduction

Amazon ECS Blueprints

Welcome to Amazon ECS Blueprints!

When new users want to adopt containers to build, deploy, and run their applications, it often takes them several months to learn, setup, and realize container benefits. With Amazon Elastic Container Service (ECS) and AWS Fargate users don't need to manage any middleware, any EC2, or host OS. With ECS Solution Blueprints, we want new users to achieve benefits of container-based modernization in hours rather than months!

The blueprints are meant to give new users a jumpstart, and enable them to learn-by-doing. With blueprints we aspire to codify best practices, well-designed architecture patterns, and provide end-to-end solutions addressing CI/CD, observability, security, and cost efficiency.

We fully expect you to get started by copying the modules and examples but we do not expect you to maintain any conformity to this repository. In others words, we expect that you will adapt and extend the modules and examples code to suit your needs. If you feel your use cases and solutions will help other users, we encourage you to contribute your solutions to ECS Solution Blueprints.

Prerequisites

  • You can use AWS Cloud9 which has all the prerequisites preinstalled and skip to Quick Start
  • Mac (tested with OS version 12.+) and AWS Cloud9 Linux machines. We have not tested with Windows machines
  • IaC Tool
    • Terraform (tested version v1.3.7 on darwin_amd64)
    • AWS CDK (tested vision 2.70.+)
  • Git (tested version 2.27.0)
  • AWS CLI
  • AWS test account with administrator role access
  • Configure the AWS credentials on your machine ~/.aws/credentials. You need to use the following format:
[AWS_PROFILE_NAME]
aws_access_key_id = Replace_with_the_correct_access_Key
aws_secret_access_key = Replace_with_the_correct_secret_Key
  • Export the AWS profile name
export AWS_PROFILE=your_profile_name
  • You can also set the default region and output format in ~/.aws/config. Something like:
[default]
output = json
region = us-west-2

Quick Start for ECS Blueprints for Terraform

Please refer ECS Blueprints Workshop in detail.

  • Fork this repository.

  • Clone your forked repository to your laptop/Cloud9 VM.

git clone https://github.com/<your-repo>/ecs-blueprints.git
  • Start with core-infra to create cluster, VPC, and require IAM
cd ecs-blueprints/terraform/fargate-examples/core-infra/

terraform init
terraform plan
terraform apply --auto-approve
  • Now we can deploy a load balanced service along with CI/CD pipeline to the above cluster
cd ../lb-service
terraform init
terraform plan
terraform apply --auto-approve

You can use the ALB URL from terraform output to access the load balanced service. The above will give you a good understanding about the basics of ECS Fargate, and ECS service. You can use these as building blocks to create and deploy many ECS services. Next you can try other example blueprints.

Repository overview

This repository has 3 main folders

  • modules: Each module is a collection one or more resources that are used together to address specific needs. If you are going to contribue new modules, that is, commonly used group of resources, then put them in the modules folder.
  • examples (aka solution blueprints): This folder contains solution blueprints that are meant to address end-to-end requirements for specific scenarios. If you are looking to contribute new blueprints, put them in the examples folder.
  • application-code: These are just sample applications used in the examples. Currently, these applications are basic but we encourage contributing more real world applications that can help uncover specific aspects of containerized applications. For example, an application that can be used to test autoscaling, or an application that has long running sessions and would work better with blue/green deployments.

Support & Feedback

ECS Blueprints for Terraform is maintained by AWS Solution Architects. It is not part of an AWS service and support is provided best-effort by the ECS Blueprints community.

To post feedback, submit feature ideas, or report bugs, please use the Issues section of this GitHub repository.

For architectural details, step-by-step instructions, and customization options, see our documentation under each folder.

If you are interested in contributing to ECS Blueprints, see the Contribution guide.

Contributing

See CONTRIBUTING for more information.

Security

See CONTRIBUTING for more information.

ecs-blueprints's People

Contributors

arvindsoni80 avatar joozero avatar nvpnathan avatar dependabot[bot] avatar bryantbiggs avatar marinaburkhardt avatar jritsema avatar sfloresk avatar allamand avatar satveerkhurpa avatar manuelbcd avatar koorseaws avatar drewmullen avatar youngjeong46 avatar sushanthmangalore avatar didhd avatar msharma24 avatar ajpaws avatar jaymccon avatar dorukozturk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.