When using SFTP Gateway, you want to keep an eye on your local disk space. If you are running low, you can dynamically increase your EC2 volume using our Resizing an EC2 Instance Volume article.

By default, CloudWatch does not monitor disk utilization for EC2 instances. To report this information, you can install the Amazon CloudWatch Monitoring Scripts for Linux, and then send disk utilization metrics to CloudWatch.

The instructions in that AWS user guide are pretty long. So here are some condensed instructions you can follow:

First, attach the CloudWatchFullAccess managed policy to your EC2 instances' IAM Role. This will allow your EC2 instance to send CloudWatch events.

Second, paste the following commands into your terminal:

sudo su
rm -rf /var/tmp/aws-mon/
yum -y install perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https
mkdir -p /home/ec2-user/cloudwatch/ && cd $_
curl http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip -O
unzip CloudWatchMonitoringScripts-1.2.1.zip && rm -f $_
echo "*/5 * * * * ~/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl --swap-util --mem-util --disk-space-util --disk-path=/ --from-cron" >> /var/spool/cron/ec2-user
service crond reload
~/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl --swap-util --mem-util --disk-space-util --disk-path=/

If all goes well, you should see this message:

Successfully reported metrics to CloudWatch.

Finally, go to CloudWatch > Metrics > Linux System > Filesystem, InstanceId, MountPath. You should see the DiskSpaceUtilization metric for your instance.

From here, you can create a Dashboard to track your storage patterns. Or you can create a CloudWatch alarm to send an SNS text message if you start running out of space (e.g. 80% utilization).