Como partilhar AWS VPC Endpoints entre várias VPCs: guia de arquitetura e configuração centralizadas

Interface Endpoint | Transit Gateway | VPC Peering | Route 53 | Entre contas | Custos e segurança

Na AWS, a essência de "partilhar um endpoint de VPC entre diferentes VPCs" não é simplesmente ligar um endpoint diretamente a várias VPCs, mas sim:

Centralize os endpoints da VPC de interface numa única VPC de serviços central/partilhado e, em seguida, permita que outras VPCs acedam ao IP privado desse endpoint através de um gateway de trânsito ou peering de VPC, utilizando o Route 53 para unificar o DNS.

A AWS refere-se oficialmente a este modelo como... Centralized access to VPC private endpoints

Mas, antes de mais, é essencial distinguir entre eles. Interface Endpoint e Gateway Endpoint

Em primeiro lugar, vamos apresentar a conclusão mais importante.

Suponha que tem atualmente:

VPC-A
VPC-B
VPC-C

Todas as três VPC necessitam de:

SSM
EC2 API
ECR
CloudWatch
KMS
Secrets Manager
STS
...

Tem dois designs.

Opção A: Cada VPC cria o seu próprio Endpoint.

VPC-A
 ├─ SSM Endpoint
 ├─ EC2 Endpoint
 ├─ ECR Endpoint
 ├─ Logs Endpoint
 └─ KMS Endpoint

VPC-B
 ├─ SSM Endpoint
 ├─ EC2 Endpoint
 ├─ ECR Endpoint
 ├─ Logs Endpoint
 └─ KMS Endpoint

VPC-C
 ├─ SSM Endpoint
 ├─ EC2 Endpoint
 ├─ ECR Endpoint
 ├─ Logs Endpoint
 └─ KMS Endpoint

Este é o projeto mais simples e isolado.

No entanto, o número de pontos finais irá aumentar rapidamente.

por exemplo:

10 VPCs × 20 Pontos de Extremidade de Serviço da AWS × 2 Zonas de Disponibilidade = 400 ENIs de Ponto de Extremidade

O endpoint da interface é baseado Ponto final × AZ × HoraExiste uma taxa, para além de uma taxa de processamento de dados.

Portanto, à medida que a escala aumenta, os custos e a manutenção também aumentarão significativamente.

II. Arquitetura do ponto final VPC centralizado

Estabelecer um(a):

Network VPC / Shared Services VPC

Todos os pontos finais estão localizados aqui.

Por exemplo:

                  AWS Services
                       │
                PrivateLink
                       │
             ┌───────────────────┐
             │  Network VPC      │
             │  10.0.0.0/16      │
             │                   │
             │ SSM Endpoint      │
             │ KMS Endpoint      │
             │ ECR Endpoint      │
             │ Logs Endpoint     │
             │ STS Endpoint      │
             │ Secrets Endpoint  │
             └─────────┬─────────┘
                       │
                Transit Gateway
             ┌─────────┼─────────┐
             │         │         │
             │         │         │
          VPC-A      VPC-B      VPC-C
       10.10/16   10.20/16   10.30/16

então:

EC2 na VPC-A ↓ ssm.ap-northeast-1.amazonaws.com ↓ Route 53 ↓ Resolve para o IP privado do endpoint do SSM na VPC partilhada ↓ Gateway de trânsito ↓ Interface ENI do endpoint ↓ AWS PrivateLink ↓ SSM

A AWS suporta oficialmente este design centralizado.

III. Uma exceção particularmente importante: S3 / DynamoDB

Isso precisa de ser discutido separadamente.

Os endpoints de gateway não podem ser partilhados desta forma.

S3 e DynamoDB possuem:

Gateway VPC Endpoint

Por exemplo:

com.amazonaws.ap-northeast-1.s3
com.amazonaws.ap-northeast-1.dynamodb

É completamente diferente de um endpoint de interface comum.

