AWS File Storage

AWS has multiple storage options to choose from:

  • Elastic Block Store (EBS)
  • Elastic File System (EFS)
  • FSx

Elastic Block Store (EBS)

AWS EBS is limited in that it can be attached to only one EC2 or container instance and is not an option for High Availability.

Elastic File System (EFS)

EFS is perhaps the most versatile storage options that AWS offers. EFS works with EC2 instances, ECS services, and EKS clusters. If you intend on running Octopus Deploy Server as a Linux Container, EFS is likely going to be your only option.

EC2

Amazon provides an easy way to connect Linux based EC2 instances to EFS. As noted on https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html, Amazon does not support mounting EFS to EC2 instances running Windows. Windows, however, has an NFS client that can be installed to configure and access NFS shares.

See more information about Windows NFS and Octopus Deploy.

FSx

Amazon FSx includes full support for the SMB protocol, Windows NTFS, and requires Microsoft Active Directory (AD) integration. This makes it an ideal choice for connecting to your EC2 instances hosting Octopus to store all your Octopus packages and log files.

If you choose to go with Amazon FSx there are some resources that will help you get started:

  • AWS have a starter guide which explains how to configure Amazon FSx and connect it up to an EC2 machine.
  • AWS have a hands-on lab on using DataSync to support multi-region FSx data across AWS regions. This could be useful when considering disaster recovery options for Octopus High Availability.
  • We have an AWS FSx High Availability blog post which is a step-by-step guide to connecting Amazon FSx to your Octopus High Availability Server nodes on Windows.

High Availability

With Octopus Deploy’s High Availability functionality, you connect multiple nodes to the same database and file storage. Octopus Server makes specific assumptions about the performance and consistency of the file system when accessing log files, performing log retention, storing deployment packages and other deployment artifacts, exported events, and temporary storage when communicating with Tentacles.

What that means is:

  • Octopus Deploy is sensitive to network latency. It expects the file system to be hosted in the same data center as the virtual machines or container hosts running the Octopus Deploy Service.
  • It is extremely rare for two or more nodes to write to the same file at the same time.
  • It is common for two or more nodes to read the same file at the same time.

In our experience, you will have the best experience when all the nodes and the file system are located in the same data center. Modern network storage devices and operating systems handle almost all the scenarios a highly available instance of Octopus Deploy will encounter.

Help us continuously improve

Please let us know if you have any feedback about this page.

Send feedback

Page updated on Wednesday, May 22, 2024