> ## Documentation Index
> Fetch the complete documentation index at: https://docs.megaport.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuring and Maintaining AWS Hosted Connections

> This help topic describes how to configure and maintain AWS Hosted Connections with Megaport.

export const Video = ({url, text, duration, description}) => {
  const errorPrefix = '\x1b[31;1;4mERROR\x1b[0m: Video -';
  if (typeof url !== 'string') {
    url = String(url);
  }
  if (typeof text !== 'string') {
    text = String(text);
  }
  if (!url || url === 'undefined') {
    console.error(`${errorPrefix} the \`url\` property is required — rendering an empty string instead`);
    return <></>;
  }
  if (!text || text === 'undefined') {
    console.error(`${errorPrefix} the \`text\` property is required — rendering an empty string instead`);
    return <></>;
  }
  const youtubeIconMask = "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6-11.4 42.9-11.4 132.3-11.4 132.3s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232 336V176l142.7 80z'/%3E%3C/svg%3E\")";
  return <div className="video-callout">
      <div className="callout my-4 flex gap-3 overflow-hidden rounded-2xl border px-5 py-4">
        <div className="mt-0.5 w-4 shrink-0" data-component-part="callout-icon">
          <svg aria-hidden="true" className="size-4 shrink-0" style={{
    WebkitMaskImage: youtubeIconMask,
    maskImage: youtubeIconMask,
    WebkitMaskRepeat: 'no-repeat',
    maskRepeat: 'no-repeat',
    WebkitMaskPosition: 'center',
    maskPosition: 'center',
    backgroundColor: '#0284c7'
  }} />
        </div>
        <div className="min-w-0 w-full text-sm" data-component-part="callout-content">
          <strong>
            Video:{' '}
            <a href={url} target="_blank" rel="noopener noreferrer">
              {text}
              <span className="sr-only"> (opens in a new tab)</span>
            </a>
          </strong>
          {}
          {duration && <> ({duration})</>}
          {}
          {description && <p className="mt-1 mb-0 text-xs text-gray-500 dark:text-gray-400">
              {description}
            </p>}
        </div>
      </div>
    </div>;
};

export const Anchor = ({name}) => {
  const errorPrefix = '\x1b[31;1;4mERROR\x1b[0m: Anchor -';
  if (name === undefined || name === null || name === 'undefined') {
    console.error(`${errorPrefix} \`name\` must have a value — rendering an empty string instead`);
    return <></>;
  }
  const raw = typeof name === 'string' ? name : JSON.stringify(name);
  const id = raw.replace(/\s+/g, '-').replace(/[^A-Za-z0-9_-]/g, '').replace(/-+/g, '-').replace(/^-+|-+$/g, '');
  if (!id) {
    console.error(`${errorPrefix} \`name\` "${name}" sanitizes to an empty id — rendering an empty string instead`);
    return <></>;
  }
  return <a style={{
    scrollMarginTop: 'var(--scroll-mt)'
  }} id={id}></a>;
};

export const Image = ({src, alt = '', caption, width, height, shadow}) => {
  const errorPrefix = '\x1b[31;1;4mERROR\x1b[0m: Image -';
  if (typeof src !== 'string') {
    src = String(src);
  }
  if (!src || src === 'undefined') {
    console.error(`${errorPrefix} \`src\` is required — rendering an empty string instead`);
    return <></>;
  }
  const img = <img className={['mega-image-style', shadow ? 'shadow' : ''].join(' ')} src={src} alt={alt} width={width} height={height} style={{
    display: 'block'
  }} />;
  return caption ? <figure>
      {img}
      <figcaption style={{
    textAlign: 'center',
    width
  }}>{caption}</figcaption>
    </figure> : img;
};