Gateway Endpoint:

  • Não utilize o PrivateLink.
  • Não crie ENI
  • Essencialmente, é uma combinação de tabela de rotas e lista de prefixos geridos da AWS.
  • livre
  • Só pode ser utilizado pela VPC em que reside.

A AWS declarou oficialmente:

Os endpoints de gateway não se podem estender para além da VPC; os recursos da outra extremidade de um peering de VPC, gateway de trânsito, VPN ou Direct Connect não podem ser obtidos a partir deste endpoint de gateway.

Portanto, não deve ser concebido da seguinte forma:

VPC-A ──TGW── Shared VPC ── S3 Gateway Endpoint

De seguida, pretendemos que a VPC-A utilize o endpoint da gateway S3 da VPC partilhada.

não.

IV. Práticas corretas para S3 / DynamoDB

Normalmente deveria ser:

VPC-A → O seu próprio ponto final do Gateway S3 VPC-B → O seu próprio ponto final do Gateway S3 VPC-C → O seu próprio ponto final do Gateway S3

porque:

Não há qualquer encargo adicional para os endpoints do gateway.

Assim, não há necessidade de centrar o Endpoint do Gateway S3 para "reduzir o número de Endpoints".

Recomendação:

                  S3
             ↑     ↑     ↑
             │     │     │
           GW EP  GW EP  GW EP
             │     │     │
           VPC-A VPC-B VPC-C

e:

SSM
KMS
STS
ECR
ECR Docker
CloudWatch
CloudWatch Logs
Secrets Manager
SNS
SQS
etc.

Esses Interface VPC Endpoint É isso que torna a centralização adequada.

5.º Por que razão o endpoint de interface pode ser utilizado em várias VPC?

Porque um endpoint de interface é essencialmente:

Crie uma ENI com um endereço IP privado na sub-rede especificada.

De acordo com a documentação oficial da AWS, um Endpoint de Interface cria uma Interface de Rede de Endpoint na sub-rede escolhida e atribui um endereço IP privado a essa sub-rede.

Por exemplo:

Shared VPC
10.0.0.0/16

AZ-a:
Endpoint ENI
10.0.10.50

AZ-c:
Endpoint ENI
10.0.20.60

Para a outra VPC, desde que:

VPC-A → Pode encaminhar para 10.0.10.50

e:

O grupo de segurança 10.0.10.50 permite que o VPC-A

Na realidade, a rede já consegue aceder ao ponto final.

Portanto, o chamado:

Ponto de extremidade VPC partilhado

O que realmente aconteceu foi:

Outras VPCs ↓ Rede entre VPCs ↓ Acesso ao endpoint central da VPC ENI

Não:

Um vpce-xxx pode ser ligado a três VPCs em simultâneo.

São dois conceitos completamente diferentes.

VI. Três Métodos Práticos de Implementação

Na realidade, pode ser dividido em três tipos.

método Nível de recomendação Adequado
Transit Gateway ⭐⭐⭐⭐⭐ VPC de grande escala e múltipla
VPC Peering ⭐⭐⭐⭐ 2 a 5 VPCs
Utilize o DNS de endpoint diretamente. ⭐⭐⭐ Teste/Aplicação Especial
Ponto final independente por VPC ⭐⭐⭐⭐⭐ Dê prioridade ao isolamento em pequena escala.

VII. Método 1: Gateway de Trânsito + Ponto Final Central

Esta é a solução mais comum para ambientes empresariais.

Considerando a região de Tóquio:

ap-northeast-1

rede:

Network VPC
10.0.0.0/16

App VPC-A
10.10.0.0/16

App VPC-B
10.20.0.0/16

App VPC-C
10.30.0.0/16

Arquitetura:

                       AWS SSM
                          ▲
                          │
                     PrivateLink
                          │
                 SSM Interface EP
                 10.0.10.50
                 10.0.20.50
                          │
                ┌─────────────────┐
                │   Network VPC   │
                │   10.0.0.0/16   │
                └────────┬────────┘
                         │
                       TGW
              ┌──────────┼──────────┐
              │          │          │
            VPC-A      VPC-B      VPC-C
          10.10/16   10.20/16   10.30/16

