Czy AWS oferuje sposób kierowania ruchu HTTPS do dwóch różnych instancji EC2 w oparciu o ścieżkę katalogu?


10

Zastanawiałem się, czy w przypadku ofert AWS możliwe jest:

https://www.example.com/a/-> obsługiwane przez Apache w EC2 Instancja A

https://www.example.com/b/-> obsługiwane przez Apache w EC2 Instance B

Aby to wyjaśnić, nie chcę, aby pliki w jednej ścieżce katalogu znajdowały się na tej samej instancji serwera, co pliki w innej ścieżce katalogu.

Rozumiem, że może to być możliwe z jakimś proxy, ale czy istnieje łatwiejsze rozwiązanie z jedną z ofert AWS.

Moduł równoważenia obciążenia EC2 nie pozwala na przełączanie na podstawie ścieżki katalogu. Trasa 53 działa na poziomie DNS, który nie ma informacji o ścieżce do zwracania adresów IP na tej podstawie.


Moduł równoważenia obciążenia EC2 jest tak głupi, że nie odczytuje Host:nagłówków i nie odfiltrowuje fałszywego ruchu. Wydaje się mało prawdopodobne, aby dodali funkcje, o które pytasz, jeśli patrzenie na nagłówki to dla nich zbyt wiele pracy. Na szczęście mają inne opcje.
pisklęta

Odpowiedzi:


29

Użyj modułu równoważenia obciążenia aplikacji AWS , który wykonuje routing oparty na ścieżce . Ten drugi link to samouczek, jak to zrobić.

Krótko mówiąc, skonfigurujesz swój ALB w normalny sposób, a następnie wykonaj następujące kroki (skopiowane z samouczka AWS):

  • Na karcie Słuchacze użyj strzałki, aby wyświetlić reguły dla detektora, a następnie wybierz Dodaj regułę . Określ regułę w następujący sposób:

  • W polu Nazwa grupy docelowej wybierz drugą grupę docelową, którą utworzyłeś.

  • W przypadku wzorca ścieżki określ dokładny wzorzec, który ma być używany do routingu opartego na ścieżce (na przykład / img / *). Aby uzyskać więcej informacji, zobacz Reguły nasłuchiwania.

  • Wybierz Zapisz .


Dzięki! Najpierw sprawdziłem moduł równoważenia obciążenia aplikacji EC2, przeszedłem przez kreatora, ale nigdy go nie utworzyłem. Czarodziej nie podał opcji ścieżki. Jak wskazał samouczek, najpierw trzeba go utworzyć, a następnie edytować reguły.
Joseph Shih

9

Oprócz doskonałej odpowiedzi Tima, możesz to również osiągnąć za pomocą CloudFront .

Pierwszy, utwórz dystrybucję , dodając źródła dla EC2 Instance A i EC2 Instance B (które mogą być również równoważnikami obciążenia, hostami innymi niż AWS, a nawet segmentami S3).

Następnie skonfiguruj reguły zachowania pamięci podręcznej, aby zmapować / a / * i / b / * do odpowiednich źródeł.

To, czy użycie CloudFront w tym celu ma sens, zależy od Twojej aplikacji i potrzeby posiadania sieci CDN.


4
Może to mieć również zastosowanie, jeśli chcesz /a*i /b*mają być obsługiwane przez różne usługi, różne konta, różne regiony, a nawet jedną ścieżkę obsługiwaną przez coś działającego w AWS i innych w innym miejscu. CloudFront ma wiele przypadków użycia, które w ogóle nie wymagają CDN.
Michael - sqlbot
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.