AWS otomatik ölçeklendirme grubundan giden trafik için statik IP adresi


27

Bir VPC'de varsayılan bir alt ağda bulunan Elastic Beanstalk otomatik ölçeklendirme grubunda bir dizi EC2 örneğine sahip olacağım. Bu EC2 örnekleri üzerindeki uygulamanın erişime izin vermek için bir IP adresi beyaz listesi kullanan bir üçüncü taraf hizmetine bağlanması gerekir. Bu yüzden, bu servis sağlayıcıya verebileceğim bir veya daha fazla statik IP adresine ihtiyacım var ki beyaz listeye eklenebilsinler. Anladığım kadarıyla statik IP elde etmenin tek yolu Elastik IP adresi almak. Ve Elastik IP'yi bir seferde yalnızca bir EC2 örneği ile ilişkilendirebilirim - bunu tüm alt ağımla veya internet ağ geçidimle ilişkilendirebilirim (bu doğru mu?). Yani her EC2 örneği için bir Elastik IP'ye ihtiyacım var, bu yüzden her örnek ayrı olarak beyaz listeye alınabiliyor mu? Otomatik ölçeklendirme başka bir örnek eklerse bu nasıl çalışır? Elastik IP'ye sahip bir EC2 örneğim varsa, ve tüm giden trafiği bu örnek üzerinden yönlendirmek? Öyleyse, bu örneğin yalnızca bu amaç için mi olması gerekiyor yoksa uygulamamı çalıştıran örneklerden biri olabilir mi?

Yanıtlar:


19

NAT'a ihtiyacın var. Bu yapılandırma yaygın VPC özel alt ağları desteklemek için kullanılır, oldukça detaylı bir rehber var burada . VPC'niz NAT örneğini kullanacak şekilde yapılandırıldığında, tüm giden trafik NAT örneğinin EIP'sine atfedilir.

Öyleyse, bu örneğin yalnızca bu amaç için mi olması gerekiyor yoksa uygulamamı çalıştıran örneklerden biri olabilir mi?

Teknik olarak muhtemelen yapabilirsin, ama bu iyi bir fikir değil:

  • Rolleri izole etmek iyi bir güvenliktir.
  • Uygulama sunucularınızın benzer veya aynı yük profillerine sahip olmasını istiyorsunuz. Bir örnek, NAT nedeniyle% 10'luk fazladan yüke sahipse, o vakanın sınırlarına ulaştığınızda erken ölçeklendirmeniz gerekir. NAT, kümenize daha fazla örnek eklendikçe daha da yoğunlaştıkça daha da kötüleşecektir.
  • Uygulama sunucularınızın aynı ve geçici olmasını istersiniz, böylece herhangi bir sorun olduğunda veya ölçeklendirmeniz gerektiğinde onları yıkabilir ve / veya değiştirebilirsiniz. Diğerlerinden farklı bir uygulama sunucusuna sahip olmak büyük bir baş ağrısı olur.

Sen belki senin örnekleri konteynerle eğer onunla kurtulmak mümkün ama muhtemelen hala büyük bir fikir değil.

Ayrıca NAT örneğinizin tek bir başarısızlık noktası olabileceğini unutmayın, bu nedenle fazlalık hakkında düşünmek isteyebilirsiniz.


NAT kullanmak, bir istemcinin sunucuya ek bir arayüz eklemesi isteğinde, isteğin yanıt süresini artıracak mı?
r.bhardwaj

1
Bu amaca ulaşmak için NAT ağ geçidini kullandım ( docs.aws.amazon.com/elasticbeanstalk/latest/dg/vpc-rds.html ) ama yine de sunucuma nslookup yaptığım zaman NAT’tan farklı bir ip adresi döndürüyor. ağ geçidi
r.bhardwaj

12

Bunun eski bir konu olduğunu anlıyorum - şimdi benzer bir kullanım durumu olan biri için, AWS nat-gateway daha iyi bir çözüm olacaktır.


4

Yukarıdaki cevaplar hakkında yorum yapacak kadar itibarım yok, ancak bunu başarmak için bir NAT ağ geçidi kullanıyorsanız bilmeniz gereken bazı bilgileri eklemek istedim. Bir NAT ağ geçidi oluşturduğunuzda, bir alt ağ ve elastik bir IP adresi seçersiniz.

İlk önce, NAT ağ geçidini, elastik yük dengeleyicimin ve EC2 örneklerinin bulunduğu alt ağa yeni ekledim. Ardından, NAT ağ geçidini rota tablonuza eklemeniz gerekir. NAT ağ geçidini, iletişim kurmaya çalıştığım dış veritabanı sunucumun IP hedefi olarak ekledim. Bu benim elastik fasulye sapımda zaman aşımına uğrayan uygulamalarla sonuçlandı. Bunun nedeni, bu dış veritabanına NAT aracılığıyla bağlanmaya çalıştıklarıdır. NAT'a ulaştılar ve ardından NAT internet üzerinden sunucuma ulaşmayı denedi ve üzerinde durduğu alt ağın rota tablosunda kendi kendini işaret ediyordu, bir döngü yarattı.

Çözüm, NAT ağ geçidinizi oluşturmadan önce, NAT'ın kendi alt ağına ve yol tablosuna sahip olması için yalnızca NAT için yeni bir alt ağ oluşturmaktır. NAT'ın rota tablosunda, tüm trafiği internet ağ geçidine yönlendirin. Ana rota tablonuzda harici IP'nizi NAT'a yönlendirin. Ardından, EC2 örnekleriniz harici IP'nize bağlanmayı denediğinde, onları ana rota tablosunda arar (veya örneklerin içinde bulunduğu alt ağlar için tanımladığınız rota tablosu) ve NAT'ı bulur. Ardından, NAT'ınız bu IP'yi kendi rota tablosunda arayacak ve interneti bulacaktır.


Belki bazı ekran görüntüleri görmek isterim. Bunun benim sorunum olduğunu düşünüyorum ama sadece% 50 hakkında o grok edebilirsiniz
justin.m.chase

Sanırım böyle kurulur ama örneğimin genel IP'sine girmeye çalıştığımda zaman aşımına uğradı. Örnekte NAT üzerinden dolaşmak ve ayrıca ortak bir IP'den gelen bağlantıları almak için iki ağ cihazına ihtiyaç var mı?
justin.m.chase,

Bir örneğe ve onu harici alt ağa ikinci bir ağ arabirimi eklemeniz gerekir, ardından bu ağ arabirimine elastik bir ip atarsınız. Daha sonra bu IP üzerinden bağlanabilirsiniz, ancak diğer tüm trafik hala varsayılan olarak nat içinden geçecektir.
justin.m.chase 9:18
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.