CloudFront + Cross-Account VPC Origins — Multi-Account Architecture bez bólu

Jak postawić jeden CloudFront distribution obsługujący wiele prywatnych API Gateway z różnych kont AWS. Konkretna architektura multi-account.

📋 Spis treści

Wprowadzenie

CloudFront cross-account VPC origins — temat, który pojawił się jakiś czas temu, ale mało kto go używa. Szkoda, bo to naprawdę fajne rozwiązanie dla organizacji z wieloma kontami AWS.

Dzisiaj pokażę Ci konkretny case: jak postawić jeden CloudFront distribution, który obsługuje wiele prywatnych API Gateway z różnych kont.

Brzmi dobrze? To lecimy.


Problem — jak było wcześniej?

Masz firmę z kilkoma zespołami, każdy ma swoje konto AWS i własne prywatne API Gateway. Chcesz to wszystko udostępnić przez CloudFront.

Opcje? Nie było ich dużo:

  1. Zwinąć wszystko na jedno konto — ale wtedy tracisz izolację, safety, i własność zespołów
  2. Oddzielny CloudFront per zespół — każdy płaci osobno, overkill dla małych API

Obie opcje są… powiedzmy — suboptimal.


Rozwiązanie — Cross-Account VPC Origins

Wejdźmy do sedna. Z nowym podejściem:

  1. Każdy zespół tworzy VPC origin — wskazuje na wewnętrzny ALB
  2. ALB stoi przed prywatnym API Gateway — bo CloudFront VPC origins obsługują tylko ALB, NLB lub EC2 (nie API Gateway bezpośrednio)
  3. Jeden CloudFront distribution — path-based routing do różnych origins
  4. Route 53 alias records — każdy subdomain wskazuje na ten sam CloudFront

Proste, czyste, elegant.


Architektura — jak to wygląda?

┌─────────────────────────────────────────────────────────────┐
│                        CloudFront                            │
│                   (jedna dystrybucja)                       │
│                 *.twojafirma.com → /api-a/*                 │
└─────────────────────────────┬───────────────────────────────┘

         ┌────────────────────┼────────────────────┐
         │                    │                    │
         ▼                    ▼                    ▼
    ┌─────────┐          ┌─────────┐          ┌─────────┐
    │  ALB A  │          │  ALB B  │          │  ALB C  │
    │ Account │          │ Account │          │ Account │
    │    1    │          │    2    │          │    3    │
    └────┬────┘          └────┬────┘          └────┬────┘
         │                    │                    │
         ▼                    ▼                    ▼
    ┌─────────┐          ┌─────────┐          ┌─────────┐
    │API GW A │          │API GW B │          │API GW C │
    │ Private │          │ Private │          │ Private │
    └─────────┘          └─────────┘          └─────────┘

Podział odpowiedzialności — kto co robi?

Newsletter AWS

Tutoriale, case study, nowości z chmury · co tydzień · po polsku

🔒 Zero spamu · wypis jednym kliknięciem

To jest kluczowe — architektura musi być czytelna dla zespołów:

KomponentKto odpowiada?
API Gateway (prywatne)Zespół developerski
ALB (wewnętrzny)Zespół developerski
VPC OriginZespół developerski
CloudFront DistributionNetworking team
Route 53Networking team
Wildcard certyfikatNetworking team

Każdy zespół ma swoje — i nikt nie musi prosić nikogo o zmiany.


Ograniczenia — WAŻNE

Zanim rzucisz się do implementacji, sprawdź dwie rzeczy:

  1. WebSockets — NIE działa z VPC origins
  2. gRPC — NIE działa z VPC origins

Jeśli Twoje API używa któregoś z tych protokołów — musisz szukać innego rozwiązania (np. ApiGateway V2 z websockets, albo bezpośrednie połączenie przez VPC peering).


Podsumowanie

Cross-account VPC origins to:

  • ✅ Jeden CloudFront zamiast wielu
  • ✅ Czysty podział odpowiedzialności między zespołami
  • ✅ Path-based routing do różnych API
  • ✅ Oszczędność (nie płacisz za osobne dystrybucje)
  • ❌ Bez WebSockets i gRPC

Jeśli masz multi-account i prywatne API — warto rozważyć. Szczególnie jeśli:

  • Zespoły potrzebują autonomii
  • Chcesz unified endpoint dla klientów
  • Liczysz koszty i nie chcesz przepłacać za osobne dystrybucje

Pytanie do Ciebie: ile masz dziś oddzielnych CloudFront distributions dla różnych środowisk/kont? Daj znać w komentarzu!


Chcesz więcej takich architektonicznych breakdownów? Daj lajka, subscribe, i zostaw komentarz — to mnie motywuje do dalszej roboty.

#AWS #CloudFront #APIGateway #MultiAccount #Architecture #DevOps

Newsletter AWS

Tutoriale, case study, nowości z chmury · co tydzień · po polsku

🔒 Zero spamu · wypis jednym kliknięciem

← Wróć do Blog