

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como gerenciar seus próprios endpoints da Amazon VPC no Amazon MWAA
<a name="vpc-endpoint-management"></a>

O Amazon MWAA usa endpoints do Amazon VPC para se integrar a vários AWS serviços necessários para configurar um ambiente Apache Airflow. O gerenciamento de seus próprios endpoints tem dois casos de uso principais:

1. Isso significa que você pode criar ambientes Apache Airflow em um Amazon VPC compartilhado ao usar [AWS Organizations](https://aws.amazon.com/organizations/)um para gerenciar vários recursos e compartilhar. Contas da AWS 

1. Ele permite usar políticas de acesso mais restritivas, limitando suas permissões aos recursos específicos que usam seus endpoints.

Caso opte por gerenciar seus próprios endpoints da VPC, você será responsável por criar seus próprios endpoints para o ambiente RDS para o banco de dados PostgreSQL e para o servidor Web do ambiente.

Para obter mais informações sobre como o Amazon MWAA implanta o Apache Airflow na nuvem, consulte o [diagrama de arquitetura do Amazon MWAA](what-is-mwaa.md#architecture-mwaa).

**Importante**  
O Amazon MWAA não valida a seleção do tipo de endereço IP (`AddressType`) para endpoints gerenciados pelo cliente, portanto, certifique-se de especificar corretamente `AddressType` (as opções válidas são ou). IPv4 IPv6



## Como criar um ambiente em uma Amazon VPC compartilhada
<a name="configure-shared-vpc"></a>

Se você usa [AWS Organizations](https://aws.amazon.com/organizations/)para gerenciar vários Contas da AWS que compartilham recursos, você pode usar VPC endpoints gerenciados pelo cliente com o Amazon MWAA para compartilhar recursos ambientais com outra conta em sua organização.

Ao configurar o acesso compartilhado à VPC, a conta proprietária da Amazon VPC central (*proprietário*) compartilha as duas sub-redes privadas exigidas pelo Amazon MWAA com outras contas (*participantes*) que pertencem à mesma organização. As contas participantes que compartilham essas sub-redes podem exibir, criar, modificar e excluir ambientes na Amazon VPC compartilhada.

Suponha que você tenha uma conta, `Owner`, que atua como a conta `Root` na organização e possui os recursos da Amazon VPC, e uma conta participante, `Participant`, um membro da mesma organização. Quando `Participant` criar um Amazon MWAA na Amazon VPC que compartilha com `Owner`, o Amazon MWAA primeiro criará os recursos de VPC do serviço e, em seguida, entrará em um estado [https://docs.aws.amazon.com/mwaa/latest/API/API_Environment.html#mwaa-Type-Environment-Status](https://docs.aws.amazon.com/mwaa/latest/API/API_Environment.html#mwaa-Type-Environment-Status) por até 72 horas.

Depois que o status do ambiente muda de `CREATING` para `PENDING`, uma entidade principal agindo em nome de `Owner` cria os endpoints necessários. Para fazer isso, o Amazon MWAA lista o endpoint do banco de dados e do servidor Web no console do Amazon MWAA. Você também pode chamar a ação da API []() para obter os endpoints do serviço.

**nota**  
Se a Amazon VPC que você usa para compartilhar recursos for uma Amazon VPC privada, ainda será necessário concluir as etapas descritas em [Como gerenciar o acesso a endpoints da Amazon VPC específicos do serviço no Amazon MWAA](vpc-vpe-access.md). O tópico aborda a configuração de um conjunto diferente de endpoints do Amazon VPC relacionados a outros AWS serviços que AWS se integram, como Amazon ECR, Amazon ECS e Amazon SQS. Esses serviços são essenciais para operar e gerenciar o ambiente do Apache Airflow na nuvem.

### Pré-requisitos
<a name="configure-shared-vpc-prerequisites"></a>

Antes de criar um ambiente do Amazon MWAA em uma VPC compartilhada, você precisa dos seguintes recursos:
+ E Conta da AWS, `Owner` para ser usada como a conta proprietária da Amazon VPC.
+ Uma unidade organizacional do [AWS Organizations](https://aws.amazon.com/organizations/), um `MyOrganization` criado como *raiz*.
+ Um segundo Conta da AWS,`Participant`, abaixo `MyOrganization` para servir a conta do participante que cria o novo ambiente.

Além disso, recomendamos se familiarizar com as [responsabilidades e permissões dos proprietários e participantes](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations) ao compartilhar recursos na Amazon VPC.

### Criar a Amazon VPC
<a name="configure-shared-vpc-create-vpc"></a>

Primeiro, crie uma Amazon VPC que as contas proprietária e participante compartilharão:

1. Entre no console usando e`Owner`, em seguida, abra o CloudFormation console. Use o modelo a seguir para criar uma pilha. Essa pilha provisiona vários recursos de rede, incluindo uma Amazon VPC, e as sub-redes que as duas contas compartilharão nesse cenário.

   ```
   AWSTemplateFormatVersion: "2010-09-09"                   
   Description: >-
   This template deploys a VPC, with a pair of public and private subnets spread across two Availability Zones. It deploys an internet gateway, with a default route on the public subnets. It deploys a pair of NAT gateways (one in each AZ), and default routes for them in the private subnets.
    Parameters:
      EnvironmentName:
        Description: An environment name that is prefixed to resource names
        Type: String
        Default: mwaa-
      VpcCIDR:
        Description: Please enter the IP range (CIDR notation) for this VPC
        Type: String
        Default: 10.192.0.0/16
      PublicSubnet1CIDR:
        Description: >-
        Please enter the IP range (CIDR notation) for the public subnet in the first Availability Zone
        Type: String
        Default: 10.192.10.0/24
      PublicSubnet2CIDR:
        Description: >-
        Please enter the IP range (CIDR notation) for the public subnet in the	second Availability Zone
        Type: String
        Default: 10.192.11.0/24
      PrivateSubnet1CIDR:
        Description: >-
        Please enter the IP range (CIDR notation) for the private subnet in the first Availability Zone
        Type: String
        Default: 10.192.20.0/24
      PrivateSubnet2CIDR:
        Description: >-
        Please enter the IP range (CIDR notation) for the private subnet in the second Availability Zone
        Type: String
        Default: 10.192.21.0/24
    Resources:
      VPC:
        Type: 'AWS::EC2::VPC'
        Properties:
        CidrBlock: !Ref VpcCIDR
        EnableDnsSupport: true
        EnableDnsHostnames: true
        Tags:
          - Key: Name
          Value: !Ref EnvironmentName
      InternetGateway:
        Type: 'AWS::EC2::InternetGateway'
        Properties:
        Tags:
          - Key: Name
          Value: !Ref EnvironmentName
      InternetGatewayAttachment:
        Type: 'AWS::EC2::VPCGatewayAttachment'
        Properties:
          InternetGatewayId: !Ref InternetGateway
          VpcId: !Ref VPC
      PublicSubnet1:
        Type: 'AWS::EC2::Subnet'
        Properties:
          VpcId: !Ref VPC
          AvailabilityZone: !Select 
            - 0
            - !GetAZs ''
          CidrBlock: !Ref PublicSubnet1CIDR
          MapPublicIpOnLaunch: true
          Tags:
            - Key: Name
            Value: !Sub '${EnvironmentName} Public Subnet (AZ1)'
      PublicSubnet2:
        Type: 'AWS::EC2::Subnet'
        Properties:
   						VpcId: !Ref VPC
          AvailabilityZone: !Select 
            - 1
            - !GetAZs ''
          CidrBlock: !Ref PublicSubnet2CIDR
          MapPublicIpOnLaunch: true
          Tags:
            - Key: Name
            Value: !Sub '${EnvironmentName} Public Subnet (AZ2)'
      PrivateSubnet1:
        Type: 'AWS::EC2::Subnet'
        Properties:
          VpcId: !Ref VPC
          AvailabilityZone: !Select 
            - 0
            - !GetAZs ''
          CidrBlock: !Ref PrivateSubnet1CIDR
          MapPublicIpOnLaunch: false
            Tags:
            - Key: Name
              Value: !Sub '${EnvironmentName} Private Subnet (AZ1)'
      PrivateSubnet2:
        Type: 'AWS::EC2::Subnet'
        Properties:
          VpcId: !Ref VPC
          AvailabilityZone: !Select 
            - 1
            - !GetAZs ''
          CidrBlock: !Ref PrivateSubnet2CIDR
          MapPublicIpOnLaunch: false
          Tags:
            - Key: Name
            Value: !Sub '${EnvironmentName} Private Subnet (AZ2)'
      NatGateway1EIP:
        Type: 'AWS::EC2::EIP'
        DependsOn: InternetGatewayAttachment
        Properties:
          Domain: vpc
      NatGateway2EIP:
        Type: 'AWS::EC2::EIP'
        DependsOn: InternetGatewayAttachment
        Properties:
          Domain: vpc
      NatGateway1:
        Type: 'AWS::EC2::NatGateway'
        Properties:
          AllocationId: !GetAtt NatGateway1EIP.AllocationId
          SubnetId: !Ref PublicSubnet1
      NatGateway2:
        Type: 'AWS::EC2::NatGateway'
        Properties:
          AllocationId: !GetAtt NatGateway2EIP.AllocationId
          SubnetId: !Ref PublicSubnet2
      PublicRouteTable:
        Type: 'AWS::EC2::RouteTable'
        Properties:
          VpcId: !Ref VPC
          Tags:
            - Key: Name
            Value: !Sub '${EnvironmentName} Public Routes'
      DefaultPublicRoute:
        Type: 'AWS::EC2::Route'
        DependsOn: InternetGatewayAttachment
        Properties:
          RouteTableId: !Ref PublicRouteTable
          DestinationCidrBlock: 0.0.0.0/0
          GatewayId: !Ref InternetGateway
      PublicSubnet1RouteTableAssociation:
        Type: 'AWS::EC2::SubnetRouteTableAssociation'
        Properties:
          RouteTableId: !Ref PublicRouteTable
          SubnetId: !Ref PublicSubnet1
      PublicSubnet2RouteTableAssociation:
        Type: 'AWS::EC2::SubnetRouteTableAssociation'
        Properties:
          RouteTableId: !Ref PublicRouteTable
          SubnetId: !Ref PublicSubnet2
      PrivateRouteTable1:
        Type: 'AWS::EC2::RouteTable'
        Properties:
          VpcId: !Ref VPC
          Tags:
            - Key: Name
            Value: !Sub '${EnvironmentName} Private Routes (AZ1)'
      DefaultPrivateRoute1:
        Type: 'AWS::EC2::Route'
        Properties:
          RouteTableId: !Ref PrivateRouteTable1
          DestinationCidrBlock: 0.0.0.0/0
          NatGatewayId: !Ref NatGateway1
      PrivateSubnet1RouteTableAssociation:
        Type: 'AWS::EC2::SubnetRouteTableAssociation'
        Properties:
          RouteTableId: !Ref PrivateRouteTable1
          SubnetId: !Ref PrivateSubnet1
      PrivateRouteTable2:
        Type: 'AWS::EC2::RouteTable'
        Properties:
          VpcId: !Ref VPC
          Tags:
            - Key: Name
            Value: !Sub '${EnvironmentName} Private Routes (AZ2)'
      DefaultPrivateRoute2:
        Type: 'AWS::EC2::Route'
        Properties:
          RouteTableId: !Ref PrivateRouteTable2
          DestinationCidrBlock: 0.0.0.0/0
          NatGatewayId: !Ref NatGateway2
      PrivateSubnet2RouteTableAssociation:
        Type: 'AWS::EC2::SubnetRouteTableAssociation'
        Properties:
          RouteTableId: !Ref PrivateRouteTable2
          SubnetId: !Ref PrivateSubnet2
      SecurityGroup:
        Type: 'AWS::EC2::SecurityGroup'
        Properties:
          GroupName: mwaa-security-group
          GroupDescription: Security group with a self-referencing inbound rule.
          VpcId: !Ref VPC
      SecurityGroupIngress:
        Type: 'AWS::EC2::SecurityGroupIngress'
        Properties:
          GroupId: !Ref SecurityGroup
          IpProtocol: '-1'
          SourceSecurityGroupId: !Ref SecurityGroup
          Outputs:
            VPC:
              Description: A reference to the created VPC
              Value: !Ref VPC
              PublicSubnets:
              Description: A list of the public subnets
              Value: !Join 
                - ','
                - - !Ref PublicSubnet1
                - !Ref PublicSubnet2
            PrivateSubnets:
              Description: A list of the private subnets
              Value: !Join 
                - ','
                - - !Ref PrivateSubnet1
                - !Ref PrivateSubnet2
            PublicSubnet1:
              Description: A reference to the public subnet in the 1st Availability Zone
              Value: !Ref PublicSubnet1
            PublicSubnet2:
              Description: A reference to the public subnet in the 2nd Availability Zone
              Value: !Ref PublicSubnet2
            PrivateSubnet1:
              Description: A reference to the private subnet in the 1st Availability Zone
              Value: !Ref PrivateSubnet1
            PrivateSubnet2:
              Description: A reference to the private subnet in the 2nd Availability Zone
              Value: !Ref PrivateSubnet2
            SecurityGroupIngress:
              Description: Security group with self-referencing inbound rule
              Value: !Ref SecurityGroupIngress
   ```

1. **Depois que os novos recursos da Amazon VPC tiverem sido provisionados, navegue até o AWS Resource Access Manager console e escolha Criar compartilhamento de recursos.**

1. Escolha as sub-redes criadas na primeira etapa na lista de sub-redes disponíveis que você pode compartilhar com `Participant`.

### Criar o ambiente do
<a name="configure-shared-vpc-create-mwaa"></a>

Conclua as etapas a seguir para criar um ambiente do Amazon MWAA com endpoints da Amazon VPC gerenciados pelo cliente.

1. Faça login usando `Participant` e abra o console do Amazon RDS. Conclua **Etapa um: especificar detalhes** para especificar um bucket do Amazon S3, uma pasta DAG e dependências para o novo ambiente. Para obter mais informações, consulte os [conceitos básicos](create-environment.md#create-environment-start-details).

1. Na página **Definir configurações avançadas**, em **Rede**, escolha as sub-redes da Amazon VPC compartilhada.

1. Em **Gerenciamento de endpoints**, escolha **CLIENTE** na lista suspensa.

1. Mantenha o padrão para as opções restantes na página e escolha **Criar ambiente** na página **Revisar e criar**.

O ambiente começa em um estado `CREATING` e depois muda para `PENDING`. Quando o ambiente estiver `PENDING`, anote o **nome do serviço do endpoint do banco de dados** e o **nome do serviço do endpoint do servidor Web** (caso configure um servidor Web privado) usando o console.

Ao criar um ambiente usando o console do Amazon MWAA. O Amazon MWAA cria um grupo de segurança com as regras de entrada e saída necessárias. Anote o ID do security group.

Na próxima seção, `Owner` usará os endpoints de serviço e o ID do grupo de segurança para criar endpoints da Amazon VPC na Amazon VPC compartilhada.

### Criar os endpoints da Amazon VPC
<a name="configure-shared-vpc-create-endpoints"></a>

Conclua as etapas a seguir para criar os endpoints da Amazon VPC necessários para o ambiente.

1. Faça login no Console de gerenciamento da AWS usando`Owner`, o aberto [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Escolha **Grupos de segurança** no painel de navegação esquerdo e crie um grupo de segurança na Amazon VPC compartilhada usando as seguintes regras de entrada e saída:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mwaa/latest/userguide/vpc-endpoint-management.html)
**Atenção**  
A conta `Owner` deve configurar um grupo de segurança na conta `Owner` para permitir o tráfego do novo ambiente para a Amazon VPC compartilhada. Você pode fazer isso criando um grupo de segurança em `Owner` ou editando um existente.

1. Escolha **Endpoints** e crie endpoints para o banco de dados do ambiente e o servidor Web (se estiver no modo privado) usando os nomes dos serviços de endpoint das etapas anteriores. Escolha a Amazon VPC compartilhada, as sub-redes usadas no ambiente e o grupo de segurança do ambiente.

Se bem-sucedido, o ambiente mudará de `PENDING` para `CREATING` e, por fim, para `AVAILABLE`. Quando estiver `AVAILABLE`, você poderá entrar no console do Apache Airflow.

### Solução de problemas da Amazon VPC compartilhada
<a name="configure-shared-vpc-troubleshooting"></a>

Use a referência a seguir para resolver problemas encontrados ao criar ambientes em uma Amazon VPC compartilhada.

**Ambiente em `CREATE_FAILED` após o status `PENDING`**  
+ Verifique se `Owner` está compartilhando as sub-redes com `Participant` usando [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html).
+ Verifique se os endpoints da Amazon VPC para o banco de dados e o servidor Web foram criados nas mesmas sub-redes associadas ao ambiente.
+ Verifique se o grupo de segurança usado com seus endpoints permite o tráfego dos grupos de segurança usados para o ambiente. A conta `Owner` cria regras que fazem referência ao grupo de segurança em `Participant` como`123456789012/security-group-id`:.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mwaa/latest/userguide/vpc-endpoint-management.html)

  Para obter mais informações, consulte [Responsabilidades e permissões para proprietários e participantes](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations)

**Ambiente preso no status `PENDING`**  
Verifique o status de cada endpoint da VPC para garantir que esteja `Available`. Caso configure um ambiente com um servidor Web privado, você também deverá criar um endpoint para o servidor Web. Se o ambiente estiver preso em `PENDING`, isso pode indicar que o endpoint do servidor Web privado está ausente.

**Erro `The Vpc Endpoint Service 'vpce-service-name' does not exist` recebido**  
Caso receba o erro a seguir, verifique se a conta que cria os endpoints está na conta `Owner` que possui a VPC compartilhada:  

```
ClientError: An error occurred (InvalidServiceName) when calling the CreateVpcEndpoint operation: 
							
The Vpc Endpoint Service 'vpce-service-name' does not exist
```