export const Link = ({href, children}) => {
  const errorPrefix = '\x1b[31;1;4mERROR\x1b[0m: Link -';
  if (typeof href !== 'string') {
    href = String(href);
  }
  if (!href || href === 'undefined') {
    console.error(`${errorPrefix} the \`href\` property is required — rendering an empty string instead`);
    return <></>;
  }
  if (href.includes('{') || href.toUpperCase().includes('%7B')) {
    console.error(`${errorPrefix} could not resolve a variable in href "${href}" — rendering an empty string instead`);
    return <></>;
  }
  const isExternal = (/^https?:\/\//).test(href);
  return <a href={href} className="link" target={isExternal ? '_blank' : undefined} rel={isExternal ? 'noreferrer' : undefined}>
      {children ?? href}
      {isExternal && <span className="sr-only"> (opens in a new tab)</span>}
    </a>;
};

A Hosted Connection is an AWS Direct Connect service that provisions connectivity on demand over pre-provisioned network circuits. A Hosted Connection can support one private, public, or transit VIF.

Each Hosted Connection supports a single VIF and you can obtain multiple VIFs by configuring multiple hosted connections.

<Image src="/images/cloud/megaport/aws/aws-hc-transit-vif.png" alt="Hosted Connection" width={900} />

<Video url="https://youtu.be/4ByalC3xVlU" text="AWS Hosted Connections" duration="10:38" description="This video shows how to create and configure an AWS Hosted Connection in the Megaport Portal and the AWS console, including selecting a destination port, achieving diversity across zones, and configuring BGP." />

## Diverse connections

Hosted Connections support diverse connections. Diverse connections improve the robustness of your network by using different physical infrastructure to build in redundancy and eliminate single points of failure. You can achieve diversity by connecting to AWS ports in different diversity zones. Each destination port has either a red or blue icon to indicate the diversity zone.

<Image src="/images/cloud/megaport/aws/diversity-zone-icons.png" alt="Diversity zones" shadow={true} width={500} />

To create diverse connections, you need to create two connections: one connection for each diversity zone.

## Before you begin

To deploy an AWS Hosted Connection, you need your [AWS Account number](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingYourAccountIdentifiers)
and the details of the VPC environment. Ensure that you have already configured the Direct Connect gateway, AWS gateway, VPCs, and related attachments and associations. The AWS documentation provides detailed steps for VPC configuration as well as how to create and deploy each type of gateway.

## Creating a Hosted Connection

Unlike configuring a Hosted VIF, where the virtual interface and associated Layer 3 details are automatically provisioned, when you configure a Hosted Connection you must provision the virtual interface.

**To create a Hosted Connection**

1. In the <Link href="https://portal.megaport.com">Megaport Portal</Link>, go to the **Services** page and select the Port you want to use.\
   If you haven’t already created a Port, see [Creating a Port](/connections/creating-port).

2. Add an AWS connection for the Port.\
   If this is the first connection for the Port, click the AWS tile.
   The tile is a shortcut to the configuration page. Alternatively, click **+Connection**, click **Cloud**, then click **AWS**.
   <Image src="/images/cloud/megaport/aws/aws-new-connection.png" alt="Add AWS connection" shadow={true} width={700} />

3. For AWS Connection Type, click **Hosted Connection**.
   <Image src="/images/cloud/megaport/aws/aws-hosted-connection.png" alt="Hosted Connection" shadow={true} width={700} />

4. In the **Select Destination Port** list, select the AWS region and the interconnection point for your connection, then click **Next**.\
   You can use the Select Destination Port search field to narrow the selection. You can also filter by diversity zone.\
   Each destination port has either a blue or red icon to indicate its diversity zone. To achieve diversity, you need to create two connections with each one in a different zone.

   <Image src="/images/cloud/megaport/aws/aws-hc-destination-port.png" alt="Add AWS connection" shadow={true} width={600} />

5. Specify the connection details:

   * **Connection Name** -- The name of your VXC to be shown in the <Link href="https://portal.megaport.com">Megaport Portal</Link>.

   * **Service Level Reference** (optional) -- Specify a unique identifying number for your Megaport service to be used for billing purposes, such as a cost center number, unique customer ID, or purchase order number. The service level reference number appears for each service under the Product section of the invoice. You can also edit this field for an existing service.

   * **Rate Limit** -- The speed of your connection. The speed cannot be changed once deployed. The drop-down list shows predefined rate limits available for your Port. Higher speeds might be available depending on location and Port capabilities.

   * **VXC State** -- Select **Enabled** or **Shut Down** to define the initial state of the connection. For more information, see [Shutting Down a VXC for Failover Testing](/connections/shut-down-vxc).

     <Note>
       If you select **Shut Down**, traffic will not flow through this service and it will behave as if it was down on the Megaport network. Billing for this service will remain active and you will still be charged for this connection.
     </Note>

   * **Preferred A-End VLAN** (optional) -- Specify an unused VLAN ID for this connection.\
     This must be a unique VLAN ID on this Port and can range from 2 to 4093. If you specify a VLAN ID that is already in use, the system displays the next available VLAN number. The VLAN ID must be unique to proceed with the order. If you don't specify a value, Megaport will assign one.

     Alternatively, you can select **Untagged** to remove the VLAN tagging for this connection. The untagged option limits you to only one VXC deployed on this Port. (The VLAN for the AWS side termination will be automatically allocated and will not affect your Port details.) You must use untagged VLANs if you are creating a MACsec connection.

   * **Minimum Term** -- Select No Minimum Term, 12 Months, 24 Months, 36 Months, 48 Months, or 60 Months. Longer terms result in a lower monthly rate. *12 Months* is selected by default. Take note of the information on the screen to avoid early termination fees (ETF).

     Enable the [Minimum Term Renewal](/portal-admin/auto-renew/#auto-renew) option for services with a 12, 24, 36, 48 or 60-month term to automatically renew the contract at the same discounted price and term length at the end of the contract. If you don't renew the contract, at the end of the term,  the contract will automatically roll over to month-to-month contract for the following billing period, at the same price, without term discounts.

     For more information, see [VXC Pricing and Contract Terms](/finance/vxc-pricing) and [VXC, Megaport Internet, and IX Billing](/finance/billing-details).

   * **Resource Tags** -- You can use resource tags to add your own reference metadata to a Megaport service.\
     To add a tag:
     1. Click **Add Tags**.
     2. Click  **Add New Tag**.
     3. Enter details into the fields:
        * **Key** -- string maximum length 128. Valid values are a-z 0-9 \_ : . / \ -
        * **Value** -- string maximum length 256. Valid values are a-z A-Z 0-9 \_ : . @ / + \ - (space)
     4. Click **Save**.
        If you already have resource tags for that service, you can manage them by clicking **Manage Tags**.
     <Warning>
       Never include sensitive information in a resource tag. Sensitive information includes commands that return existing tag definitions and information that will identify a person or company.
     </Warning>

   <Image src="/images/cloud/megaport/port-cloud-create-details.png" alt="Add Hosted Connection" shadow={true} width={500} />

6. Click **Next**.

7. Specify the cloud details.

   * **AWS Connection Name** -- This is a text field and will be the name of your virtual interface that appears in the AWS console. For easy mapping, the field defaults to the same name you specified
     for the VXC name on the previous screen.

   * **AWS Account ID** -- This is the ID of the account you want to connect. You can find this value in the management section of your AWS console.

     <Image src="/images/cloud/megaport/aws/aws-hc-aws-details.png" alt="Add Hosted Connection" shadow={true} width={450} />

8. Click **Next**.\
   A summary page appears that includes the monthly cost.

9. Click **Back** to make changes or click **Add VXC** to move this
   configuration to your cart.\
   Once you have finished this
   configuration, you can configure additional VXCs or proceed through
   the checkout process.

10. Click **Review Order** to proceed through the checkout process, or click **Save** to save the configured services before placing the order.

11. Review the Important Information section and confirm agreement with the Service Agreements.

    If you do not have a promotion code, skip to the **Order Now** step. If you do have a promotion code, enter it into the **Enter discount code** field then click **Apply**. Alternatively, if a code already appears in the **Discounts** field, verify it is correct and click **Apply**.

    The promotional discount appears below the Standard Term discount.  This discount is not reflected in the Monthly Rate shown here, it is applied at the time of billing.  If an invalid or expired code causes an error with your order, contact your Megaport Account Manager for a replacement code.

    <Image src="/images/snippets/add-promo-code.png" alt="Add Promo Code" shadow={true} width={750} />

    If you entered an incorrect promotion code, you can remove it by clicking **Remove**.

12. Click **Order Now**.

    Megaport will deploy the connection. The deployment can take several minutes.

After creating a Hosted Connection, you need to accept it in the AWS console to activate it.

**To accept a Hosted Connection**<Anchor name="accept" />

1. In AWS, go to Services > AWS Direct Connect > Connections and
   click the connection name.
   <Image src="/images/cloud/megaport/aws/aws-hc-connections.png" alt="AWS Connections" shadow={true} width={800} />

2. Click **Accept** at the top right of the window.

   <Image src="/images/cloud/megaport/aws/aws-hc-accept-connection.png" alt="Accept AWS Connections" shadow={true} width={800} />

   The state will be pending for a few minutes while AWS deploys the
   connection. After it is deployed, the state changes from "ordering" to
   "available."

   <Image src="/images/cloud/megaport/aws/aws-hc-connection-available.png" alt="AWS connection state" shadow={true} width={800} />

The connection is now available, however you need to create a VIF to connect to AWS services.

<Note>
  For more information about accepting AWS connections, see the
  [AWS documentation](https://docs.aws.amazon.com/directconnect/latest/UserGuide/accept-hosted-connection.html).
</Note>

## Creating a virtual interface

Once you have created and accepted a Hosted Connection, create a VIF and attach the Hosted Connection to a gateway.

<Note>
  AWS provides
  [detailed instructions](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-vif.html) for creating Public, Private, and Transit interfaces.
</Note>

**To create and attach a VIF**

1. In the AWS console, click **Create Virtual Interface**.
   <Image src="/images/cloud/megaport/aws/aws-hc-create-vif.png" alt="AWS virtual interface" shadow={true} width={800} />

2. Select the interface type.

   The type will vary depending on the type of service you need to access.

   * **Private** -- Access resources running into a VPC using their private IP addresses. You can choose to terminate a private virtual interface on a private virtual gateway (to access a single VPC) or to a Direct Connect gateway (this will give you a 1 VIF to 10 VPCs mapping).
   * **Public** -- Access all AWS public endpoints, as well as all AWS resources that are reachable by a public IP address.
   * **Transit** -- Transport traffic from a Direct Connect gateway to one or more transit gateways.

   <Image src="/images/cloud/megaport/aws/aws-hc-transit-vif-settings.png" alt="AWS interface type" shadow={true} width={800} />

3. Specify the configuration details:

   * **Virtual interface name** -- Enter a name for the virtual interface.
   * **Connection** -- The physical connection where you want this virtual interface to be provisioned. The name you provided for the Hosted Connection in the Megaport Portal appears here.
   * **Virtual interface owner** -- The account that will own the virtual interface. Select My AWS account.
   * **Direct Connect gateway** -- Select the Direct Connect gateway to attach this virtual interface to. A transit VIF is not directly attached to a Transit gateway, but to a Direct Connect gateway.
   * **VLAN** -- The VLAN assigned to the virtual interface. Leave this value as is. The VLAN address is populated and appears to be editable; however, you will get an error if you try to change it. VLANs cannot be extended from on-premises to AWS, and are used only for traffic separation between different virtual interfaces.
   * **BGP ASN** -- Enter the Border Gateway Protocol (BGP) autonomous system number (ASN) for the on-premises side of the BGP session.

   The following BGP details can be filled out or left blank. When left blank, they are auto-populated by AWS.

   <Image src="/images/cloud/megaport/aws/aws-hc-bgp-settings.png" alt="AWS BGP details" shadow={true} width={800} />

   <Note>
     If you are using this connection with an MCR, you need to
     populate the router peer IP addresses and BGP authentication
     key. (The fields are optional, so you can leave them blank for
     the initial creation and add the values later.) You also need
     to ensure you enter the same values for the MCR VXC in the
     Portal in the standard MCR A-End user interface. Without these
     values, you cannot establish BGP peering. For detailed
     information, see [Creating MCR Connections to AWS](/cloud/mcr/aws).
   </Note>

   You can also choose whether you want the virtual interface to support Jumbo frames. Enable Jumbo MTU to support an Ethernet packet of 8500 bytes.

4. Click **Create virtual interface**.

   To view the VIF details and state, navigate to Services > AWS Direct Connect > Connections > Name of the Megaport-Created-Hosted Connection.

   <Image src="/images/cloud/megaport/aws/aws-hc-vif-state.png" alt="VIF details" shadow={true} width={800} />

   If BGP hasn’t been configured, the interface state will be shown as “down.”

The last step is to configure BGP on the on-premises network device. The [AWS documentation](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-vif.html#vif-router-config) provides details on how to download the router configuration as a unique feature of Hosted Connections. If you have a Megaport Cloud Router (MCR) instead of an on-premises device, see [Creating MCR Connections to AWS](/cloud/mcr/aws).

<Note>
  If you download the router configuration files, verify that the AWS and Megaport VXC VLAN numbers match. While in most cases Megaport uses the same VLAN number as AWS, the VLAN might be different in the Port configuration that is connected to your on-premises device given the automation of the platform.
</Note>

Once you accept the connection and create the VIF in AWS, the VXC state changes to “configured” in the Megaport Portal.

**To edit a Hosted Connection**

* Click the gear icon next to the connection in the Megaport Portal to make changes.

  <Image src="/images/cloud/megaport/aws/aws-gear-icon.png" alt="Edit a Hosted Connection" shadow={true} width={200} />

  You cannot change the rate limit or the AWS connection name or
  account ID for Hosted Connections.
  You can modify the details on the Megaport side including the
  connection name, VLAN ID, and Service Level Reference.\
  If this is a termed connection, you cannot reduce the term.\
  Once submitted, those changes take effect in a few minutes.

**To delete a Hosted Connection**

1. In AWS, open the AWS Direct Connect console.
2. Delete the virtual interface and then delete the connection.\
   You can only delete a connection if there are no virtual interfaces attached to it.
3. In the <Link href="https://portal.megaport.com">Megaport Portal</Link>, click the trash icon next to the VXC and confirm the deletion when prompted.

   <Image src="/images/cloud/megaport/aws/aws-trash-icon.png" alt="Trash icon" shadow={true} width={200} />

   For more information, see [Terminating a VXC](/connections/terminating-vxc).

   Until you delete the virtual interface and connection in the AWS console, you cannot delete the VXC in the Megaport Portal.
