---
id: "aws-storage-gateway"
type: "component"
kind: "edge-appliance"
provider: "aws"
category: "compute"
docs: "https://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html"
url: "https://localhost:3000/catalogue/components/aws-storage-gateway"
---

# AWS Storage Gateway

On-premises appliance presenting AWS storage over file, tape or block protocols with a local cache.

| | |
|---|---|
| Provider | [aws](https://localhost:3000/catalogue?provider=aws) |
| Kind | [Edge appliance](https://localhost:3000/catalogue/kinds/edge-appliance) |
| Category | Compute |
| Official docs | [https://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html](https://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `cloudEncryptionType` | enum | `sse-s3`, `sse-kms`, `dsse-kms` | no | "sse-s3" | inherited |
| `cloudManaged` | boolean | — | no | true | **true** |
| `connectivity` | enum | `connected`, `intermittent`, `disconnected` | no | — | **"connected"** |
| `encryptionInTransit` | boolean | — | no | true | inherited |
| `fileProtocol` | enum | `nfs`, `smb` | no | — | inherited |
| `formFactor` | enum | `rack`, `ruggedized`, `virtual` | no | — | **"virtual"** |
| `gatewayType` | enum | `s3-file`, `fsx-file`, `tape`, `volume-cached`, `volume-stored` | no | — | inherited |
| `localCache` | boolean | — | no | true | inherited |
| `localStorageGib` | integer | — | no | — | inherited |
| `managed` | boolean | — | no | false | **true** |
| `offlineMode` | boolean | — | no | — | **false** |

Bold values are the ones this component pins.

## Rules that apply · 1

### Stateful node without zone redundancy `stateful-node-without-zone-redundancy` (error)

- Page: https://localhost:3000/catalogue/rules/stateful-node-without-zone-redundancy.md
- Why: A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.
- Applies to: every node in category compute
- Message: Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it.

It fires when:

- all of these hold:
  - the node's `stateless` is false
  - the node sits inside exactly 1 availability-zone group
  - this does not hold:
    - the node sits inside at least one cell group

## Other products of the same kind · 30

- [Cloud Storage Gateway](https://localhost:3000/catalogue/components/alibaba-cloud-storage-gateway.md) `alibaba-cloud-storage-gateway` — alibabacloud
- [Smart Access Gateway](https://localhost:3000/catalogue/components/alibaba-smart-access-gateway.md) `alibaba-smart-access-gateway` — alibabacloud
- [AWS Backup gateway](https://localhost:3000/catalogue/components/aws-backup-gateway.md) `aws-backup-gateway` — aws
- [Amazon EKS Anywhere](https://localhost:3000/catalogue/components/aws-eks-anywhere.md) `aws-eks-anywhere` — aws
- [Amazon FSx File Gateway](https://localhost:3000/catalogue/components/aws-fsx-file-gateway.md) `aws-fsx-file-gateway` — aws
- [AWS IoT Greengrass](https://localhost:3000/catalogue/components/aws-iot-greengrass.md) `aws-iot-greengrass` — aws
- [AWS IoT Greengrass Version 1](https://localhost:3000/catalogue/components/aws-iot-greengrass-v1.md) `aws-iot-greengrass-v1` — aws
- [AWS Outposts rack](https://localhost:3000/catalogue/components/aws-outposts.md) `aws-outposts` — aws
- [AKS Edge Essentials](https://localhost:3000/catalogue/components/azure-aks-edge-essentials.md) `azure-aks-edge-essentials` — azure
- [Azure Data Box Gateway](https://localhost:3000/catalogue/components/azure-data-box-gateway.md) `azure-data-box-gateway` — azure
- [Azure IoT Edge](https://localhost:3000/catalogue/components/azure-iot-edge.md) `azure-iot-edge` — azure
- [Azure IoT Operations](https://localhost:3000/catalogue/components/azure-iot-operations.md) `azure-iot-operations` — azure
- [Azure Local](https://localhost:3000/catalogue/components/azure-local.md) `azure-local` — azure
- [On-premises data gateway](https://localhost:3000/catalogue/components/azure-on-premises-data-gateway.md) `azure-on-premises-data-gateway` — azure
- [Azure Operator Nexus](https://localhost:3000/catalogue/components/azure-operator-nexus.md) `azure-operator-nexus` — azure
- [Azure Stack Edge](https://localhost:3000/catalogue/components/azure-stack-edge.md) `azure-stack-edge` — azure
- [Azure Stack Hub](https://localhost:3000/catalogue/components/azure-stack-hub.md) `azure-stack-hub` — azure
- [Cloudflare One Appliance](https://localhost:3000/catalogue/components/cloudflare-one-appliance.md) `cloudflare-one-appliance` — cloudflare
- [balena](https://localhost:3000/catalogue/components/balena.md) `balena` — default
- [Generic edge appliance](https://localhost:3000/catalogue/components/edge-appliance.md) `edge-appliance` — default
- [KubeEdge](https://localhost:3000/catalogue/components/kubeedge.md) `kubeedge` — default
- [OpenYurt](https://localhost:3000/catalogue/components/openyurt.md) `openyurt` — default
- [Google Distributed Cloud air-gapped](https://localhost:3000/catalogue/components/google-distributed-cloud-air-gapped.md) `google-distributed-cloud-air-gapped` — gcp
- [Google Distributed Cloud connected](https://localhost:3000/catalogue/components/google-distributed-cloud-connected.md) `google-distributed-cloud-connected` — gcp
- [Gateway Appliance](https://localhost:3000/catalogue/components/ibm-gateway-appliance.md) `ibm-gateway-appliance` — ibm
- [Oracle Compute Cloud@Customer](https://localhost:3000/catalogue/components/oci-compute-cloud-at-customer.md) `oci-compute-cloud-at-customer` — oci
- [Oracle Compute Cloud@Customer Isolated](https://localhost:3000/catalogue/components/oci-compute-cloud-at-customer-isolated.md) `oci-compute-cloud-at-customer-isolated` — oci
- [Oracle Private Cloud Appliance](https://localhost:3000/catalogue/components/oci-private-cloud-appliance.md) `oci-private-cloud-appliance` — oci
- [Oracle Roving Edge Infrastructure](https://localhost:3000/catalogue/components/oci-roving-edge.md) `oci-roving-edge` — oci
- [Oracle Roving Edge Classic](https://localhost:3000/catalogue/components/oci-roving-edge-classic.md) `oci-roving-edge-classic` — oci

## Use it in a design

```yaml
nodes:
  - { id: "aws-storage-gateway", component: "aws-storage-gateway" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# AWS Storage Gateway: on-premises appliance that presents AWS storage over file, tape or block protocols.
# "What is Amazon S3 File Gateway": deployed as a VM on VMware ESXi, Hyper-V or KVM, as a hardware appliance,
# or as an EC2 AMI, serving NFS v3/v4.1 and SMB v2/v3 with a transparent local cache;
# "Data encryption using AWS KMS": SSL/TLS between appliance and AWS, SSE-S3 by default for stored data.
schemaVersion: "1"
type: "component"
id: "aws-storage-gateway"
kind: "edge-appliance"
provider: "aws"
docs: "https://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html"
defaults:
  connectivity: "connected"
  offlineMode: false
  formFactor: "virtual"
  cloudManaged: true
  managed: true
properties:
  gatewayType:
    type: "enum"
    values: ["s3-file", "fsx-file", "tape", "volume-cached", "volume-stored"]
  fileProtocol:
    type: "enum"
    values: ["nfs", "smb"]
  encryptionInTransit:
    type: "boolean"
    default: true
  cloudEncryptionType:
    type: "enum"
    values: ["sse-s3", "sse-kms", "dsse-kms"]
    default: "sse-s3"
  localCache:
    type: "boolean"
    default: true
```

Human page: https://localhost:3000/catalogue/components/aws-storage-gateway