O Transit Gateway (TGW) foi concebido pela AWS para encaminhamento centralizado em várias VPCs e suporta o encaminhamento transitório; a AWS recomenda também priorizar o TGW para redes de grande escala com várias VPC.

VIII. Procedimentos Operacionais Específicos

A seguir, apresentamos um detalhe da configuração real.

Passo 1: Criar uma VPC de rede

Por exemplo:

VPC:
shared-endpoint-vpc

CIDR:
10.0.0.0/16

Duas AZ:

ap-northeast-1a
Endpoint subnet:
10.0.10.0/24

ap-northeast-1c
Endpoint subnet:
10.0.20.0/24

Recomenda-se ter pelo menos 2 Zonas de Ação (ZAs).

9.º Passo: Criar um Gateway de Trânsito

VPC Console:

Transit Gateways
→ Create transit gateway

Por exemplo:

Name:
core-tgw

Em seguida, crie um anexo VPC:

core-tgw
│
├─ shared-endpoint-vpc
├─ app-vpc-a
├─ app-vpc-b
└─ app-vpc-c

Se tiver diferentes contas AWS, também pode partilhar o Transit Gateway através da AWS RAM. A AWS suporta oficialmente a partilha do TGW entre contas.

10.º Passo: Configurar a tabela de rotas da VPC

Suposição:

Shared VPC:
10.0.0.0/16

VPC-A:
10.10.0.0/16

VPC-B:
10.20.0.0/16

VPC-A:

Destination        Target

10.10.0.0/16       local
10.0.0.0/16        tgw-xxxxxxxx

VPC-B:

Destination        Target

10.20.0.0/16       local
10.0.0.0/16        tgw-xxxxxxxx

Shared Endpoint VPC:

Destination        Target

10.0.0.0/16        local
10.10.0.0/16       tgw-xxxxxxxx
10.20.0.0/16       tgw-xxxxxxxx

Caso contrário, ocorrerá o seguinte:

VPC-A → Endpoint

Pode ir, mas:

Endpoint → VPC-A

Eles não podem voltar.

11. Passo 4: Configurar a tabela de encaminhamento TGW

TGW Route Table:

10.0.0.0/16
    → shared-endpoint-vpc attachment

10.10.0.0/16
    → VPC-A attachment

10.20.0.0/16
    → VPC-B attachment

10.30.0.0/16
    → VPC-C attachment

Caso não haja necessidade específica de isolamento de rede, pode ser utilizada a propagação de rotas.

O ambiente corporativo é geralmente dividido da seguinte forma:

Spoke TGW RT
Shared Services TGW RT
Inspection TGW RT

Evite permitir que todas as VPC comuniquem entre si por defeito.

12. Passo 5: Criar ponto final da interface

Por exemplo, se for necessário partilhar:

AWS Systems Manager

criar:

VPC
→ Endpoints
→ Create endpoint

Service:

com.amazonaws.ap-northeast-1.ssm

VPC:

shared-endpoint-vpc

Subnets:

ap-northeast-1a
10.0.10.0/24

ap-northeast-1c
10.0.20.0/24

Assim, surge o seguinte:

vpce-0123456789

ENI-A:
10.0.10.50

ENI-C:
10.0.20.50

Décimo terceiro, e mais importante: Não ative o DNS privado diretamente.

Quando uma VPC utiliza normalmente o seu próprio Endpoint:

Enable Private DNS
✓

Muito conveniente.

Por exemplo, originalmente:

ssm.ap-northeast-1.amazonaws.com

Será automaticamente analisado e convertido em:

10.0.10.50
10.0.20.50

O SDK da AWS não requer absolutamente nenhuma modificação.

No entanto, a arquitetura centralizada apresenta um problema.

O DNS privado cria automaticamente uma Zona Alojada Privada gerida pela AWS, que funciona apenas dentro da VPC onde reside o Endpoint.

