Skip to main content
Index

Connect to AWS

You can create a connection between your Equinix virtual device and AWS Direct Connect. 

 

Click here to watch a video on how to create a virtual device and connect to AWS using Network Edge Portal. 

Layer 2 connection to AWS

 

What do you need to create a connection? 

 

     1) A provisioned Equinix virtual device (virtualDeviceUUID) with a registered license. In case you have an optional secondary virtual device, you also need the Id of the secondary device.

     2) Authorization key from your provider (account ID from AWS). In case you have an optional secondary virtual device, you also need an authorization key for your secondary device. The two authorization keys will be the same if they belong to the same account. 

     3) Unique Id of the provider's service profile (profileUUID) and metro (sellerMetroCode) of the provider

 

If you already have all the information and authentication credentials, you can skip ahead to Step 2f and create a connection. Otherwise, go through the steps to retrieve information.

Step 1: Retrieve AWS Account Info

Locate your AWS account ID using the AWS Management console.

 

The AWS Account ID is a 12 - digit number and is essential for creating an AWS Direct Connect connection.

 

Refer https://aws.amazon.com/console/ for instructions on how to signup for AWS. 

Step 2: Create Connection

2a) Authenticate

Submit your user credentials, Client ID, and Client Secret for OAuth2 authentication.

 

Refer to Generating a Client ID and Client Secret key under Getting Started section for instructions on how to create client ID and client secret and refer to Requesting Access and Refresh tokens for instructions on how to call Oauth API to validate and authenticate your credentials.

 

If you are unaware of your user credentials for Network Edge platform, contact your local Equinix Service Desk. 

 

2b) Get virtual devices

Find out your available virtual devices on the NE platform and their unique Ids (UUIDs). Refer to Get virtual devices under the API Reference section for detailed instructions. You can only create connections for a provisioned virtual device with a registered license. 

You may choose any available interface on your device for your connection. However, Equinix will select an interface if you do not specify any.

 

You may skip this step if you already know your available virtual devices.

 

2c) Get metros

Find out metro regions (metroCodes) where the NE platform is available. Refer to Get metros under the API Reference section for detailed instructions. 

 

You may skip this step if you already know the metro code.  

 

2d) Get Service Profile

Identify all seller/service profiles available for a given metro or metros. Refer to Get L2 service profiles under the API Reference section to find profileUUID and sellerMetroCode.

 

You may skip this step if you already know the service profile details.

 

2e) Get ValidateAuthorizationKey

Verify whether a connection can be established between your AWS Account Info and the seller profile selected earlier by calling Get validateAuthorizationKey API

 

You may skip this step if you are certain that your key is authorized for creating connections with the selected service profile.

 

2f) Post Connections

POST /ne/v1/l2/connections

Method POST
URL or End Point /ne/v1/l2/connections
Headers Authorization token, Content-Type
Query Parameters Not applicable
Body Parameters virtualDeviceUUID, primaryName, profileUUID, speed, speedUnit, notifications [...], purchaseOrderNumber, sellerMetroCode, authorizationKey, interfaceId, secondaryVirtualDeviceUUID, secondaryName, secondarySpeed, secondarySpeedUnit, secondaryAuthorizationKey, secondaryInterfaceId

 

The POST connections API creates a Layer 2 Connection between your virtual device and the destination service profile. 

 

To obtain an authorization key, refer to Requesting Access and Refresh tokens section under Getting Started.

 

The following screenshots show sample curl requests to create a layer 2 AWS connection for HA and non-HA virtual devices.

 

AWS Connection for a non-high availability virtual device

 

curl -X

POST "https://api.equinix.com/ne/v1/l2/connections"

-H "content-type: application/json"

-H "authorization: Bearer qwErtY8zyW1abcdefGHI"

-d '{

  "virtualDeviceUUID": "8c2845e5-be83-4561-ba2b-a53a7e4cf5ec",
  "primaryName": "JohnDoe_AWS_1",
  "profileUUID": "3214888b-39b0-49ea-a232-005088dc9c84",
  "speed": 50,
  "speedUnit": "MB",
  "notifications": [
    "JohnDoe@equinix.com"
  ],
  "purchaseOrderNumber": "1234567890",

  "sellerMetroCode": "SV",
  "authorizationKey": "123456789012",
  "interfaceId": 7

}'

 

