Criar uma conexão iniciada no Google Cloud

Nesta página, descrevemos as etapas para criar e provisionar uma Partner Interconexão entre nuvens para conexão do Amazon Web Services (AWS) iniciada em Google Cloud.

Se você não tiver uma chave de ativação da AWS, poderá iniciar e provisionar uma interconexão entre nuvens por parceiro para uma conexão da AWS em Google Cloud.

Antes de iniciar o processo de provisionamento do Partner Interconexão entre nuvens para AWS, verifique se as seguintes condições foram atendidas:

Para ter uma conexão bem-sucedida, crie o recurso transport. Siga estas instruções para criar o transporte.

Antes de começar

Antes de começar, leia as seções a seguir.

Criar ou selecionar um projeto

Para facilitar a configuração da Partner Interconexão entre nuvens para AWS, identifique um projeto válido.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.

  5. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  6. Para inicializar a gcloud CLI, execute o seguinte comando:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Verify that billing is enabled for your Google Cloud project.

  9. Install the Google Cloud CLI.

  10. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  11. Para inicializar a gcloud CLI, execute o seguinte comando:

    gcloud init
  12. Se você estiver usando a Google Cloud CLI, defina o ID do projeto usando o comando gcloud config set.

    gcloud config set project PROJECT_ID

    Substitua PROJECT_ID pelo ID exclusivo do seu projeto.

    As instruções da CLI gcloud nesta página presumem que você tenha definido o ID do projeto.

  13. Para confirmar se você definiu o ID do projeto corretamente, use o comando gcloud config list.

    gcloud config list --format='text(core.project)'
  14. Ativar a API Network Connectivity

    Antes de executar qualquer tarefa do Cloud Interconnect, é necessário ativar a API Network Connectivity.

    Console

    Para ativar a API Network Connectivity, faça o seguinte:

    1. No console do Google Cloud , acesse a página da API Network Connectivity.

      Acessar a API Network Connectivity

    2. Clique em Ativar.

    Como alternativa, é possível ativar a API usando a biblioteca de APIs do console doGoogle Cloud , conforme descrito em Como ativar APIs.

    Inicie a conexão em Google Cloud se você não tiver uma chave de ativação

    Listar perfis disponíveis

    Para listar os perfis disponíveis em um projeto específico na região em que você quer provisionar a conectividade, siga estas etapas.

    API

    Use o método networkconnectivity.remoteTransportProfiles.list com um corpo de solicitação vazio.

    $ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://networkconnectivity.googleapis.com/v1beta/projects/PROJECT/locations/LOCATION/remoteTransportProfiles"
    

    Substitua os seguintes valores:

    • PROJECT: o nome do projeto.
    • LOCATION: o nome da região Google Cloud em que você quer provisionar a conectividade, como us-west1.

    Criar o recurso transport

    Durante o processo de criação do recurso transport, é necessário especificar os campos largura de banda, rede, remoteProfile e remoteAccountId. advertisedRoutes é um campo opcional, mas é necessário especificá-lo para garantir a conectividade da AWS. Esse campo pode ser uma lista de sub-redes IPv4 e IPv6. Se a rede usar a criação automática de sub-redes, use o valor 10.128.0.0/9 de Google Cloud.

    Para criar um recurso de transporte, siga estas etapas.

    API

    Use o método networkconnectivity.transports.create especificando o TRANSPORT_ID, semelhante ao exemplo a seguir:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" "https://networkconnectivity.googleapis.com/v1beta/projects/PROJECT/locations/LOCATION/transports?="TRANSPORT_ID" --data '{
    "network": "NETWORK",
    "remoteProfile": "REMOTE_PROFILE",
    "bandwidth": "BANDWIDTH",
    "remoteAccountId": "AWS_ACCOUNT_ID",
    "advertisedRoutes": ["IP_RANGE_1","IP_RANGE_2"],
    "stackType": "STACK_TYPE
    }'
    

    Substitua os seguintes valores:

    • PROJECT: o nome do projeto em que você quer criar o transporte.
    • LOCATION: o nome da região Google Cloud em que você quer provisionar a conectividade, como us-west1.
    • TRANSPORT_ID: um nome para o recurso de transporte.
    • NETWORK: a rede em que você quer criar o transporte.
    • REMOTE_PROFILE: o perfil em que você quer provisionar a conectividade
    • BANDWIDTH: a largura de banda escolhida para sua conexão, como BPS_1G
    • AWS_ACCOUNT_ID: o ID da sua conta da AWS
    • IP_RANGE: uma lista separada por vírgulas de intervalos de endereços IP
    • STACK_TYPE (opcional): tipo de pilha da versão do endereço IP. Precisa ser IPV4_ONLY ou IPV4_IPV6. O padrão é IPV4_ONLY.

    Na saída, encontre o valor do campo name. Ele tem o formato projects/PROJECT/locations/LOCATION/operations/OPERATION_ID, em que OPERATION_ID é o ID da sua operação.

    Para verificar o status da operação, use o método networkconnectivity.operations.get.

    GET https://networkconnectivity.googleapis.com/v1/locations/LOCATION/operations/OPERATION_ID
    

    Substitua:

    • LOCATION: o nome da região Google Cloud em que você quer provisionar a conectividade, como us-west1.
    • OPERATION_ID: o ID da operação

    Se o recurso transport tiver concluído a criação, a saída terá a linha "done": true. Copie os seguintes valores da saída para usar nas etapas posteriores:

    • O valor do campo generatedActivationKey
    • O valor do campo peeringNetwork

    Conclua as etapas na API da AWS.

    Siga as instruções no documento de referência da API da AWS usando a chave de ativação gerada na etapa anterior.

    Estabelecer o peering de rede VPC

    É possível estabelecer proativamente o peering de rede VPC na extremidadeGoogle Cloud . Para isso, use o peeringNetwork retornado do recurso transport criado anteriormente e crie um peering com o mesmo tipo de pilha. O tipo de pilha padrão corresponde ao recurso transport usando IPV4_ONLY.

    Para receber as rotas da AWS, ative o campo Import custom routes.

    A MTU na rede VPC de peering é definida explicitamente como o máximo para evitar problemas de MTU na conectividade. Se você estiver usando uma MTU menor que 8896, poderá receber um aviso WARNING: Some requests generated warnings: - Network MTU 1460B does not match the peer's MTU 8896B. Nesse caso, verifique se você está usando configurações de MTU correspondentes entre a rede VPC do Google Cloud e a rede VPC da AWS. Se eles não corresponderem, talvez seja necessário substituir os valores de MTU pelo menor denominador comum. Por exemplo, se você estiver usando 8896 em Google Cloud e 8800 na AWS, tudo em Google Cloud precisa ser configurado como 8800.

    gcloud

    Para estabelecer o peering de rede VPC, use o comando gcloud compute networks peerings create.

    gcloud compute networks peerings create "TRANSPORT_NAME" \
        --network="VPC_NETWORK"
        --peer-network="PEERING_NETWORK" \
        --import-custom-routes
        --export-custom-routes
    

    Substitua os seguintes valores:

    • TRANSPORT_NAME: o nome do transporte que você criou.
    • VPC_NETWORK: o nome da rede VPC para listar as rotas
    • PEERING_NETWORK: o nome da rede VPC fornecida pelo recurso Transport que você copiou do campo peeringNetwork do recurso transport.

    Se o comando for bem-sucedido, o campo state da saída terá o valor ACTIVE.

    API

    Para estabelecer o peering de rede VPC, use o método compute.networks.addPeering.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK/addPeering
    

    Substitua os seguintes valores:

    • PROJECT: o nome do projeto que você está fazendo peering.
    • NETWORK: o nome do recurso de rede a que adicionar peering.

    Verificar sua conexão

    Para verificar se a conectividade foi estabelecida, liste as redes VPC em peering e as tabelas de rotas. Depois que a configuração da AWS for concluída, você poderá ver as rotas da AWS na lista.

    gcloud

    Para listar as redes VPC com peering, use o comando gcloud compute networks peerings list.

    gcloud compute networks peerings list
    

    O resultado será o seguinte:

    DEST_RANGE   TYPE                   NEXT_HOP_REGION  PRIORITY  STATUS
    10.0.0.0/16  DYNAMIC_PEERING_ROUTE  us-east4         0         accepted
    10.0.0.0/16  DYNAMIC_PEERING_ROUTE  us-east4         0         accepted
    

    Para listar rotas de um transporte específico, use o comando gcloud compute networks peerings list-routes.

    gcloud compute networks peerings list-routes TRANSPORT_ID\
        --direction=INCOMING \
        --network=NETWORK \
        --region=LOCATION
    

    Substitua os seguintes valores:

    • TRANSPORT_ID: o nome do recurso de transporte.
    • NETWORK: o nome da rede VPC para listar as tabelas de rotas
    • LOCATION: o local do recurso de transporte

    API

    Para listar as redes com peering, use o método compute.networks.list.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT/global/networks
    

    Substitua PROJECT pelo nome do projeto em que você quer listar as redes.

    Para listar rotas, use o método compute.routes.listPeeringRoutes.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK/listPeeringRoutes
    

    Substitua os seguintes valores:

    • PROJECT com o nome do projeto para o qual você quer listar as rotas.
    • NETWORK: o nome da rede VPC para listar as tabelas de rotas

    A seguir