See it as a diagram
Everything below, as a diagram you can edit. Describe yours and see it in seconds.
No account needed · Editable canvas, not a picture
How the AWS package is laid out
The archive starts with four top-level directories that each answer a different question. Architecture-Service-Icons holds the marks for managed services. Resource-Icons holds marks for concrete things inside those services. Category-Icons holds the family marks. Architecture-Group-Icons holds the containers you draw around other nodes, such as a VPC or an account boundary, several of which deliberately have no logo at all.
Each of those directories carries the release date in its name, which is the most useful fact in the whole archive: it tells you exactly how old the set is without checking a changelog. Inside, service icons are grouped by category, then by pixel size, then named with an Arch_ prefix, the service name and the size. Resource icons use a Res_ prefix and add a light or dark variant, because a resource mark is drawn to sit on a background rather than float.
Sizes commonly shipped are 16, 32, 48 and 64. Since the files are SVG, the size in the name describes the detail level the artwork was drawn for, not a resolution ceiling. A 16 pixel mark is simplified; a 64 pixel mark carries the full detail. For diagram nodes, take the largest.
AWS Architecture-Service-Icons_07312026/
Arch_Compute/64/Arch_AWS-Lambda_64.svg
Resource-Icons_07312026/
Res_Compute/Res_48_Light/Res_Amazon-EC2-Instance_48_Light.svg
Architecture-Group-Icons_07312026/
(containers: VPC, account, region; some carry no logo)
Azure Azure_Public_Service_Icons_V24.zip
Icons/<category>/<number>-icon-service-<Product-Name>.svg
Google per-icon downloads plus one whole-set archive, SVG and PNG,
with the pre-2025 set still published alongside
Datadef /icons/cloud-providers/aws/aws-simple-queue-service.svgAzure and Google made different choices
Microsoft ships one archive whose file name carries a version number, so the version is visible in your downloads folder without opening anything. Inside, icons are grouped by category and the file names combine a numeric identifier, the words icon-service, and the product name. There are no size folders, because there is exactly one SVG per product and no raster alternative at all.
That numeric prefix is stable per product and useful as a key, but it is meaningless to a human, which is why nobody can find an Azure icon by browsing. Sorting by name gives you numeric order, not alphabetical order by product.
Google publishes per-icon downloads alongside a whole-set archive, and since the 2025 iconography refresh distinguishes unique product icons from shared general category icons. The practical consequence for naming is that two different products can correctly resolve to the same file, which breaks any script that assumes a one-to-one mapping between service name and icon file.
Naming your own copy so it stays findable
The moment you copy icons into your own repository, the vendor naming becomes a liability, because nobody greps for Arch_Amazon-Simple-Storage-Service_64.svg when they are looking for S3. The convention that works is provider, then the common name, lowercase and hyphenated, with the vendor release recorded once at the folder level rather than repeated in every file name.
Keep an alias mapping next to the folder. It costs one small file and it is the difference between a set your teammates use and a set they abandon. That is what the registry behind this site is: the SVG sits at a predictable provider-and-name path, and a JSON record beside it lists every string that should reach it. The Simple Queue Service record below is the real one, and it is why typing sqs finds the file the vendor named simple-queue-service.
Two rules that save pain later. Never rename in a way that loses the vendor release date, because that date is how you audit staleness. And never mix releases inside one folder without marking which is which, because the whole point of the folder is that a diagram built from it is internally consistent.
One more, if anything downstream consumes those ids by name: assert them. The Terraform resource catalog here maps 196 explicit resource types onto 101 distinct icon ids, and a script checks every one of those ids against the registry on each run, so a typo fails at that check instead of quietly rendering a generic glyph in somebody's production diagram. An icon id referenced from code is a foreign key, and unchecked foreign keys rot.
"aws-simple-queue-service": {
"name": "Aws simple Queue Service",
"provider": "aws",
"iconPath": "/icons/cloud-providers/aws/aws-simple-queue-service.svg",
"aliases": [
"aws-simple-queue-service", "simple-queue-service",
"amazon-simple-queue-service", "awssimplequeueservice",
"asqs", "sqs", "aws-sqs"
]
}If you are building diagram-as-code
What this buys you in the diagram
A searchable icon set is only worth the effort if it ends up on a canvas. The shortcut is to let the generator resolve names: describe the architecture, and each component is matched against the registry by alias rather than by the exact string you happened to type.
Browse the sets at the AWS collection or the Google Cloud download if you still need the files themselves. The mapping problem is the same either way; the difference is whether a person or the generator solves it each time.
FAQ
What does the Arch_ prefix mean in AWS icon file names?
What are the sizes in the AWS icon package for?
What is the difference between Arch_ and Res_ icons?
How is the Azure icon download organised?
How should I name icon files in my own diagram repository?