portanto:

Shared VPC

Saber:

ssm.ap-northeast-1.amazonaws.com
=
10.0.10.50

mas:

VPC-A
VPC-B

Não sei.

Assim, a arquitetura de endpoint central oficial da AWS recomenda:

No cenário do Ponto de Extremidade Central, desative o DNS Privado automático para o Ponto de Extremidade e, em seguida, crie manualmente a Zona Alojada Privada do Route 53.

14.º Passo: Criar uma zona alojada privada do Route 53

criar:

Route 53
→ Hosted zones
→ Create hosted zone

Domain:

ssm.ap-northeast-1.amazonaws.com

Type:

Private Hosted Zone

Primeiro, associe:

shared-endpoint-vpc

15.º Passo: Criar Alias

Digitar:

ssm.ap-northeast-1.amazonaws.com

Create record。

Record:

ssm.ap-northeast-1.amazonaws.com

Type:

A

escolher:

Alias

Seleção de alvos:

VPC Endpoint

Então:

vpce-0123456789...

A solução oficial de endpoint central da AWS é:

AWS Service DNS
↓
Route53 PHZ
↓
Alias
↓
Central Interface Endpoint

Em vez de fazer com que a aplicação utilize manualmente o endereço IP do ponto final.

16.º Passo: Associar PHZ a todas as VPCs

Private Hosted Zone:

ssm.ap-northeast-1.amazonaws.com

Relacionado:

shared-endpoint-vpc
app-vpc-a
app-vpc-b
app-vpc-c

Uma zona alojada privada no AWS Route 53 pode ser associada a várias VPC.

então:

VPC-A

Implementar:

nslookup ssm.ap-northeast-1.amazonaws.com

pegar:

10.0.10.50
10.0.20.50

VPC-B

mesmo:

nslookup ssm.ap-northeast-1.amazonaws.com

Também:

10.0.10.50
10.0.20.50

Neste momento:

VPC-A
   │
   │ DNS
   ▼
ssm.ap-northeast-1.amazonaws.com
   │
   ▼
10.0.10.50
   │
   ▼
Transit Gateway
   │
   ▼
Central VPC
   │
   ▼
SSM VPC Endpoint

Isto conclui a história.

17.º Passo: Grupo de Segurança de Endpoint

Este é o segundo erro muito comum.

O endpoint ENI possui um Grupo de Segurança.

Por exemplo:

endpoint-sg

Inbound:

HTTPS
TCP 443

Source:
10.10.0.0/16
10.20.0.0/16
10.30.0.0/16

Pode ser ainda mais refinado.

Por exemplo, apenas:

10.10.10.0/24
10.20.20.0/24

Permitir o acesso ao ponto final.

Se a passagem não for permitida aqui:

DNS OK
Routing OK
TGW OK

ainda:

timeout

18. Fluxo de Dados Final

Por exemplo, EC2 em VPC-A:

aws ssm describe-instance-information \
    --region ap-northeast-1

Pedido de SDK:

https://ssm.ap-northeast-1.amazonaws.com

① DNS:

ssm.ap-northeast-1.amazonaws.com
↓
Route53 Private Hosted Zone
↓
10.0.10.50

② Routing:

EC2
10.10.1.50
↓
VPC-A route table
↓
10.0.0.0/16 → TGW

③ TGW:

10.0.10.50
↓
Shared VPC attachment

④ Shared VPC:

Endpoint ENI
10.0.10.50

⑤ Endpoint:

PrivateLink
↓
AWS SSM

O seguinte não é necessário durante todo o processo:

Internet Gateway
NAT Gateway
Public IP

Esta é uma das suas maiores importâncias. O objetivo do PrivateLink é permitir o acesso aos serviços da AWS através de uma rede privada, sem necessidade de IGW, NAT ou endereços IP públicos.

19.º Como lidar com múltiplos endpoints?

Suponha que precisa de:

SSM
EC2 Messages
SSM Messages
KMS
CloudWatch
CloudWatch Logs
Secrets Manager
ECR API
ECR DKR
STS

