{"id":5463,"date":"2026-09-24T00:53:22","date_gmt":"2026-09-24T03:53:22","guid":{"rendered":"https:\/\/tucumandevelopers.com\/index.php\/2026\/09\/24\/free-aws-azure-and-gcp-architecture-icons-as-svg\/"},"modified":"2026-09-24T00:53:22","modified_gmt":"2026-09-24T03:53:22","slug":"free-aws-azure-and-gcp-architecture-icons-as-svg","status":"publish","type":"post","link":"https:\/\/tucumandevelopers.com\/index.php\/2026\/09\/24\/free-aws-azure-and-gcp-architecture-icons-as-svg\/","title":{"rendered":"Free AWS, Azure and GCP architecture icons as SVG"},"content":{"rendered":"<div>\n<div>\n<p>The AWS license is the one that changes what you may do, and I cover it in section 3.<\/p>\n<h2> <a name=\"1-what-is-inside-the-aws-set\" href=\"#1-what-is-inside-the-aws-set\"> <\/a> 1. What is inside the AWS set <\/h2>\n<p>Amazon&#8217;s set is bigger than most people expect, because the set holds more than service icons. The 739 files split into four kinds, and the registry tags each one.<\/p>\n<div>\n<table>\n<thead>\n<tr>\n<th>Kind<\/th>\n<th>Count<\/th>\n<th>Slug prefix<\/th>\n<th>Example<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Service<\/td>\n<td>300<\/td>\n<td><code>aws-<\/code><\/td>\n<td><code>aws-amazon-bedrock<\/code><\/td>\n<\/tr>\n<tr>\n<td>Resource<\/td>\n<td>400<\/td>\n<td><code>aws-res-<\/code><\/td>\n<td><code>aws-res-aws-lambda-lambda-function<\/code><\/td>\n<\/tr>\n<tr>\n<td>Category<\/td>\n<td>26<\/td>\n<td><code>aws-cat-<\/code><\/td>\n<td><code>aws-cat-databases<\/code><\/td>\n<\/tr>\n<tr>\n<td>Group<\/td>\n<td>13<\/td>\n<td><code>aws-group-<\/code><\/td>\n<td> <code>aws-group-region<\/code>, <code>aws-group-private-subnet<\/code> <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Service icons are the colored squares you know from every AWS diagram. Resource icons are the small glyphs for specific things inside a service, like a single Lambda function. Category and group icons cover the outer frames and the section headers.<\/p>\n<p>Each AWS icon ships in 16, 32, and 64 pixel versions as well as the default, so you can pick a small one for a dense diagram and a large one for a slide.<\/p>\n<p>Compute is a good comparison point, since every provider has it. The registry lists 38 AWS icons, 39 Azure icons, and 13 Google Cloud icons in the Compute category.<\/p>\n<h2> <a name=\"2-the-naming-trap\" href=\"#2-the-naming-trap\"> <\/a> 2. The naming trap <\/h2>\n<p>Slugs are the file names, and they follow the provider&#8217;s own product naming. That produces some results you cannot guess.<\/p>\n<p>The AWS Lambda icon is <code>aws-aws-lambda<\/code>, not <code>aws-lambda<\/code>. The first <code>aws<\/code> is the collection prefix and the second is part of the product name. I checked the obvious guess against thesvg.org: <\/p>\n<div>\n<pre><code>404 \/icons\/aws-lambda\/default.svg 200 \/icons\/aws-aws-lambda\/default.svg 200 \/icons\/aws-aws-lambda\/64.svg <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>Do not guess. Filter the registry instead. The registry is a single static JSON file with every slug, title, and category, and it needs no key. <\/p>\n<div>\n<pre><code><span>BASE<\/span><span>=<\/span>https:\/\/thesvg.org curl <span>-s<\/span> <span>\"<\/span><span>$BASE<\/span><span>\/api\/registry.json\"<\/span> <span>&gt;<\/span> registry.json <span># every AWS service icon in the Database category<\/span> jq <span>-r<\/span> <span>'.icons[] | select(.slug | startswith(\"aws-\")) | select(.categories | index(\"Database\")) | .slug'<\/span> registry.json <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>That command printed <code>aws-amazon-aurora<\/code>, <code>aws-amazon-documentdb<\/code>, <code>aws-amazon-dynamodb<\/code>, <code>aws-amazon-elasticache<\/code>, and more. To find a service by name, match on the title: <\/p>\n<div>\n<pre><code>jq <span>-r<\/span> <span>'.icons[] | select(.title | test(\"lambda\"; \"i\")) | \"\\(.slug)\\t\\(.title)\"'<\/span> registry.json <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>Once you have the slug, the file path follows one pattern: <code>\/icons\/{slug}\/{variant}.svg<\/code>. Variants for AWS are <code>default<\/code>, <code>16<\/code>, <code>32<\/code>, and <code>64<\/code>. The other providers only ship <code>default<\/code>.<\/p>\n<h2> <a name=\"3-the-license-question\" href=\"#3-the-license-question\"> <\/a> 3. The license question <\/h2>\n<p>This is where cloud icons differ from ordinary brand icons, so read it before you ship anything.<\/p>\n<p>The registry records a license per icon, and for the AWS set it says <code>CC-BY-ND-2.0<\/code>. ND stands for No Derivatives. In plain terms, you may share the icons unmodified, with credit, and you may not alter them. Recoloring an AWS icon to match your palette counts as a change. Cropping the badge or stripping the background counts too.<\/p>\n<p>That rule shapes how you use them:<\/p>\n<div>\n<table>\n<thead>\n<tr>\n<th>You want to<\/th>\n<th>AWS icons<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Place the icon as-is in a diagram<\/td>\n<td>Fine<\/td>\n<\/tr>\n<tr>\n<td>Resize it proportionally<\/td>\n<td>Generally fine, same artwork<\/td>\n<\/tr>\n<tr>\n<td>Recolor it to match your theme<\/td>\n<td>Not allowed under ND<\/td>\n<\/tr>\n<tr>\n<td>Redraw it in a different style<\/td>\n<td>Not allowed under ND<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>I am not a lawyer, and the registry records the declared license and offers no legal opinion. For Azure the registry lists MIT and for Google Cloud it lists Apache-2.0, but both companies also publish their own usage terms for these icons, and those terms are what you should read before putting one in a product page. An internal architecture diagram is a lower-risk use than a customer-facing landing page. The Amazon, Microsoft, and Google names remain trademarks of their owners either way, which the project states in its <a href=\"https:\/\/thesvg.org\/legal\" target=\"_blank\" rel=\"noopener noreferrer\">legal notice<\/a>.<\/p>\n<h2> <a name=\"4-where-they-are-useful-and-where-they-are-not\" href=\"#4-where-they-are-useful-and-where-they-are-not\"> <\/a> 4. Where they are useful, and where they are not <\/h2>\n<p>Be honest about the alternative. If you draw diagrams in draw.io, the built-in shape libraries already cover AWS, Azure, Google Cloud, and Kubernetes. You do not need to import anything for that.<\/p>\n<p>The SVG files earn their place everywhere else a diagram lives. A README wants an <code>&lt;img&gt;<\/code> tag that renders on GitHub. A slide deck or Figma frame wants a real vector you can drag in. A generated diagram, built by a script from a config file, wants a stable file path.<\/p>\n<p>For a README, the embed is one line: <\/p>\n<div>\n<pre><code><span>&lt;img<\/span> <span>src=<\/span><span>\"https:\/\/thesvg.org\/icons\/aws-amazon-bedrock\/64.svg\"<\/span> <span>width=<\/span><span>\"64\"<\/span> <span>height=<\/span><span>\"64\"<\/span> <span>alt=<\/span><span>\"Amazon Bedrock\"<\/span> <span>\/&gt;<\/span> <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>Weight is not a concern here. The median AWS default file is 2,875 bytes and the largest is 13,951. The median Azure file is 2,045 bytes, though the largest is 46,239. Google Cloud icons are the lightest, with a median of 725 bytes and a largest of 3,517.<\/p>\n<p>If you are building something generated, pull the file once and commit it, so your diagram does not depend on a network call at render time: <\/p>\n<div>\n<pre><code><span>mkdir<\/span> <span>-p<\/span> docs\/icons <span>for <\/span>slug <span>in <\/span>aws-aws-lambda aws-amazon-dynamodb gcp-bigquery<span>;<\/span> <span>do <\/span>curl <span>-sf<\/span> <span>\"<\/span><span>$BASE<\/span><span>\/icons\/<\/span><span>$slug<\/span><span>\/default.svg\"<\/span> <span>-o<\/span> <span>\"docs\/icons\/<\/span><span>$slug<\/span><span>.svg\"<\/span> <span>\\<\/span> <span>||<\/span> <span>echo<\/span> <span>\"missing: <\/span><span>$slug<\/span><span>\"<\/span> <span>done<\/span> <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>The <code>-f<\/code> flag makes curl fail on a 404, and the <code>|| echo<\/code> prints which slug missed. Without them you would save an error page under an <code>.svg<\/code> name and not notice until the diagram rendered blank.<\/p>\n<h2> <a name=\"5-mixing-three-providers-in-one-picture\" href=\"#5-mixing-three-providers-in-one-picture\"> <\/a> 5. Mixing three providers in one picture <\/h2>\n<p>The visual mismatch is the real cost of a multi-cloud diagram, more than the file hunt. AWS icons sit inside colored badges, Azure icons are flatter glyphs, and Google Cloud icons use a wider palette with no frame. Put them side by side and the reader wastes a second wondering whether the style change means something.<\/p>\n<p>Because of the ND license, you cannot fix that by recoloring the AWS set. What you can control is the layout. Give each provider its own bounded region with a labeled outline, keep every icon the same rendered size, and let the region border carry the provider identity. The mismatch stops looking like an accident once the grouping makes it deliberate.<\/p>\n<p>I wrote a longer comparison of the three visual styles in <a href=\"https:\/\/thesvg.org\/blog\/aws-vs-azure-vs-gcp-icons\" target=\"_blank\" rel=\"noopener noreferrer\">AWS vs Azure vs GCP Icons<\/a>, and each collection has its own browse page: <a href=\"https:\/\/thesvg.org\/collection\/aws\" target=\"_blank\" rel=\"noopener noreferrer\">AWS<\/a>, <a href=\"https:\/\/thesvg.org\/collection\/azure\" target=\"_blank\" rel=\"noopener noreferrer\">Azure<\/a>, and <a href=\"https:\/\/thesvg.org\/collection\/gcp\" target=\"_blank\" rel=\"noopener noreferrer\">Google Cloud<\/a>.<\/p>\n<h2> <a name=\"the-bottom-line\" href=\"#the-bottom-line\"> <\/a> The bottom line <\/h2>\n<p>The files are the easy part. The slug prefix and the license are what trip people up, so filter the registry instead of guessing names, and check the ND terms before you touch a color.<\/p>\n<p>Pull what you need from <a href=\"https:\/\/thesvg.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">free SVG brand icons and cloud architecture icons<\/a> and commit the files next to your docs.<\/p>\n<p>Which provider&#8217;s icons do you find hardest to place next to the others?<\/p>\n<hr>\n<p><strong>GDS K S<\/strong> \u00b7 <a href=\"https:\/\/thegdsks.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">thegdsks.com<\/a> \u00b7 building <a href=\"https:\/\/glincker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Glincker<\/a> \u00b7 follow on X <a href=\"https:\/\/x.com\/thegdsks\" target=\"_blank\" rel=\"noopener noreferrer\">@thegdsks<\/a><\/p>\n<p><em>Three clouds, one diagram, and a license worth reading before you recolor anything.<\/em><\/p>\n<\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Fuente: <a href=\"https:\/\/dev.to\/thegdsks\/free-aws-azure-and-gcp-architecture-icons-as-svg-hn8\">Art\u00edculo original<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The AWS license is the one that changes what you may do, and I cover it in section 3. 1. What is inside the AWS set Amazon&#8217;s set is bigger than most people expect, because the set holds more than service icons. The 739 files split into four kinds, and the registry tags each one. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5462,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"webixso_pending_account_ids":""},"categories":[41],"tags":[],"class_list":["post-5463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devto"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/posts\/5463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/comments?post=5463"}],"version-history":[{"count":0,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/posts\/5463\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/media\/5462"}],"wp:attachment":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/media?parent=5463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/categories?post=5463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/tags?post=5463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}