Amazon AWS Provider

An AWS provider contains the credentials to interact with Amazon and also the region to deploy your Provisions. OpenNebula comes with four pre-defined AWS providers in the following regions:

  • Frankfurt

  • London

  • North Virginia (US)

  • North California (US)

In order to define an AWS provider, you need the following information:

  • Credentials: these are used to interact with the remote provider. You need to provide access_key and secret_key. You can follow this guide.

  • Region: this is the location in the world where the resources are going to be allocated. All the available regions are listed here.

  • Instance types and AMI’s: these define the capacity of the resources that are going to be deployed and the operating system that is going to be installed on them.

Warning

Please note even though custom AMIs (i.e other than the default one) can be used, the automation tools are tailored to works with these default ones. If you use a custom AMI, please be aware that it might required some adjustments, and things might not work as expected. Avoid using them in production environment unless you’ve properly tested it before.

How to Create an AWS Provider

To add a new provider you need a YAML template file with the following information:

cat provider.yaml
name: 'aws-frankfurt'

description: 'Edge cluster in AWS Frankfurt'
provider: 'aws'

plain:
   provision_type: 'metal'

connection:
   access_key: 'AWS access key'
   secret_key: 'AWS secret key'
   region: 'eu-central-1'

inputs:
- name: 'aws_ami_image'
  type: 'text'
  default: 'default'
  description: 'AWS AMI image (default = Ubuntu Focal)'
- name: 'aws_instance_type'
  type: 'list'
  default: 'c5.metal'
  options:
  - 'c5.metal'
  - 'i3.metal'
  - 'm5.metal'
  - 'r5.metal'

When you leave the aws_ami_image with default value then the latest Ubuntu Focal ami will be searched and used.

Then you just need to use the command oneprovider create:

oneprovider create provider.yaml
ID: 0

The providers’ templates are located in /usr/share/one/oneprovision/edge-clusters/<type>/providers/aws. You just need to enter valid credentials, or input any other additional zone.

How to Customize an Existing Provider

The provider information is stored in the OpenNebula database and can be updated just like any other resource. In this case, you need to use the command oneprovider update. It will open an editor so you can edit all the information there. You can also use the OneProvision FireEdge GUI to update all the information.