Central VPC:

Network VPC

├─ vpce-ssm
├─ vpce-ssmmessages
├─ vpce-ec2messages
├─ vpce-kms
├─ vpce-monitoring
├─ vpce-logs
├─ vpce-secretsmanager
├─ vpce-ecr-api
├─ vpce-ecr-dkr
└─ vpce-sts

Route53:

ssm.ap-northeast-1.amazonaws.com
→ SSM Endpoint

ssmmessages.ap-northeast-1.amazonaws.com
→ SSM Messages Endpoint

ec2messages.ap-northeast-1.amazonaws.com
→ EC2 Messages Endpoint

kms.ap-northeast-1.amazonaws.com
→ KMS Endpoint

logs.ap-northeast-1.amazonaws.com
→ Logs Endpoint

secretsmanager.ap-northeast-1.amazonaws.com
→ Secrets Manager Endpoint

De seguida, PHZ associa simultaneamente:

VPC-A
VPC-B
VPC-C
VPC-D
...

Alguns serviços da AWS possuem estruturas DNS exclusivas, como os endpoints ECR Docker/OCI. A AWS também refere que alguns serviços podem exigir aliases wildcard, pelo que não se pode presumir que todos os endpoints tenham apenas um registo simples.

20.º E se forem contas AWS diferentes?

Por exemplo:

Network Account
111111111111

App Account A
222222222222

App Account B
333333333333

A arquitetura é perfeitamente aceitável.

Recomendação:

AWS Organizations

Network Account
 ├─ TGW
 ├─ Shared VPC
 ├─ Interface Endpoints
 └─ Route53 PHZ

       ↓ AWS RAM

App Account A
 └─ VPC-A

App Account B
 └─ VPC-B

O TGW pode ser acedido através de:

AWS Resource Access Manager

partilhar.

As associações entre contas para Zonas Alojadas Privadas são um pouco mais complicadas.

21. Associação PHZ entre contas

por exemplo:

Network Account:
PHZ Z123456

App Account:
VPC vpc-abcdef

Em primeiro lugar, a conta de rede:

aws route53 create-vpc-association-authorization \
  --hosted-zone-id Z123456 \
  --vpc VPCRegion=ap-northeast-1,VPCId=vpc-abcdef

Em seguida, crie uma conta na aplicação:

aws route53 associate-vpc-with-hosted-zone \
  --hosted-zone-id Z123456 \
  --vpc VPCRegion=ap-northeast-1,VPCId=vpc-abcdef

O processo oficial da AWS para as Zonas Alojadas Privadas entre contas é o seguinte:

PHZ Owner
↓
CreateVPCAssociationAuthorization

VPC Owner
↓
AssociateVPCWithHostedZone

Além disso, esta operação entre contas não pode ser concluída na totalidade apenas com a consola do Route 53; requer CLI/API/SDK.

22. Método 2: Emparelhamento de VPC

Se tiver apenas duas ou três VPCs, não precisa necessariamente de um TGW.

Por exemplo:

           Central VPC
          Endpoint VPC
        10.0.0.0/16
          /       \
         /         \
      Peering     Peering
       /             \
   VPC-A             VPC-B
10.10/16           10.20/16

Configuração:

VPC-A ↔ Central VPC
VPC-B ↔ Central VPC

Então:

VPC-A:

10.0.0.0/16
→ pcx-aaa

Central:

10.10.0.0/16
→ pcx-aaa

10.20.0.0/16
→ pcx-bbb

Endpoint SG:

443
10.10.0.0/16

443
10.20.0.0/16

DNS ainda:

PHZ
↓
Endpoint Alias
↓
associate VPC-A
associate VPC-B

23. A maior desvantagem do Peering

isto:

O encaminhamento transitivo não é suportado.

A AWS deixou isso claro em comunicados oficiais.

Por exemplo:

VPC-A
  │
peering
  │
Central
  │
peering
  │
VPC-B

