AWS, HTTPS trafiğini dizin yoluna göre iki farklı EC2 örneğine yönlendirmenin bir yolunu sunuyor mu?


10

AWS teklifleri ile aşağıdakilerin mümkün olup olmadığını merak ediyordum?

https://www.example.com/a/-> EC2 Örnek A'da Apache tarafından sunuluyor

https://www.example.com/b/-> EC2 Instance B'de Apache tarafından sunuluyor

Açıklığa kavuşturmak için, bir dizin yolu altındaki dosyaların diğer dizin yolu altındaki dosyalarla aynı sunucu örneğinde olmasını istemiyorum.

Bunun bir çeşit proxy ile mümkün olabileceğini anlıyorum, ancak AWS tekliflerinden biriyle daha kolay bir çözüm var.

EC2 Yük Dengeleyici dizin yolu dayalı anahtarlama izin vermiyor. Rota 53 , IP'leri buna dayalı olarak döndürmek için yol bilgisi olmayan DNS düzeyinde çalışır.


EC2 yük dengeleyicisi o kadar aptal ki, Host:başlıkları okumaz ve sahte trafiği filtrelemez. Başlıklara bakmak onlar için çok fazla iş olup olmadığını sorduğunuz gibi herhangi bir özellik eklemeleri pek olası görünmüyor. Merhametle başka seçenekleri var.
civcivler

Yanıtlar:


29

Kullanım AWS Uygulama yük dengeleyici yapar Yol Tabanlı Yönlendirme . Bu ikinci bağlantı nasıl yapılacağına dair bir öğreticidir.

Kısacası, ALB'nizi normal olarak ayarladıktan sonra şu adımları izleyin (AWS eğitiminden kopyalanır):

  • On Dinleyiciler sekmesi, dinleyici için kurallar gösterip ardından seçmek için oku kullanın Ekleme kuralı . Kuralı aşağıdaki gibi belirtin:

  • İçin Hedef grup adı , oluşturduğunuz ikinci hedef grubunu seçin.

  • İçin yol desen tam olarak işe belirtmek yolu tabanlı yönlendirme için kullanılabilir (örneğin, / img / *). Daha fazla bilgi için bkz. Dinleyici Kuralları.

  • Kaydet'i seçin .


Teşekkürler! EC2 Application Load Balancer'ı orijinal olarak kontrol ettim, sihirbazdan geçtim, ama aslında hiç bir tane oluşturmadım. Sihirbaz bir yol seçeneği sunmadı. Eğiticinin işaret ettiği gibi, önce onu oluşturmak ve daha sonra kuralları düzenlemek gerekir.
Joseph Shih

9

Tim'in mükemmel cevabına ek olarak, bunu CloudFront ile de yapabilirsiniz .

İlk olarak, dağıtımınızı oluşturun ve EC2 Instance A ve EC2 Instance B için orijinler ekleyin (yük dengeleyiciler, AWS olmayan ana bilgisayarlar ve hatta S3 kovaları da olabilir).

Ardından, / a / * ve / b / * 'yi uygun kaynaklarla eşleştirmek için önbellek davranış kurallarını ayarlayın .

CloudFront'un bu amaçla kullanılmasının anlamlı olup olmadığı uygulamanıza ve bir CDN gereksinimine bağlı olacaktır.


4
Bu, farklı hizmetler, farklı hesaplar, farklı bölgeler veya hatta bir yolun AWS içinde ve başka bir yerde çalışan bir şey tarafından ele alınmasını istiyorsanız /a*ve /b*ele alınmanız durumunda da geçerli olabilir . CloudFront'un kavramsal olarak CDN gerektirmeyen birçok kullanım durumu vardır.
Michael - sqlbot
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.