How venkatasubbarao13/aws-python-app-github-actions-deployment works
This repository is an AWS deployment lab: Terraform provisions public and private EC2 infrastructure, and manually triggered GitHub Actions workflows deploy a Flask API using three routes—direct SSH, SSH through a bastion, or Systems Manager Run Command. The main user workflow is provision infrastructure, choose a deployment route, then verify the app’s information and health endpoints. The graph keeps those routes distinct and includes infrastructure teardown. Workflow and Terraform source excerpts were not provided, so their links are based on the README’s documented architecture and workflows; unverified implementation details are omitted.
Main entry points: terraform-infrastructure.yml Infrastructure workflow · main.tf EC2 instances · app.py Flask JSON API · deploy-public.yml Direct SSH and SCP
Components 20
AWS infrastructure
- Terraform inputs
variables.tf - Terraform provider and state
providers.tf - VPC and networking
main.tf - EC2 instances
main.tf - Terraform outputs
outputs.tf
GitHub workflows
- Infrastructure workflow
.github/workflows/terraform-infrastructure.yml - Destroy workflow
.github/workflows/terraform-destroy.yml - Public deploy workflow
.github/workflows/deploy-public.yml - Bastion deploy workflow
.github/workflows/deploy-bastion.yml - SSM deploy workflow
.github/workflows/deploy-ssm.yml
Deployment routes
- Direct SSH and SCP
.github/workflows/deploy-public.yml - Bastion SSH route
.github/workflows/deploy-bastion.yml - Systems Manager route
.github/workflows/deploy-ssm.yml - Deployment script
scripts/deploy.sh
Application runtime
- Flask JSON API
app/app.py - Runtime dependencies
app/requirements.txt
Other components
- Repository operator
- GitHub Actions
- AWS
- API clients
Connections 17
- Repository operator → GitHub Actions: manually triggers
README.md - Infrastructure workflow → Terraform inputs: uses inputs
README.md - Infrastructure workflow → Terraform provider and state: applies configuration
README.md - Infrastructure workflow → VPC and networking: provisions network
README.md - Infrastructure workflow → EC2 instances: provisions instances
README.md - Infrastructure workflow → Terraform outputs: reports outputs
- Destroy workflow → AWS: destroys infrastructure
README.md - Public deploy workflow → Direct SSH and SCP: deploys via SSH
README.md - Direct SSH and SCP → EC2 instances: copies app to
README.md - Bastion deploy workflow → Bastion SSH route: deploys through
README.md - Bastion SSH route → EC2 instances: SSH jump to
README.md - SSM deploy workflow → Systems Manager route: sends Run Command
README.md - Systems Manager route → EC2 instances: executes commands on
README.md - EC2 instances → Flask JSON API: hosts deployed app
README.md - Flask JSON API → Runtime dependencies: uses packages
- API clients → Flask JSON API: requests endpoints
README.md - Flask JSON API → API clients: returns JSON
README.md