/**
  * Creates a new spot request using config parameters
  * @param null $price Overrides price of config if provided
  */
 public function reserveSpot($price = null)
 {
     $this->ec2Client->requestSpotInstances(array('DryRun' => $this->dryRun, 'SpotPrice' => $price == null ? $this->config['SpotPrice'] : $price, 'InstanceCount' => 1, 'LaunchSpecification' => array('ImageId' => $this->config['LaunchSpecification']['ImageId'], 'InstanceType' => $this->config['LaunchSpecification']['InstanceType']), 'Monitoring' => array('Enabled' => true), 'SecurityGroups' => array($this->config['securityGroupName']), 'KeyName' => $this->config['securityKeyName']));
 }