def create_db_instance(aws_id, master_username, master_user_password, params={})
request_hash = {}
request_hash['DBInstanceIdentifier'] = aws_id
request_hash['MasterUsername'] = master_username
request_hash['MasterUserPassword'] = master_user_password
request_hash['DBInstanceClass'] = params[:instance_class].blank? ? DEFAULT_INSTANCE_CLASS : params[:instance_class].to_s
request_hash['AllocatedStorage'] = params[:allocated_storage].blank? ? 25 : params[:allocated_storage]
request_hash['Engine'] = params[:engine].blank? ? 'MySQL5.1' : params[:engine]
request_hash['EndpointPort'] = params[:endpoint_port] unless params[:endpoint_port].blank?
request_hash['DBName'] = params[:db_name] unless params[:db_name].blank?
request_hash['AvailabilityZone'] = params[:availability_zone] unless params[:availability_zone].blank?
request_hash['PreferredMaintenanceWindow'] = params[:preferred_maintenance_window] unless params[:preferred_maintenance_window].blank?
request_hash['BackupRetentionPeriod'] = params[:backup_retention_period] unless params[:backup_retention_period].blank?
request_hash['PreferredBackupWindow'] = params[:preferred_backup_window] unless params[:preferred_backup_window].blank?
request_hash.merge!(amazonize_list('DBSecurityGroups.member', params[:db_security_groups]))
request_hash['DBParameterGroup'] = params[:db_parameter_group] unless params[:db_parameter_group].blank?
link = generate_request('CreateDBInstance', request_hash)
request_info(link, DescribeDbInstancesParser.new(:logger => @logger))[:db_instances].first
end