AWS Elastic Beanstalk - Increase Instance Disk Capacity

The 8 GB disk you are seeing is an EBS root volume mounted on /. That's the same no matter what instance type you use, which is why it still only shows 8 GB. The 32 GB of storage is ephemeral storage attached to the instance (not EBS). It's possible that it's not mounting automatically but it's certainly there.

Two options for you:

  1. You can try to get that 32 GB ephemeral storage mounted.

  2. You can create and mount a separate EBS volume of whatever size you need: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html

Either way, you will need to make whatever changes are required to point to this new storage, where ever you mount it in the filesystem. That can be by changing your configurations or creating symlinks from the old location to the new filesystem.


There is a better way to do this now using RootVolumeType and RootVolumeSize in aws:autoscaling:launchconfiguration. Details are [here].1

Following is the relevant section from my cloudformation script to create elastic beanstalk

  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "RootVolumeType",
    "Value": "gp2"
  },
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "RootVolumeSize",
    "Value": 25
  },

This can be easily achieved through ebextensions also.


Example of solution for Elastic Beanstalk with ebextensions config:

application-root-dir/.ebextensions/001-filesystem.config:

option_settings:
  aws:autoscaling:launchconfiguration:
    RootVolumeType: gp2
    RootVolumeSize: "64"