# aws-samples/aspnetcore-deployment-samples architecture

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

- Interactive diagram: https://gitdiagram.com/aws-samples/aspnetcore-deployment-samples
- Repository: https://github.com/aws-samples/aspnetcore-deployment-samples

## Overview

This repository is an ASP.NET Core sample application packaged alongside AWS deployment examples. Its runtime path is a user request entering the web host, being routed to the Home controller, and rendering a view; static assets are also served by the configured web pipeline. Separate from that runtime, the README documents EC2 CloudFormation/UserData, SSM Automation, CodeDeploy, and blue/green deployment examples. Those deployment files are not excerpted, so their documented capabilities are shown without inferred internal wiring.

Main entry points: [`Startup.cs`](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Startup.cs) (HTTP pipeline), [`Program.cs`](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Program.cs) (Web host), [`Controllers/HomeController.cs`](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Controllers/HomeController.cs) (Home actions), [`Views/Home`](https://github.com/aws-samples/aspnetcore-deployment-samples/tree/main/Views/Home) (Home views)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["ASP.NET web app"]
  node_host["Web host<br/>[Program.cs]"]
  node_pipeline["HTTP pipeline<br/>[Startup.cs]"]
  node_home["Home actions<br/>[HomeController.cs]"]
  node_views["Home views"]
  node_static["Static assets"]
  node_error_model["Error model<br/>[ErrorViewModel.cs]"]
end

subgraph group_cfn["CloudFormation deployment"]
  node_cfn_init["EC2 cfn-init"]
  node_cfn_userdata["EC2 UserData"]
  node_userdata_script["UserData script<br/>[UserDataScript.ps1]"]
end

subgraph group_ssm["SSM deployment"]
  node_ssm_automation["SSM automation"]
  node_ssm_install["SSM app install"]
end

subgraph group_deploy["CodeDeploy deployment"]
  node_codedeploy["CodeDeploy"]
  node_bluegreen["Blue-green deployment"]
end

node_visitor(("Web user"))

node_visitor -->|"requests"| node_host
node_host -->|"starts"| node_pipeline
node_pipeline -->|"routes requests"| node_home
node_home -->|"renders"| node_views
node_pipeline -->|"serves"| node_static
node_visitor -->|"uses deployment sample"| node_cfn_init
node_visitor -->|"uses deployment sample"| node_cfn_userdata
node_visitor -->|"uses deployment sample"| node_userdata_script
node_visitor -->|"uses deployment sample"| node_ssm_automation
node_visitor -->|"uses deployment sample"| node_ssm_install
node_visitor -->|"uses deployment sample"| node_codedeploy
node_visitor -->|"uses deployment sample"| node_bluegreen

click node_host "https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Program.cs"
click node_pipeline "https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Startup.cs"
click node_home "https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Controllers/HomeController.cs"
click node_views "https://github.com/aws-samples/aspnetcore-deployment-samples/tree/main/Views/Home"
click node_static "https://github.com/aws-samples/aspnetcore-deployment-samples/tree/main/wwwroot"
click node_error_model "https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Models/ErrorViewModel.cs"
click node_cfn_init "https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/CloudFormation/EC2Host-cfn-init.yml"
click node_cfn_userdata "https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/CloudFormation/EC2Host-UserData.yml"
click node_userdata_script "https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/CloudFormation/UserDataScript.ps1"
click node_ssm_automation "https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/SSM/CfnAutomationDocument.yml"
click node_ssm_install "https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/SSM/Install-AppServer.yml"
click node_codedeploy "https://github.com/aws-samples/aspnetcore-deployment-samples/tree/main/CodeDeploy"
click node_bluegreen "https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/CloudFormation/CodeDeployEnvironment.yml"

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_host,node_pipeline,node_home,node_views,node_static,node_error_model,node_visitor toneBlue
class node_cfn_init,node_cfn_userdata,node_userdata_script toneAmber
class node_ssm_automation,node_ssm_install toneMint
class node_codedeploy,node_bluegreen toneRose
```

## Components

### ASP.NET web app

- [Web host](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Program.cs): `Program.cs`
- [HTTP pipeline](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Startup.cs): `Startup.cs`
- [Home actions](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Controllers/HomeController.cs): `Controllers/HomeController.cs`
- [Home views](https://github.com/aws-samples/aspnetcore-deployment-samples/tree/main/Views/Home): `Views/Home`
- [Static assets](https://github.com/aws-samples/aspnetcore-deployment-samples/tree/main/wwwroot): `wwwroot`
- [Error model](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/Models/ErrorViewModel.cs): `Models/ErrorViewModel.cs`

### CloudFormation deployment

- [EC2 cfn-init](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/CloudFormation/EC2Host-cfn-init.yml): `CloudFormation/EC2Host-cfn-init.yml`
- [EC2 UserData](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/CloudFormation/EC2Host-UserData.yml): `CloudFormation/EC2Host-UserData.yml`
- [UserData script](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/CloudFormation/UserDataScript.ps1): `CloudFormation/UserDataScript.ps1`

### SSM deployment

- [SSM automation](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/SSM/CfnAutomationDocument.yml): `SSM/CfnAutomationDocument.yml`
- [SSM app install](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/SSM/Install-AppServer.yml): `SSM/Install-AppServer.yml`

### CodeDeploy deployment

- [CodeDeploy](https://github.com/aws-samples/aspnetcore-deployment-samples/tree/main/CodeDeploy): `CodeDeploy`
- [Blue-green deployment](https://github.com/aws-samples/aspnetcore-deployment-samples/blob/main/CloudFormation/CodeDeployEnvironment.yml): `CloudFormation/CodeDeployEnvironment.yml`

### Other components

- **Web user**

## Connections

- Web user → Web host: requests (evidence: `README.md`)
- Web host → HTTP pipeline: starts (evidence: `Program.cs`)
- HTTP pipeline → Home actions: routes requests (evidence: `Startup.cs`)
- Home actions → Home views: renders (evidence: `Controllers/HomeController.cs`)
- HTTP pipeline → Static assets: serves (evidence: `Startup.cs`)
- Web user → EC2 cfn-init: uses deployment sample (evidence: `README.md`)
- Web user → EC2 UserData: uses deployment sample (evidence: `README.md`)
- Web user → UserData script: uses deployment sample (evidence: `README.md`)
- Web user → SSM automation: uses deployment sample (evidence: `README.md`)
- Web user → SSM app install: uses deployment sample (evidence: `README.md`)
- Web user → CodeDeploy: uses deployment sample (evidence: `README.md`)
- Web user → Blue-green deployment: uses deployment sample (evidence: `README.md`)
