DEV Community

Cover image for Steps to Take for an Awesome AWS Deployment Diagram
Oresztesz Margaritisz
Oresztesz Margaritisz

Posted on

Steps to Take for an Awesome AWS Deployment Diagram

Have you often envied the rich and crisp AWS diagrams you see online, but aren't sure how to recreate them with confidence? The tips I've collected may help you improve your deployment diagrams. Get ready to deliver cloud solutions architectures that are robust, scalable, and cost-effective!

Prerequisites

Before jumping into drawing your AWS architecture diagrams, make sure you have the following prerequisites in place:

Declare Your Quality Attributes and NFRs

Ensure you cover all quality attributes and metrics in priority order. You can use a ready-made template to make your work efficient. Some are available publicly:

  • You can look at the Arc42 quality model here; several examples are available in the template as well.
  • Well-Architected pillars, for instance Azure or AWS, come with several examples.

Arc42 quality graph showing scalability in the middle

Arc42 quality graph showing scalability in the middle

AWS Well-Architected Framework pillars

AWS Well-Architected Framework pillars

Understand Higher-Level Technology Strategy and Context

If the organization's architecture is heading in a well-defined direction, your solution should follow the same approach.
Before working on the details of your own diagram, collect all documents that capture relevant technology strategy for your case.

The contextual view from the C4 model helps you concentrate on your surroundings and minimize effort on details. It is strongly recommended to initiate the first steps of your architecture work with this piece. The main focus should be:

  • Actors using your system
  • External systems as integration points

Example system context from Arc42

Example system context from Arc42

Narrow Down Your Architecture Styles and Patterns

Don't forget that this must be aligned with the higher-level technology strategy.
A comprehensive list of architecture styles and patterns can be found at:

Research

Collecting Use Cases

The following pages and guides hold valuable blueprints for typical use cases.

Finding comprehensive AWS use-case blueprints can be challenging, as they are often scattered across different AWS resources. Collecting these links in one place makes it easier to find proven architectures and patterns. This helps you quickly apply AWS best practices to your own projects.

As the first step, go through this list of resources to gather relevant use cases for your architecture:

General Advice Before Starting to Draw

Pay attention to the style and iconography used in the diagrams you find. Notice how groupings are used to distinguish different parts of the architecture, how to display multi-AZ, multi-region setups, and how to represent security boundaries.

Tools for Drawing

After finishing your research, it's time to start drawing your architecture diagrams. Here are some useful resources to help you recreate the AWS style and iconography.

Iconography

Here's a website that provides a full list of AWS icons:

Diagramming Tools

  • DrawIO – my favorite tool, able to draw a whole set of different AWS architectures, including all icons. Limited support for 3D AWS deployment views as well.
  • AWS Composer – able to generate ready-to-deploy IaC, and integrate with IDEs for generative AI-powered suggestions.
  • CloudCraft – specialized in 3D AWS architecture diagrams with support for cost estimation.

An example 3D deployment view

Refine Your Deployment View

After finishing your first draft, it's time to review your work. The tools below help you ensure that your architecture follows AWS best practices and matches your requirements. Gradually refine and polish your diagram based on the materials below.

AWS Well-Architected Pillars

Make sure you deep dive into each pillar and collect those gudelines which are relevant for your deployment. Use these as a checklist to verify that your architecture meets AWS best practices. Each pillar has its own dedicated whitepaper. I'm going to list them all in here for your convenience:

Evaluating Technologies

Open source projects to find libraries, tools, and resources for your services help narrow down technology choices.

Serverless Patterns

A full set of serverless patterns with example code and one-click deployment. You can use it to polish a specific area of your architecture if you're considering a serverless architectural style.

Justify and Explain Your Deployment View

There are some ready-made materials to help make your architecture more understandable. The C4 model is an excellent framework for architecture analysis, so I use most of their provided resources to cross-check my diagrams.

techtribes.je - components view
techtribes.je - components view

Provide an Explanation for Your Deployment View

Make sure you back up your technology choices represented in the deployment view with explanations. For instance, you can use the "Architecture Decisions" section from the Arc42 template.

Don't Forget About Cost and Capacity Estimates

Crafting a good deployment plan is an iterative process. Make sure you revisit your architecture diagram and refine it based on cost and capacity estimates. For your cost estimates, you can use the AWS Pricing Calculator.

To get realistic price calculations, you need basically two things:

  • Technology choices, to know which services you are going to use.
  • Capacity estimates, to be able to fill in the planned workload.

Making good capacity estimates is an art in itself. I recommend a book that provides guidance on how to do it properly: The Art of Capacity Planning

If it turns out that one specific piece of your architecture is too expensive, you don't necessarily have to proceed with it. Instead, explore alternative services or deployment models to reduce costs.

Power of GenAI

If you want to speed up your work, you can use Amazon Q with AWS-provided MCP services as a CLI tool. The generated diagrams are often not enough to meet quality standards, but I think the generated output can be used for exploring different options. Also, with the help of MCP, Amazon Q is able to search inside AWS documentation and help you clarify differences between specific AWS services and deployment models.

Top comments (0)