code: def _launch_instance(self):
          
          resource = self._connect()
  
          instance_name = ipa_utils.generate_instance_name('ec2-ipa-test')
          kwargs = {
              'InstanceType': self.instance_type or EC2_DEFAULT_TYPE,
              'ImageId': self.image_id,
              'MaxCount': 1,
              'MinCount': 1,
              'TagSpecifications': [
                  {
                      'ResourceType': 'instance',
                      'Tags': [
                          {
                              'Key': 'Name',
                              'Value': instance_name
                          }
                      ]
                  }
              ]
          }
  
          if self.zone:
              kwargs['Placement'] = {'AvailabilityZone': self.zone}
  
          if self.ssh_key_name:
              kwargs['KeyName'] = self.ssh_key_name
          else:
              kwargs['UserData'] = self._get_user_data()
  
          if self.subnet_id:
              kwargs['SubnetId'] = self.subnet_id
  
          if self.security_group_id:
              kwargs['SecurityGroupIds'] = [self.security_group_id]
  
          try:
              instances = resource.create_instances(**kwargs)
          except Exception as error:
              raise EC2CloudException(
                  'Unable to create instance: {0}.'.format(error)
              )
  
          self.running_instance_id = instances[0].instance_id
          self.logger.debug('ID of instance: %s' % self.running_instance_id)
          self._wait_on_instance('running', self.timeout)
docs: Launch an instance of the given image.