AWS Connection for a high availability virtual device 

 

curl -X

POST "https://api.equinix.com/ne/v1/l2/connections"

-H "content-type: application/json"

-H "authorization: Bearer qwErtY8zyW1abcdefGHI"

-d '{

  "virtualDeviceUUID": "8c2845e5-be83-4561-ba2b-a53a7e4cf5ec",
  "primaryName": "JohnDoe_AWS_1",
  "profileUUID": "3214888b-39b0-49ea-a232-005088dc9c84",
  "speed": 50,
  "speedUnit": "MB",
  "notifications": [
    "JohnDoe@equinix.com"
  ],
  "purchaseOrderNumber": "1234567890",

  "sellerMetroCode": "SV",
  "authorizationKey": "123456789012",
  "interfaceId": 6,

  "secondaryVirtualDeviceUUID": "7c2845e5-be83-4561-ba2b-a53a7e4cf5ez",

  "secondaryName": "JohnDoe_AWS_2",

  "secondarySpeed": 50,

  "secondarySpeedUnit": "MB",

  "secondaryAuthorizationKey": "123456789012",

  "secondaryInterfaceId": 5
}'

 

The description of the body parameters is as follows:

 

Body Parameter Name Mandatory Type Example Applicable Values Description
virtualDeviceUUID Yes string 8c2845e5-be83-4561-ba2b-a53a7e4cf5ec   Unique ID of the virtual device.
primaryName Yes string JohnDoe_AWS_1   Name of the primary connection - An alpha-numeric 24 character string that can only include hyphens and underscores ('-' & '_').
profileUUID Yes string 999552b-39b0-49ea-a232-005088dc9c86   Unique identifier of the provider's service profile.
speed Yes integer 50   Speed/Bandwidth you would like to allocate to the connection.
speedUnit Yes string MB

'MB'

''GB'

Unit of the speed or bandwidth.
notifications Yes array  JohnDoe@equinix.com   An array of email ids for notification. Example Object: ["user@organization.com", "user@eu.company.com"]
purchaseOrderNumber No string 0987654321   An optional field to link the customer's purchase order number to Equinix, so the number gets reflected on the invoice.
sellerMetroCode Yes string SV   Provider location where you would like to connect. If the sellerMetroCode is empty, the metro code of the virtual device is set as the default seller metro code.
authorizationKey Yes string 123456789012    Authorization Key obtained from the provider. Example: Account ID from AWS.
interfaceId No integer 5   Any available interface of the virtual device.
secondaryVirtualDeviceUUID No string 9c2845e5-be83-4561-ba2b-a53a7e4cf5em   This field represents the unique ID of the secondary device.
secondaryName No string JohnDoe_AWS_2   This field represents the name of the secondary connection. An alpha-numeric 24 character string that can only include hyphens and underscores ('-' & '_').
secondarySpeed No integer 50   Speed/Bandwidth you would like to allocate to the optional secondary connection.
secondarySpeedUnit No string MB

'MB'

'GB'

Unit of the speed or bandwidth of the optional secondary connection.
secondaryAuthorizationKey No string 123456789013  

Authorization key obtained from the provider for the optional secondary connection. Example: Account ID from AWS.

secondaryInterfaceId No integer 6   Any available interface of the virtual device.

 

If you get “Access Denied” error, contact your local Equinix Service Desk.

 

Sample response for a virtual device (non HA).

 

{
    "message": "Connection Saved Successfully",
    "primaryConnectionId": "9999a8-0e07-44d0-944c-88a25d8d28f7",

    "status": "SUCCESS"
}

 

Sample response for a virtual device with an additional secondary device for high availability (HA).

 

{
    "message": "Connection Saved Successfully",
    "primaryConnectionId": "9999a8-0e07-44d0-944c-88a25d8d28f7",

    "secondaryConnectionId": "8eadc6b3-a44c-4ce9-bdba-ead9d7789202",

    "status": "SUCCESS"
}

 

The description of the response payload is as follows:

 

