# vivekmu/terraform-ec2-module architecture

> Architecture diagram of the GitHub repository vivekmu/terraform-ec2-module, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vivekmu/terraform-ec2-module
- Repository: https://github.com/vivekmu/terraform-ec2-module

## Overview

This repository provisions an AWS EC2 instance through a root Terraform configuration that calls a reusable EC2 module. The documented workflow is to create a tfvars file from the example and run Terraform init and apply. Root and module variable/output files define configuration interfaces, though their specific connections are not shown. No source excerpts were provided, so relationships below rely only on the README.

Main entry points: [`main.tf`](https://github.com/vivekmu/terraform-ec2-module/blob/main/main.tf) (Root configuration), [`modules/ec2/main.tf`](https://github.com/vivekmu/terraform-ec2-module/blob/main/modules/ec2/main.tf) (EC2 module), [`terraform.tfvars.example`](https://github.com/vivekmu/terraform-ec2-module/blob/main/terraform.tfvars.example) (Example settings), [`variables.tf`](https://github.com/vivekmu/terraform-ec2-module/blob/main/variables.tf) (Root inputs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_root["Root configuration"]
  node_root_config["Root configuration<br/>[main.tf]"]
  node_root_vars["Root inputs<br/>[variables.tf]"]
  node_root_outputs["Root outputs<br/>[outputs.tf]"]
  node_example_vars["Example settings"]
end

subgraph group_module["EC2 module"]
  node_ec2_module["EC2 module<br/>[main.tf]"]
  node_module_vars["Module inputs<br/>[variables.tf]"]
  node_module_outputs["Module outputs<br/>[outputs.tf]"]
end

subgraph group_cloud["AWS infrastructure"]
  node_aws_ec2["EC2 instance"]
end

node_user(("Operator"))
node_terraform["Terraform CLI"]

node_user -->|"runs init/apply"| node_terraform
node_terraform -->|"applies configuration"| node_root_config
node_root_config -->|"calls module"| node_ec2_module
node_ec2_module -->|"creates instance"| node_aws_ec2
node_example_vars -.->|"provides settings"| node_root_vars

click node_root_config "https://github.com/vivekmu/terraform-ec2-module/blob/main/main.tf"
click node_root_vars "https://github.com/vivekmu/terraform-ec2-module/blob/main/variables.tf"
click node_root_outputs "https://github.com/vivekmu/terraform-ec2-module/blob/main/outputs.tf"
click node_example_vars "https://github.com/vivekmu/terraform-ec2-module/blob/main/terraform.tfvars.example"
click node_ec2_module "https://github.com/vivekmu/terraform-ec2-module/blob/main/modules/ec2/main.tf"
click node_module_vars "https://github.com/vivekmu/terraform-ec2-module/blob/main/modules/ec2/variables.tf"
click node_module_outputs "https://github.com/vivekmu/terraform-ec2-module/blob/main/modules/ec2/outputs.tf"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_root_config,node_root_vars,node_root_outputs,node_example_vars toneBlue
class node_ec2_module,node_module_vars,node_module_outputs toneAmber
class node_aws_ec2 toneMint
class node_user,node_terraform toneIndigo
```

## Components

### Root configuration

- [Root configuration](https://github.com/vivekmu/terraform-ec2-module/blob/main/main.tf): `main.tf`
- [Root inputs](https://github.com/vivekmu/terraform-ec2-module/blob/main/variables.tf): `variables.tf`
- [Root outputs](https://github.com/vivekmu/terraform-ec2-module/blob/main/outputs.tf): `outputs.tf`
- [Example settings](https://github.com/vivekmu/terraform-ec2-module/blob/main/terraform.tfvars.example): `terraform.tfvars.example`

### EC2 module

- [EC2 module](https://github.com/vivekmu/terraform-ec2-module/blob/main/modules/ec2/main.tf): `modules/ec2/main.tf`
- [Module inputs](https://github.com/vivekmu/terraform-ec2-module/blob/main/modules/ec2/variables.tf): `modules/ec2/variables.tf`
- [Module outputs](https://github.com/vivekmu/terraform-ec2-module/blob/main/modules/ec2/outputs.tf): `modules/ec2/outputs.tf`

### AWS infrastructure

- **EC2 instance**

### Other components

- **Operator**
- **Terraform CLI**

## Connections

- Operator → Terraform CLI: runs init/apply (evidence: `README.md`)
- Terraform CLI → Root configuration: applies configuration (evidence: `README.md`)
- Root configuration → EC2 module: calls module (evidence: `README.md`)
- EC2 module → EC2 instance: creates instance (evidence: `README.md`)
- Example settings → Root inputs: provides settings
