> For the complete documentation index, see [llms.txt](https://docs.b2ihealthcare.com/snow-owl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.b2ihealthcare.com/snow-owl/setup-and-administration/plan-your-deployment/hardware-requirements.md).

# Hardware requirements

## Read-write scenarios

### Co-located Elasticsearch cluster

For installations where Snow Owl and Elasticsearch are co-located, we recommend the following hardware specifications for full read-write scenarios:

| Snow Owl & co-located ES | Cloud            | Dedicated        |
| ------------------------ | ---------------- | ---------------- |
| vCPU                     | 8                | 8                |
| Memory                   | 32 GB            | 32 GB            |
| I/O performance          | >= 5000 IOPS SSD | >= 5000 IOPS SSD |
| Disk space               | 200 GB           | 200 GB           |

### Cloud Managed Elasticsearch cluster

For installations where Snow Owl connects to a managed Elasticsearch cluster at [elastic.co](https://www.elastic.co/elasticsearch/service) we recommend the following hardware specifications for full read-write scenarios:

| Snow Owl        | Cloud                                                     | Dedicated                                       |
| --------------- | --------------------------------------------------------- | ----------------------------------------------- |
| vCPU            | 8 (compute optimized)                                     | 8                                               |
| Memory          | 16 GB                                                     | 16 GB                                           |
| I/O performance | <p>OS: balanced disk</p><p>TS file storage: local SSD</p> | <p>OS: HDD / SSD</p><p>TS file storage: SSD</p> |
| Disk space      | <p>OS: 20 GB </p><p>TS file storage: 100 GB</p>           | <p>OS: 20 GB </p><p>TS file storage: 100 GB</p> |

#### Elasticsearch cluster requirements:

| Elasticsearch @ elastic.co |                       |
| -------------------------- | --------------------- |
| vCPU                       | 8 (compute optimized) |
| Memory                     | 4 GB                  |
| I/O performance            | handled by elastic.co |
| Disk space                 | 180 GB                |

{% hint style="info" %}
If Snow Owl is planned to be used for resource-intensive workloads (large code system upgrades, frequent classification of terminology, bulk authoring), an 8 vCPU / 4 GB Elasticsearch cluster might not be sufficient. Consider increasing the size of the hosted Elasticsearch instance gradually, so that finding the sweet spot will be straightforward.
{% endhint %}

## Read-only scenarios

Once the required runtime terminology data is indexed and prepared for consumption, read instances of the server can be booted up by pointing to the same Elasticsearch cluster (running co-located to the write instance or remotely by elastic.co). These instances require way fewer hardware resources to operate and can heavily reduce the read load on the write instance when needed.

| Snow Owl Read instance | Cloud        | Dedicated    |
| ---------------------- | ------------ | ------------ |
| vCPU                   | 2            | 2            |
| Memory                 | 2-4 GB       | 2-4 GB       |
| I/O performance        | Not required | Not required |
| Disk space             | 1 Gb         | 1 Gb         |

## Cloud VMs

Here are a few examples of which Virtual Machine types could be used for hosting the Terminology Server at the three most popular Cloud providers (including but not limited to):

<table><thead><tr><th width="249.33333333333331">Cloud Provider</th><th>Scenario</th><th>VM type</th></tr></thead><tbody><tr><td>GCP</td><td>Read-write</td><td><a href="https://cloud.google.com/compute/docs/compute-optimized-machines#c2d-high-cpu">c2d-highcpu-8</a> or similar newer variant</td></tr><tr><td>GCP</td><td>Read-only</td><td><p><a href="https://docs.cloud.google.com/compute/docs/compute-optimized-machines#c2d-high-cpu">c2d-highcpu-2</a> or</p><p><a href="https://docs.cloud.google.com/compute/docs/general-purpose-machines#c4d-highcpu">c4d-highcpu-2</a> or similar newer variant</p></td></tr><tr><td>AWS</td><td>Read-write</td><td><a href="https://aws.amazon.com/ec2/instance-types/c8i/">C8id series</a> (with local disk) or similar newer variant</td></tr><tr><td>AWS</td><td>Read-only</td><td><a href="https://aws.amazon.com/ec2/instance-types/c8i/">C8i series</a> (no local disk) or similar newer variant</td></tr><tr><td>Azure</td><td>Read-write</td><td><a href="https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/compute-optimized/fadsv7-series?tabs=sizebasic">Fadsv7</a> or similar newer variant</td></tr><tr><td>Azure</td><td>Read-only</td><td><a href="https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/compute-optimized/fasv7-series?tabs=sizebasic">Fasv7</a> or similar newer variant</td></tr></tbody></table>
