Boring Data
Template: AWS+Iceberg
Template: AWS+Iceberg
  • Introduction
    • Overview
    • Key Concepts
    • Get Started
  • Project Structure
    • pipelines/
      • Ingestion: dlt + lambda
      • Transformation: dbt
    • base/aws/
    • live/
  • Guides
    • Add a New Pipeline
    • CI Deployment
  • Help
    • FAQ
Powered by GitBook
On this page
  • Overview
  • Quick Start
  • Key Features
  • Module Structure
  • Architecture
  • Requirements
  • Providers
  • Modules
  • Resources
  • Inputs
  • Outputs
  • Requirements
  • Providers
  • Modules
  • Resources
  • Inputs
  • Outputs
Edit on GitHub
  1. Project Structure

base/aws/

Overview

This Terraform module provisions the core AWS infrastructure needed for a data platform, including:

  • VPC with subnets

  • ECS cluster for containerized workloads

  • Secrets Manager for sensitive values

  • SSM Parameters for configuration

Quick Start

module "aws" {
  source      = "git::https://github.com/boringdata/boringdata-template-aws-iceberg.git//base/aws"
  environment = "dev"
  secrets     = {
    "api_key" = "your-secret-value"
  }
}

Key Features

  • Environment-based naming: All resources are prefixed with your environment name

  • Secure networking: Properly configured VPC with public and private subnets

  • Containerization: Ready-to-use ECS cluster for your workloads

  • Configuration management: Built-in secrets and parameters management

Module Structure

aws/
├── data.tf           # AWS region and availability zones
├── ecs_cluster.tf    # ECS cluster configuration
├── vpc.tf            # VPC and networking resources
├── secrets.tf        # AWS Secrets Manager resources
├── ssm_parameters.tf # SSM Parameter Store resources
├── variables.tf      # Input variables
├── outputs.tf        # Output values
├── locals.tf         # Local variables
└── versions.tf       # Version constraints

Architecture

%%{init: {'theme':'neutral'}}%%
graph TD
    env([Environment])
    vpc[VPC]
    ecs[ECS Cluster]
    secrets[Secrets Manager]
    ssm[SSM Parameters]

    env --> vpc & ecs & secrets & ssm
    vpc --> subnets[Public & Private Subnets]

Requirements

Name
Version

>=1.5.7

>=5.63.1

Providers

Name
Version

5.91.0

Modules

Name
Source
Version

terraform-aws-modules/ecs/aws//modules/cluster

5.11.2

terraform-aws-modules/ssm-parameter/aws

1.1.1

terraform-aws-modules/secrets-manager/aws

1.1.2

terraform-aws-modules/vpc/aws

~> 5.0

Resources

Name
Type

data source

data source

Inputs

Name
Description
Type
Default
Required

The environment to deploy to - will prefix the name of all resources

string

n/a

yes

A map of secrets to create

map(string)

{}

no

A map of SSM parameters to create

map(string)

{}

no

Outputs

No outputs.

Requirements

Name
Version

>=1.5.7

>=5.63.1

Providers

Name
Version

5.92.0

Modules

Name
Source
Version

terraform-aws-modules/ecs/aws//modules/cluster

5.11.2

terraform-aws-modules/ssm-parameter/aws

1.1.1

terraform-aws-modules/secrets-manager/aws

1.1.2

terraform-aws-modules/vpc/aws

~> 5.0

Resources

Name
Type

data source

data source

Inputs

Name
Description
Type
Default
Required

The environment to deploy to - will prefix the name of all resources

string

n/a

yes

A map of secrets to create

map(string)

{}

no

A map of SSM parameters to create

map(string)

{}

no

Outputs

No outputs.

PreviousTransformation: dbtNextlive/

Last updated 2 months ago

terraform
aws
aws
ecs_cluster
parameters
secrets
vpc
aws_availability_zones.available
aws_region.this
environment
secrets
ssm_parameters
terraform
aws
aws
ecs_cluster
parameters
secrets
vpc
aws_availability_zones.available
aws_region.this
environment
secrets
ssm_parameters