Connect Fabric Cloud Router To Amazon Web Services
Establish a direct layer 2 connection between your Fabric Cloud Router
and your Amazon Web Services (AWS) resource.
Step 1: Identify Your Amazon Account ID
Log in to AWS Management Console and locate your account number.
Refer to https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html for instructions on how to find your account number.
Step 2: Create Connection
1. Find your Fabric Cloud Router
If you already have a Fabric Cloud Router, find it by calling
Get Specified Fabric Cloud Router
or
Retrieve Fabric Cloud Routers.
If you do not have a Fabric Cloud Router,
Create a Fabric Cloud Router.
2. Authenticate
Submit your user credentials, Client ID, and Client Secret for OAuth2 authentication.
Refer to Generating Client ID and Client Secret under the Getting Access Token section for instructions on how to create client ID and client secret and refer to Requesting Access and Refresh tokens section for instructions on how to call Oauth API to validate and authenticate your credentials.
If you are unaware of your user credentials for Equinix Fabric, contact your local Equinix Service Desk.
3. Establish connection
Use the POST /fabric/v4/connections API request to create a
connection.
POST /fabric/v4/connections | |
---|---|
Method | POST |
Endpoint | /fabric/v4/connections |
Headers | Authorization, Content-Type |
Path Parameters | Not applicable |
Query Parameters | Not applicable |
Body Parameters | type, name, order, bandwidth, project, redundancy, aSide, zSide, notifications |
Use the Retrieve Pricing API request to retrieve connection price estimate.
Sample curl request to create a PRIMARY connection from your FCR to AWS
curl -X
POST 'https://api.equinix.com/fabric/v4/connections'
-H 'content-type: application/json'
-H 'authorization: Bearer qwErtY8zyW1abcdefGHI'
-d '
{
"type": "IP_VC",
"name": "sr-testing-fcr-t0-aws",
"bandwidth": 50,
"redundancy": {
"priority": "PRIMARY"
},
"order": {
"purchaseOrderNumber": "4567890",
"customerReferenceNumber": "354789"
},
"aSide": {
"accessPoint": {
"type": "CLOUD_ROUTER",
"router": {
"uuid": "35176c05-d439-4ef6-b6e0-b471ef54167d"
}
}
},
"zSide": {
"accessPoint": {
"type": "SP",
"profile": {
"type": "L2_PROFILE",
"uuid": "74c5b44a-1b5c-403e-b25b-e252ff3f7535"
},
"location": {
"metroCode": "DC"
},
"authenticationKey": "123456789012",
"sellerRegion": "us-east-1"
}
},
"project": {
"projectId": "188572000188973"
},
"notifications": [
{
"type": "ALL",
"emails": [
"x@equinix.com"
]
}
]
}
'
Body parameters
Parameter
|
Description |
---|---|
type
string REQUIRED |
Connection type.
|
name
string REQUIRED |
Connection name. Applicable values:
|
order
object OPTIONAL |
Order details. |
purchaseOrderNumber
string OPTIONAL |
Subscriber's purchase order identifier. Example: 1-129105284100 |
bandwidth
integer REQUIRED |
Connection speed in Mbps. Applicable values:
|
redundancy
object CONDITIONAL |
Connection redundancy configuration. |
group
string CONDITIONAL |
Unique Id of the redundancy group. This is only required for
secondary connections. If you are creating a secondary
connection, enter the group of the PRIMARY. You can find the
group of the primary connection by calling Get Specified
Connection or by checking the "group" field in the response you
receive when creating PRIMARY connection. Example: 5c0e9384-aa79-4ec9-b7a2-557f8c307292 |
priority
string CONDITIONAL |
Whether the connection is PRIMARY or SECONDARY. Don't provide a
redundancy group for a PRIMARY connection. Applicable value:
|
aSide
object REQUIRED |
Source definition. |
accessPoint
object REQUIRED |
Connection endpoint configuration from the A-Side. |
type
string REQUIRED |
Connection endpoint type.
|
router
object REQUIRED |
Fabric Cloud Router details. |
uuid
string REQUIRED |
Unique Id of the Fabric Cloud Router. Example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
zSide
object REQUIRED |
Z-side details. |
accessPoint
object REQUIRED |
Connection endpoint configuration. |
type
string REQUIRED |
Connection endpoint type.
|
profile
object REQUIRED |
A named provider service and its network connectivity
requirements. Applicable to SP type access
points.Call Retrieve Service Profiles API to search for service profiles and determine their identifiers and available locations. |
uuid
string REQUIRED |
Service profile identifier. Example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
type
string OPTIONAL |
Service profile type. Example:
|
location
object REQUIRED |
Connection endpoint location information. Applicable to SP type access points.
|
metroCode
string REQUIRED |
Metropolitan area identifier. Call Get Specified Service Profile API to determine where a given service is available. |
sellerRegion
string REQUIRED |
Seller region. Example: us-west1 |
authenticationKey
string REQUIRED |
AWS accound Id. Example: 1234567890 |
notifications
array[object] REQUIRED |
Notification settings for messages related to the asset configuration or its status. |
type
string REQUIRED |
Notification messages category. Applicable values:
|
emails
array[string] REQUIRED |
Email addresses of up to 12 recipients. Example:["x@y.com","x@y.com"] |
If you get “Access Denied” error, contact your local Equinix Service Desk for Equinix Fabric Portal access.
Sample response - connection from a Fabric Cloud Router to Amazon Web Services
{
"type": "IP_VC",
"href": "https://uatapi.npclouda.equinix.com/fabric/v4/connections/6fe512be-c0ce-40c7-bd05-119f9901f435",
"uuid": "6fe512be-c0ce-40c7-bd05-119f9901f435",
"name": "sr-testing-fcr-t0-aws",
"operation": {
"providerStatus": "PROVISIONING",
"equinixStatus": "PROVISIONING"
},
"order": {
"purchaseOrderNumber": "4567890",
"billingTier": "Up to 50 MB"
},
"notifications": [
{
"type": "ALL",
"emails": [
"x@equinix.com"
]
}
],
"changeLog": {
"createdBy": "amcrh008visionmanager",
"createdByFullName": "amcrh008visionmanager amcrh008visionmanager",
"createdByEmail": "x@equinix.com",
"createdDateTime": "2024-06-15T20:12:53.340Z",
"updatedBy": "amcrh008visionmanager",
"updatedByFullName": "amcrh008visionmanager amcrh008visionmanager",
"updatedByEmail": "x@equinix.com",
"updatedDateTime": "2024-06-15T20:12:53.340Z"
},
"bandwidth": 50,
"redundancy": {
"group": "854d9cf7-3635-4f96-8633-36577586ec92",
"priority": "PRIMARY"
},
"aSide": {
"accessPoint": {
"type": "CLOUD_ROUTER",
"router": {
"href": "https://uatapi.npclouda.equinix.com/fabric/v4/routers/35176c05-d439-4ef6-b6e0-b471ef54167d",
"uuid": "35176c05-d439-4ef6-b6e0-b471ef54167d",
"name": "fcr1"
}
}
},
"zSide": {
"accessPoint": {
"location": {
"metroCode": "DC"
},
"profile": {
"href": "https://uatapi.npclouda.equinix.com/fabric/v4/serviceProfiles/74c5b44a-1b5c-403e-b25b-e252ff3f7535",
"type": "L2_PROFILE",
"name": "AWS Direct Connect",
"uuid": "74c5b44a-1b5c-403e-b25b-e252ff3f7535"
},
"sellerRegion": "us-east-1",
"authenticationKey": "123456789012"
}
}
}
Response payload body description
Parameter
|
Description |
---|---|
href
string |
An absolute URL that returns the specified connection. Example:https://api.equinix.com/fabric/v4/connections/3a58dd05-f46d-4b1d-a154-2e85c396ea62 |
uuid
string |
Equinix-assigned connection identifier. Example: XXXXXXXXXXXXXXXXXXXXXXXXXX |
order
object |
Order information. |
billingTier
string |
Billing tier for connection bandwidth. Example: Up to 1 Gbps |
bandwidth
string |
Bandwidth. Example: Up to 1 Gbps |
redundancy
object |
Redundancy details. |
group
string |
Unique Id of the redundancy group. |
priority
string |
Whether the connection is PRIMARY or SECONDARY. |
project
object |
Project details. |
projectId
string |
Unique Id of the project. Example: 16799d66-ef43-445c-ba29-d17522XXXXXX |
aSide
object |
Source definition. |
accessPoint
object |
Connection endpoint configuration from the A-side. |
type
string |
Connection endpoint type. Example: CLOUD_ROUTER |
router
object |
Router details. |
href
string |
An absolute URL of the router. Example:https://api.equinix.com/fabric/v4/routers/bc05f9c9-d5c9-4b9e-a54f-d63a18a452ed |
uuid
string |
Unique Id of the router. Example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
name
string |
Name of the router. Example: FCR-AWS |
zSide
object |
Destination definition. |
accessPoint
object |
Connection endpoint configuration from the Z-side. |
profile
object |
The service profile associated with this access point. |
href
string |
An absolute URL that returns complete specification of the given
entity. Example:https://api.equinix.com/fabric/v4/serviceProfiles/ea4b5141-e4d2-49f1-9768-4ea6e215b37f |
type
string |
Service profile type. Example:
|
uuid
string |
Unique Id of the service profile. Example: 20d32a80-0d61-4333-bc03-707b591ae2f5 |
location
object |
Connection endpoint location information. Applicable to SP type access points.
|
href
string |
An absolute URL that returns the location details. Example:https://api.equinix.com/fabric/v4/serviceProfiles/ea4b5141-e4d2-49f1-9768-4ea6e215b37f |
metroCode
string |
Metropolitan area identifier. Example: DC |
sellerRegion
string |
Seller region. Example: us-west1 |
authenticationKey
string |
Amazon Account ID. Example: 1234567890 |
notifications
array[object] |
Notification settings for messages. |
type
string |
Notification messages category. Applicable values:
|
emails
array[string] |
Email addresses of up to 12 recipients. Example:["x@y.com","x@y.com"] |
operation
object |
Connection operational data. |
equinixStatus
string |
Status of the connection on the Equinix side. Example: PROVISIONING |
providerStatus
string |
Status of the connection on the provider side. Example: NOT_AVAILABLE |
changeLog
object |
A permanent record of asset creation, modification, or deletion. |
createdBy
string |
Identity of the asset creator. Example: AverageJoe |
createdDateTime
string |
Asset creation timestamp in the IETF ISO 8601 extended date/time
format: YYYY-MM-DDTHH:MM:SS.000+0000 Example: 2021-07-15T19:30:29.526Z |
Use the Get Specified Connection API request to monitor connection status.
equinixStatus attribute values |
providerStatus
attribute values |
Description |
PENDING_INTERFACE_CONFIGURATION | NOT_AVAILABLE | You need to configure the connection. |
PROVISIONED | AVAILABLE | Connection is provisioned and available. |
Step 3: Accept Connection
You can accept the connection on the Fabric portal or in your AWS console. You can also accept the connection through an API call by passing the connection Id as a path parameter and the accessKey and secretKey in the body of the payload.
Sample curl request to accept connection
curl -X
POST 'https://api.equinix.com/fabric/v4/connections/c31199e6-e776-4017-9433-ad97a2c9848c'
-H 'content-type: application/json'
-H 'authorization: Bearer qwErtY8zyW1abcdefGHI'
-d '[
{
"op": "add",
"path": "/zSide",
"value": {
"additionalInfo": [
{
"key": "accessKey",
"value": "AKIA4TNUPZNEUHUXXXXXXX"
},
{
"key": "secretKey",
"value": "1EQ2rm137ldG3H8TFGQastXXXXXXXXXX"
}
]
}
}
]'
Step 4: Configure Connection
Call the API Create Routing Protocol Instance (Direct or BGP) or Create Routing Protocol Instances (Direct and BGP) to add routing protocol definition to connection. You must add at least the Direct routing protocol details to the connection for it to be provisioned. BGP routing protocols allow you to connect to the servers connected to the VLAN.