AWS Fargate Deployment Track

Objective

Deploy the containerized microservices using AWS Fargate, demonstrating your skills in container orchestration, serverless computing, and AWS services.

Technical Requirements

  1. Infrastructure as Code (Terraform)

    • Provision a VPC with public and private subnets
    • Set up an ECS cluster with Fargate launch type
    • Configure necessary IAM roles and security groups
    • Set up an ECR repository for your container images
    • Create an Application Load Balancer
  2. Containerization

    • Create a Dockerfile for the microservices
    • Build and push the Docker image to ECR
  3. ECS/Fargate

    • Create ECS task definitions
    • Set up ECS services for your applications
  4. CI/CD (GitHub Actions)

    • Implement a workflow for Terraform (lint, plan, apply)
    • Create a workflow for building and pushing Docker images
    • Implement a workflow for deploying to ECS/Fargate
  5. Monitoring and Logging

    • Set up CloudWatch for container insights and application logging
    • (Bonus) Implement custom CloudWatch dashboards

Deliverables

  1. GitHub repository containing:

    • Terraform code
    • Dockerfiles
    • ECS task definitions
    • GitHub Actions workflows
    • Application code (provided microservices)
  2. Documentation:

    • Architecture diagram
    • Setup and deployment instructions
    • Monitoring and logging overview

Evaluation Criteria

  1. Fargate cluster configuration and security
  2. ECS task and service management
  3. CI/CD pipeline efficiency and reliability
  4. IaC quality and modularity
  5. Containerization best practices
  6. Monitoring and logging effectiveness
  7. Documentation clarity and completeness

Back to main page