Isto não pode ser utilizado para concluir que:

A → Central → B

É possível.

Portanto, se:

2 VPC
3 VPC

Espiar é muito confortável.

se:

20 VPC
50 VPC
100 VPC

A manutenção irá tornar-se cada vez mais difícil.

Portanto, de um modo geral:

Pequeno: Emparelhamento de VPC Grande: Gateway de trânsito

24. Método 3: Utilizar diretamente o DNS do ponto final

Existe também um método muito simples, especialmente adequado para testes.

Após a criação de um Endpoint, a AWS irá gerar algo como isto:

vpce-0123456789abcdef-xxxx.ssm.ap-northeast-1.vpce.amazonaws.com

A AWS criará nomes DNS regionais e de zona para o endpoint da interface.

Portanto, desde que a rede VPC-A consiga alcançar a VPC partilhada, pode diretamente:

aws ssm describe-instance-information \
  --endpoint-url \
  https://vpce-xxxx.ssm.ap-northeast-1.vpce.amazonaws.com

Desta forma, nem precisa de fazer isso você mesmo:

ssm.ap-northeast-1.amazonaws.com

Private Hosted Zone。

vantagem

Super fácil.

Ideal para:

Validar encaminhamento, Validar SG, Validar TGW, Validar ponto final

deficiência

A configuração da aplicação precisa de ser modificada.

original:

AWS SDK
↓
ssm.ap-northeast-1.amazonaws.com

Agora fica assim:

AWS SDK
↓
vpce-xxx....

Muitas aplicações não são fáceis de modificar desta forma.

Assim, o ambiente de produção é geralmente:

PHZ + Alias

maioria.

25. A maior vantagem do Endpoint Centralizado

① Reduzir significativamente o Endpoint

Suposição:

20 VPC
15 Interface Endpoints
2 AZ

Distributed:

20 × 15 × 2
=
600 Endpoint AZ instances

Centralização:

15 × 2
=
30

A diferença é enorme.

26. Vantagem ②: Os custos podem ser significativamente reduzidos.

Ponto final da interface recebido:

Endpoint/AZ/hour
+
Data Processing / GB

O AWS PrivateLink cobra uma tarifa horária por zona de disponibilidade, além do processamento de dados. A tarifa base para o primeiro PB é de aproximadamente 0,009 €/GB; o preço por hora varia consoante a região.

Distributed:

VPC × Service × AZ × endpoint-hour

Central:

Service × AZ × endpoint-hour
+
TGW

Quanto maior for o número de VPCs, mais significativa será a diferença no número de endpoints.

27.º Mas o TGW não é gratuito.

Muitos diagramas de arquitetura aqui ignoram deliberadamente este ponto.

O Transit Gateway recebeu:

Taxa horária de anexos + Processamento de dados/GB

A AWS cobra oficialmente com base no número de horas de ligação e na quantidade de dados que circulam pelo TGW.

Assim, o que realmente deve ser calculado é:

Por ponto final VPC

Custo = Número de VPCs × Número de endpoints × Número de Zonas de Disponibilidade × Dados horários dos endpoints + PrivateLink

Centralized

Custo = Número de endpoints × Número de Zonas de Disponibilidade × Taxa horária do endpoint + Taxa horária de ligação do TGW + Processamento de dados do TGW + Processamento de dados do PrivateLink + Possíveis dados entre Zonas de Disponibilidade

então:

Se uma empresa já possui um TGW (Township Gateway), um Central Endpoint é geralmente muito atrativo.

Mas se:

Existem apenas 2 VPCs, apenas 3 endpoints e nenhum TGW.

Construir um TGW especificamente para poupar nos custos dos endpoints pode não ser economicamente viável.

28. A maior desvantagem do sistema centralizado: Raio de explosão

Este é um assunto muito importante.

acabam por ser:

VPC-A → Endpoint-A
VPC-B → Endpoint-B
VPC-C → Endpoint-C

Existe um problema com o Endpoint-A:

Apenas A tem um problema.