Field Name Type Example Description
message string Connection created successfully Indicates the status of the API call.
primaryConnectionId string 9999a8-0e07-44d0-944c-88a25d8d28f7 Indicates the primary connection ID  of the connection established.
secondaryConnectionId string 8eadc6b3-a44c-4ce9-bdba-ead9d7789202

Optional secondary connection Id in case you have a secondary device for high availability (HA).

status string SUCCESS Successful transaction.

 

Connections transition through various states within the Equinix and AWS infrastructure. These states can be monitored using the response attributes of the  Get L2 connections {connId}. The "status" attribute indicates the connection status in Equinix and the "providerStatus" indicates the status in AWS.

 

Equinix States AWS States
status providerStatus AWS Direct Connect State Description
PROVISIONING NOT_AVAILABLE   Connection request has not been yet sent to AWS.
PROVISIONED PENDING_APPROVAL 

Ordering -> Requested 

The connection awaits for acceptance.

 

 

You will see a card stating “Accept Hosted Connection”  on your Equinix Fabric - Portal dashboard.

 

PROVISIONED PROVISIONING Pending Connection establishment in progress.
PROVISIONED PROVISIONED Pending -> Available

The connection has been accepted by the client.

 

 

These status values will only be reflected after the below "Accept Connection" step is performed. 

 

 

Refer https://docs.aws.amazon.com/directconnect/latest/APIReference/API_Connection.html for the different AWS connection states.  

 

 

When an end-user deletes a connection using the DELETE Connections {uuid}  the connection transitions through the following states within the Equinix infrastructure. 

 

Equinix States
status providerStatus Description

DEPROVISIONING

DEPROVISIONING

Connection disbandment in progress.

DEPROVISIONED DEPROVISIONED

Connection deleted.

Step 3: Accept Connection

Accept the virtual connection using AWS Management Console, Equinix Network Edge Portal, or the below API.

 

PATCH /ne/v1/l2/connections/{connid}

 Method  PATCH
 URL or End Point  /ne/v1/l2/connections/{connId}
 Headers  Authorization, Content-Type
 Query Parameters  action
 Body Parameters  AWS Access Keys (Access Key ID and Secret Access Key)

 

ConnId is an identifier unique for each connection.

 

The PATCH connections API accepts or rejects an L2 connection for a given connection connID.

 

To obtain an authorization key, refer to Requesting Access and Refresh tokens under the Getting Started section.

 

The following screenshots show a sample curl request to accept an L2 connection and its respective JSON response. 

 

curl -X

PATCH

"https://api.equinix.com/ne/v1/l2/connections/9999a8-0e07-44d0-944c-88a25d8d28f7?action=Approve"

-H "content-type: application/json"

-H "Authorization: Bearer qwErtY8zyW1abcdefGHI"

-d '{

  "accesskey":"AKIAGGJKJU7BC3QJKYQ",

  "secretkey":"CXGJW1lWbqENEqSkBAK"

}'

 

The description of the query parameters and the request payload is as follows:

 

Query Parameter Name Mandatory Type Example Applicable Values Description
action Yes string Approve

"Approve"

"Reject"

The action to perform on the connection.
connId Yes string 9999a8-0e07-44d0-944c-88a25d8d28f7   The unique identifier of the connection.

 

Body Parameter Name Mandatory Type Example Description
accesskey Yes string AKIAGGJKJU7BC3QJKYQ Special keys provided by AWS to authenticate API requests.
secretkey Yes string CXGJW1lWbqENEqSkBAK Special keys provided by AWS to authenticate API requests.

 

{
    "message": "updated connection successfully",
    "primaryConnectionId": "9999a8-0e07-44d0-944c-88a25d8d28f7"
}

 

The description of the response payload is as follows:

 

Field Name Type Example Description
message string updated connection successfully Indicates the status of the PATCH API call.
primaryConnectionID string primaryConnectionId: "9999a8-0e07-44d0-944c-88a25d8d28f7" Indicates the primary connection ID of the connection that was accepted.

 

If you get “Access Denied” error, contact your local Equinix Service Desk.

 

Refer https://docs.aws.amazon.com/directconnect/latest/UserGuide/getting_started.html for instructions on how to accept the connection using the AWS console.