Centralização:

A ─┐
B ─┼→ Central Endpoint
C ─┘

Ponto de extremidade central, encaminhamento VPC partilhado, DNS ou configuração incorreta do TGW:

A
B
C
D
E
...

Ambos podem ser suspensos.

então:

O custo de poupar dinheiro e gerir custos é um aumento do impacto na infraestrutura partilhada.

A AWS também destaca especificamente que um ponto de extremidade central pode alargar o âmbito dos impactos das políticas e das falhas.

29.º A política de endpoints também se tornará mais complexa.

Distributed:

Endpoint da VPC de desenvolvimento → Permissões de desenvolvimento Endpoint da VPC de produção → Permissões de produção Endpoint da VPC de segurança → Permissões de segurança

Muito fácil de gerir.

Centralização:

Um endpoint KMS para monitorização de segurança em ambientes de desenvolvimento, produção e teste...

Tudo partilhado.

Endpoint Policy:

Principal
Resource
Action
Conditions

Vai ser cada vez mais complicado.

A AWS também emitiu um lembrete especial a este respeito:

A centralização aumenta a dificuldade de gerir políticas de privilégio mínimo nos endpoints, e o impacto de uma única política de endpoints é maior; o próprio documento de política de endpoint também tem limitações de tamanho.

30.º O isolamento de segurança também é um problema.

por exemplo:

Production VPC
Development VPC

Todos os usos:

Central S3 Interface Endpoint

Embora:

IAM
Bucket Policy
Endpoint Policy
SG

As permissões ainda podem ser controladas, mas os limites físicos/de rede já não são completamente independentes.

Assim, para ambientes particularmente exigentes:

Ferramentas de segurança de produção financeira PCI

Possíveis designs:

Prod Endpoint VPC

NonProd Endpoint VPC

Em vez de toda a empresa:

Uma VPC de endpoint

31. Estrutura Empresarial Recomendada

Não é que exista apenas um em toda a empresa, mas sim:

                   AWS Services
                        │
          ┌─────────────┴──────────────┐
          │                            │
   Prod Endpoint VPC           NonProd Endpoint VPC
          │                            │
        TGW                         TGW
     ┌────┼────┐                 ┌────┼────┐
     │    │    │                 │    │    │
   Prod Prod Prod              Dev  Test Sandbox
   VPC1 VPC2 VPC3

até:

Security
Production
NonProduction

Crie uma VPC de ponto final partilhado separadamente.

Desta forma, podemos ter ambos em consideração:

Gestão de custos, segurança, isolamento, raio de explosão

32.º Outro problema muito prático: conflitos de DNS.

Por exemplo, a VPC-A já tinha a sua própria:

SSM Endpoint
Private DNS = Enabled

Depois associa novamente:

ssm.ap-northeast-1.amazonaws.com

Esta é a PHZ Central.

Isto pode levar a conflitos de espaço de nomes DNS.

Assim sendo, a migração deve ser, em geral, do tipo:

① Criar um endpoint central ② Criar uma pHZ central ③ Testar o DNS específico do endpoint ④ Associar a VPC spoke ⑤ Verificar o DNS ⑥ Apagar o endpoint da própria VPC spoke ⑦ Verificar os serviços ⑧ Migrar para a próxima VPC

Em vez de os apagar todos de uma vez.

33.As operações entre regiões são possíveis, mas o uso excessivo não é recomendado.

Por exemplo:

Tokyo VPC
ap-northeast-1

Osaka VPC
ap-northeast-3

Em teoria:

Tokyo VPC
    ↓
TGW
    ↓
TGW Peering
    ↓
Osaka
    ↓
Central Endpoint

A AWS também oferece uma arquitetura de ponto final centralizada entre regiões, através de:

TGW Peering
+
Private Hosted Zones

concluir.

No entanto, geralmente recomenda-se:

Tokyo Endpoint VPC
   ↓
Tokyo VPCs

Osaka Endpoint VPC
   ↓
Osaka VPCs

Ou seja:

Uma região, um ponto final central VPC.

então:

Menor latência, rede mais simples, melhor isolamento em caso de desastres, custos de tráfego entre regiões mais baixos

34. Comparação direta de quatro opções

projeto Por ponto final VPC Peering Central TGW Central S3 Gateway
Número do ponto final um monte de alguns alguns por VPC
Custos do PrivateLink alto Baixo Baixo livre
Custo TGW nenhum nenhum ter nenhum
Gestão de DNS Simples médio médio É muito simples.
Complexidade da rede mais baixo médio médio mais baixo
VPC em larga escala
Isolamento ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐
Blast Radius Pequeno meio grande Pequeno
Múltiplas contas Pode Pode Muito adequado Cada um criado
Transitive Routing N/A N/A
Número recomendado de VPCs 1 a uma pequena quantidade pequena quantidade Médio e grande qualquer

35.Um projeto adequado para ambientes de grande

Suponha que a empresa tem:

30 VPCs, 5 contas AWS, região de Tóquio

Pode-se afirmar o seguinte:

Network Account
│
├─ Transit Gateway
│
├─ Endpoint VPC
│   │
│   ├─ SSM
│   ├─ SSM Messages
│   ├─ EC2 Messages
│   ├─ ECR API
│   ├─ ECR DKR
│   ├─ STS
│   ├─ KMS
│   ├─ Secrets Manager
│   ├─ CloudWatch
│   ├─ CloudWatch Logs
│   ├─ SNS
│   └─ SQS
│
└─ Route53 Private Hosted Zones

Então:

Account A
├─ VPC1 ─┐
├─ VPC2 ─┤
└─ VPC3 ─┤
         │
Account B│
├─ VPC4 ─┤
├─ VPC5 ─┤
└─ VPC6 ─┤
         ▼
        TGW
         │
         ▼
 Endpoint VPC
         │
         ▼
 AWS PrivateLink

mas:

S3 Gateway Endpoint
DynamoDB Gateway Endpoint

É ainda recomendável:

Criado separadamente para cada VPC.

Porque é gratuito, e o próprio Gateway Endpoint não pode ser utilizado a partir de outras VPCs via TGW/Peering.

36. Toda a arquitetura pode ser recordada como sendo composta por 4 camadas.

Na verdade, quando precisar de solucionar problemas no futuro, basta lembrar-se destas quatro camadas:

             ┌─────────────────┐
             │      DNS        │
             │   Route53 PHZ   │
             └────────┬────────┘
                      │
                      ▼
             Endpoint Private IP
                      │
             ┌────────┴────────┐
             │     Routing     │
             │   TGW/Peering   │
             └────────┬────────┘
                      │
             ┌────────▼────────┐
             │    Security     │
             │ Endpoint SG/NACL│
             └────────┬────────┘
                      │
             ┌────────▼────────┐
             │    IAM Policy   │
             │ Endpoint Policy │
             │ Service Policy  │
             └─────────────────┘

Caso o acesso não esteja disponível, siga os seguintes passos:

① DNS
② Route
③ Security Group/NACL
④ IAM / Endpoint Policy

Através da investigação, geralmente é possível encontrar problemas.

A frase mais memorável

Um endpoint VPC não é, por si só, "partilhado com várias VPCs" via RAM.

A natureza centralizada dos endpoints de interface é:

Central VPC
    ↓
Interface Endpoint ENI
    ↑
TGW / VPC Peering
    ↑
Other VPCs

Aprovado novamente:

Route53 Private Hosted Zone

Em todas as VPC:

ssm.ap-northeast-1.amazonaws.com

Todos foram analisados ​​​​e concluíram ser:

Central VPC Endpoint

Isto conclui todo o processo. Shared/Centralized VPC Endpoint

e Não o faça com os endpoints de gateway do S3/DynamoDB; crie os seus próprios para cada VPC.Porque é gratuito e a AWS proíbe explicitamente a sua utilização na outra ponta, como o TGW ou o Peering.