Amazon Route53'te DNS tabanlı URL yönlendirmeyi ayarlama [kapalı]


140

Amazon Route53'te yönlendirme kurmaya çalışıyorum. Son DNS hizmetim (Nettica) istekleri "aws.example.com" adresine "https://myaccount.signin.aws.amazon.com/console/" adresine yönlendirmeme izin verdi.

Bu işlev Route53 tarafından destekleniyor mu?

Nettica bunu nasıl başarıyor? Özel bir A, CNAME, PTR veya TXT kaydı ekliyor mu?


Başlangıç ​​noktası olarak URL ile Cloudfront dağıtımı oluşturmak da işe yarar. Etki alanını Route53'ten Cloudfront dağıtımına yönlendirin ve TLS sertifikalarını doğru şekilde yapılandırdığınızdan emin olun.
Deiwin

Yanıtlar:


325

Saurav'ın tarif ettiği problemle karşılaşıyordum, ancak Route 53 ve S3'ten başka bir şey gerektirmeyen bir çözüm bulmam gerekiyordu. Blogum için ne yaptığımı detaylandıran bir nasıl yapılır kılavuzu oluşturdum.

İşte ortaya çıkardığım şey.


Amaç

Yalnızca Amazon S3 ve Amazon Route 53'te bulunan araçları kullanarak, http://url-redirect-example.vivekmchawla.com adresini https adresinde bulunan "MyAccount" olarak adlandırılan AWS Konsolu oturum açma sayfasına otomatik olarak yönlendiren bir URL Yönlendirme oluşturun : //myaccount.signin.aws.amazon.com/console/ .

Bu kılavuz, yalnızca Amazon'dan değil, herhangi bir URL'ye URL yönlendirmeyi ayarlamayı öğretecektir. Belirli klasörlere (örneğimde "/ console" gibi) yönlendirmeyi nasıl ayarlayacağınızı ve yönlendirme protokolünü HTTP'den HTTPS'ye nasıl değiştireceğinizi (veya tersini) öğreneceksiniz.


Birinci Adım: S3 Bölümünüzü Oluşturun

S3 Yönetim Konsolu'nu açın ve "Bölüm Oluştur" u tıklayın

S3 yönetim konsolunu açın ve "Bölüm Oluştur" u tıklayın.


İkinci Adım: S3 Bölümünüzü Adlandırın

S3 Bölümünüzü adlandırın

  1. Bir Bölüm Adı seçin. Bu adım gerçekten önemlidir! Kovaya, yönlendirme için ayarlamak istediğiniz URL ile tam olarak aynı ad vermeniz gerekir. Bu kılavuz için "url-redirect-example.vivekmchawla.com" adını kullanacağım.

  2. Sizin için en uygun bölgeyi seçin. Bilmiyorsanız, varsayılanı koruyun.

  3. Günlük kaydı ayarlama konusunda endişelenmeyin. Hazır olduğunuzda "Oluştur" düğmesini tıklamanız yeterlidir.


3. Adım: Statik Web Sitesi Barındırma Özelliğini Etkinleştirme ve Yönlendirme Kurallarını Belirtme

Statik Web Sitesi Barındırma Özelliğini Etkinleştirme ve Yönlendirme Kurallarını Belirtme

  1. Özellikler penceresinde, "Statik Web Sitesi Barındırma" ayarlarını açın.
  2. "Web sitesi barındırmayı etkinleştir" seçeneğini seçin.
  3. "Dizin Belgesi" için bir değer girin. Bu nesneye (belge) hiçbir zaman S3 tarafından sunulmayacak ve asla yüklemeniz gerekmeyecek. Sadece istediğiniz herhangi bir ismi kullanın.
  4. "Yeniden Yönlendirme Kurallarını Düzenle" ayarlarını açın.
  5. Aşağıdaki XML snippet'ini tamamen yapıştırın.

    <RoutingRules>
      <RoutingRule>
        <Redirect>
          <Protocol>https</Protocol>
          <HostName>myaccount.signin.aws.amazon.com</HostName>
          <ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith>
          <HttpRedirectCode>301</HttpRedirectCode>
        </Redirect>
      </RoutingRule>
    </RoutingRules>
    

Yukarıdaki XML'in ne yaptığını merak ediyorsanız, "Yönlendirme Kurallarını Belirlemek için Sözdizimi" ile ilgili AWM Belgelerini ziyaret edin . Örneğin, burada yer almayan bir bonus tekniği, hedef ana bilgisayardaki belirli sayfalara yönlendiriliyor http://redirect-destination.com/console/special-page.html. <ReplaceKeyWith>Bu işlevselliğe ihtiyacınız varsa öğe hakkında bilgi edinin .


4. Adım: Yönlendirme Kovanızın "Bitiş Noktası" nı not edin

Yönlendirme Kovanızın Uç Noktasını not edin

Amazon'un bu kova için otomatik olarak oluşturduğu Statik Web Sitesi Barındırma "uç noktasını" not edin. Daha sonra kullanmak için buna ihtiyacınız olacak, bu nedenle URL'nin tamamını vurgulayın ve kopyalayıp not defterine yapıştırın.

DİKKAT! Bu noktada, Yönlendirme Kurallarınızın doğru girilip girilmediğini kontrol etmek için bu bağlantıyı tıklayabilirsiniz, ancak dikkatli olun! İşte nedeni ...

Diyelim ki <Hostname>Yönlendirme Kurallarınızdaki etiketlerin içine yanlış değer girdiniz . Belki de myaccount.amazon.comyerine yanlışlıkla yazdınız myaccount.signin.aws.amazon.com. Bitiş Noktası URL'sini test etmek için bağlantıyı tıklarsanız, AWS tarayıcınızı mutlu bir şekilde yanlış adrese yönlendirir!

Hatanızı fark ettikten sonra, hatayı <Hostname>düzeltmek için Yönlendirme Kurallarınızda büyük olasılıkla düzenleyeceksiniz . Ne yazık ki, bağlantıyı tekrar tıklamaya çalıştığınızda büyük olasılıkla yanlış adrese yönlendirileceksiniz! Düzeltmiş olmanıza rağmen<Hostname>Girişi , tarayıcınız önceki (yanlış!) Girişi önbelleğe alıyor. Bunun nedeni, Chrome ve Firefox gibi tarayıcıların varsayılan olarak önbelleğe alacağı bir HTTP 301 (kalıcı) yönlendirmesi kullanmamızdır.

Bitiş Noktası URL'sini kopyalayıp farklı bir tarayıcıya yapıştırırsanız (veya geçerli tarayıcınızdaki önbelleği temizlerseniz), güncellenmiş <Hostname>girişinizin nihayet doğru olup olmadığını görmek için bir şans daha elde edersiniz .

Güvende olmak için, Bitiş Noktası URL'nizi ve Yönlendirme Kurallarınızı test etmek istiyorsanız, Chrome'da "Gizli Mod" gibi özel bir göz atma oturumu açmalısınız. Gizli Modda Bitiş Noktası URL'sini kopyalayın, yapıştırın ve test edin; önbelleğe alınan her şey oturumu kapattığınızda kaybolur.


Adım 5: Route53 Yönetim Konsolu'nu açın ve Barındırılan Bölgenizin (Etki Alanı Adı) Kayıt Setlerine Git

Barındırılan Bölgenize Kayıt Kümeleri Eklemek için Route 53 Yönetim Konsolu'nu açın

  1. Grubunuzu oluştururken kullandığınız Barındırılan Bölge'yi (alan adı) seçin. Kepçeme "url-redirect-example.vivekmchawla.com" adını verdiğimden, vivekmchawla.com Barındırılan Bölge'yi seçeceğim.
  2. "Kayıt Kümelerine Git" düğmesini tıklayın.

6. Adım: "Kayıt Kümesi Oluştur" Düğmesini tıklayın

Kayıt Kümesi Oluştur düğmesini tıklayın

"Kayıt Kümesi Oluştur" tıklandığında, Route53 Yönetim Konsolu'nun sağ tarafındaki Kayıt Kümesi Oluştur penceresi açılır.


7. Adım: CNAME Kayıt Kümesi oluşturun

CNAME Kayıt Kümesi Oluşturma

  1. Ad alanına, S3 grubunuzu adlandırırken kullandığınız URL'nin ana bilgisayar adı bölümünü girin. URL'nin "ana makine adı bölümü", Barındırılan Bölge adınızın SOL'una ilişkin her şeydir. S3 grubumu "url-redirect-example.vivekmchawla.com" olarak adlandırdım ve Barındırılan Alanım "vivekmchawla.com", bu yüzden girmem gereken ana bilgisayar adı bölümü "url-redirect-example".

  2. Bu Kayıt Kümesinin Türü için "CNAME - Kurallı ad" ı seçin.

  3. Değer için 3. Adımda oluşturduğumuz S3 grubunun Bitiş Noktası URL'sini yapıştırın.

  4. "Kayıt Kümesi Oluştur" düğmesini tıklayın. Hata olmadığı varsayılarak, Barındırılan Bölgenizin Kayıt Kümeleri listesinde artık yeni bir CNAME kaydı görebileceksiniz.


8. Adım: Yeni URL Yönlendirmenizi Test Edin

Yeni bir tarayıcı sekmesi açın ve az önce ayarladığımız URL'yi yazın. Benim için bu http://url-redirect-example.vivekmchawla.com . Her şey yolunda giderse, doğrudan bir AWS oturum açma sayfasına gönderilmelisiniz.

myaccount.signin.aws.amazon.comTakma adı yönlendirmemizin hedef URL'si olarak kullandığımız için Amazon, hangi hesaba erişmeye çalıştığımızı tam olarak biliyor ve bizi doğrudan oraya götürüyor. Çalışanlara veya yüklenicilere kısa, temiz, markalı bir AWS giriş bağlantısı vermek istiyorsanız bu çok kullanışlı olabilir.

Hepsi tamam!  URL yönlendirmeniz sizi AWS oturum açma sayfasına götürmelidir.


Sonuçlar

Kişisel olarak çeşitli AWS hizmetlerini seviyorum, ancak DNS yönetimini Amazon Route 53'e geçirmeye karar verdiyseniz, kolay URL yönlendirme eksikliği sinir bozucu olabilir. Umarım bu kılavuz Barındırılan Bölgeleriniz için URL yönlendirmeyi ayarlamayı biraz kolaylaştırmıştır.

Daha fazla bilgi edinmek isterseniz, lütfen aşağıdaki sayfalara AWS Belgeleri sitesinden bakın.

Şerefe!


15
Bu son derece akıllı çözüm için +1 - böyle destansı bir adım adım rehber derlemek için zaman ayırdığınız için çok teşekkürler, gelecekteki okuyucuları buna göre yönlendirmek için cevabımı güncelledim !
Steffen Opel

23
Not :: Kök etki alanı yönlendirmeleri isteyenler için: example.org -> example.com - "Takma Ad: Evet" etkinken A Kaydı kullanmak dışında her şeyi yapın. Ardından, hedefi kova olarak seçin.
JaredBroad

10
Harika bir çözüm. Ancak orijinal URL için https kullanarak bir sorunla karşılaştım. Yeniden yönlendirdiğim grup dev.example.com ise, yeniden yönlendirme http: // dev.example.com için harika çalışır ancak https: // dev.example.com için başarısız olur. Bu soruna bir çözüm bulamadım.
Greg

4
@Greg Bence Amazon'un S3 için HTTPS'yi nasıl ele alacağı ile ilgili bir şey olabilir. Ne yazık ki, bir S3 grubuna erişmek için CNAME kullanırken, "https" ekleyerek SSL'yi zorlayamazsınız, çünkü Amazon "* .example.com" için bir sertifika barındırmamaktadır. S3 bağlantıya izin vermeyeceğinden, yönlendirme mantığına asla ulaşamayız. Ne yazık ki, bunun için bir çözüm göremiyorum.
Vivek M. Chawla

17
Bucker seçeneklerinin altında yeni bir "Tüm istekleri başka bir ana bilgisayar adına yönlendir" seçeneği vardır. Orada url IAM işareti koymak ve bir çekicilik gibi çalıştı, XML gerek yok.
Dan Milon

145

AWS desteği daha basit bir çözüme işaret etti. Temel olarak, @Vivek M. Chawla tarafından önerilen aynı fikir, daha basit bir uygulama ile.

AWS S3:

  1. Tam alan adınızla adlandırılmış bir Grup oluşturun, örneğin aws.example.com
  2. Grup özelliklerinde Redirect all requests to another host nameURL'nizi seçin ve girin: https://myaccount.signin.aws.amazon.com/console/

AWS Route53:

  1. A tipi bir kayıt kümesi oluşturun Yes. Alias TargetAlana tıklayın ve önceki adımda oluşturduğunuz S3 kovasını seçin.

Referans: Amazon Web Services kullanarak etki alanlarını yeniden yönlendirme

AWS resmi belgeleri: Amazon Route 53 kullanarak bir alanı başka bir alana yönlendirmenin bir yolu var mı?


16
Bu HTTP için harika çalışıyor ancak HTTPS için uygun değil.
mythofechelon

@mythofechelon Ne demek istiyorsun? Https ile ilgili herhangi bir sorun yaşamadım. Alan adınızla https kullanmak istiyorsanız (ör. Https: // aws.example.com), bu tamamen farklı bir sorundur, çünkü bunu yapabilmek için ssl sertifikasına sahip bir sunucuya ihtiyacınız olacaktır.
Roberto Schneiders


2
Bu Redirect all requests to another host nameseçenek hala mevcut mu? Kova özelliklerine gittiğimde göremiyorum.
aidan

1
Bu doğru cevap olmalı, CNAME yerine performans amacıyla Takma ad kullanarak AWS içindeki bileşenlere başvurmak daha iyidir (işe yarar, ancak en iyi yaklaşım değildir).
Douglas Figueroa

11

Nginx'i aws oturum açma sayfasına 301 yönlendirmesini işlemek için kullanabildim.

Nginx conf klasörünüze gidin (benim durumumda , etkinleştirilmiş conf dosyaları için /etc/nginx/sites-availablebir symlink oluşturduğum /etc/nginx/sites-enabled).

Ardından bir yönlendirme yolu ekleyin

server {
  listen 80;
  server_name aws.example.com;
  return 301 https://myaccount.signin.aws.amazon.com/console;
}

Nginx kullanıyorsanız, büyük olasılıkla bölge apeksinizi (example.com) işlemek için ek sunucu bloklarınız (apache terminolojisindeki sanal ana makineler) olacak veya kurulumunuz olacaktır. Bunlardan birinin varsayılan sunucunuz olarak ayarlandığından emin olun.

server {
  listen 80 default_server;
  server_name example.com;
  # rest of config ...
}

Rota 53'te bir A recordfor ekleyin aws.example.comve değeri bölge tepe noktanız için kullanılanla aynı IP'ye ayarlayın.


Daha da iyisi, bu makinenin önündeki elastik yük dengeleyiciyi göstermek için bir Takma ad kaydı kullanmak olabilir.
maletor

9

Güncelleme

Aşağıdaki orijinal cevabım hala geçerli olsa da ve DNS tabanlı URL yönlendirmenin Amazon Route 53 aracılığıyla kutudan çıkamamasının nedenini anlamakta yardımcı olabilirken , bu arada tanıtılan Vivek M. Chawla'nın tamamen akıllı dolaylı çözümüne göz atmanızı tavsiye ederim. Web Sitesi Yönlendirmeleri için Amazon S3 Desteği ve bağımsız bir sunucuya daha az ve dolayısıyla AWS içinde ücretsiz bir çözüme ulaşmak gibi.

  • Bu tür yönlendirmeler oluşturmak için otomatik bir çözüm uygulamak okuyucu için bir egzersiz olarak bırakılmıştır, ancak lütfen çözümünüzü yayınlayarak Vivek'in destansı yanıtına saygı gösterin;)

Orijinal Yanıt

Nettica bunun için özel bir yönlendirme çözümü kullanıyor olmalı, sorun şu:

Bunun için bir CNAME takma adı oluşturabilirsiniz , ancak DNS bu örnekteki gibi bir alt dizinin takma adı aws.example.comiçin myaccount.signin.aws.amazon.comresmi bir destek sağlamaz console.

  • AWS'nin isabet ederken bunu varsayılan olarak yapması görünmüyor https://myaccount.signin.aws.amazon.com/(sadece denedim), çünkü sizi hemen çözecek ve ilk etapta çok mantıklı olacaktır; ayrıca, sonunda yapılandırmak oldukça kolay olmalıdır.

Bu nedenle, birkaç DNS sağlayıcısı alt dizinlere yönlendirmelere izin vermek için özel bir çözüm uyguladı; Temelde kendi etki alanları için bir CNAME takma adını kolaylaştırdıklarını ve oradan nihai HTTP 3xx Yönlendirme yoluyla tekrar nihai hedefe yönlendirildiklerini tahmin ediyorum .

Aynı sonucu elde etmek için, bu yönlendirmeleri gerçekleştiren bir HTTP hizmetine sahip olmanız gerekir, ki bu elbette umduğu basit bir çözüm değildir. Belki / Umarım birisi yine de daha akıllı bir yaklaşım geliştirebilir.


3
CNAME'ler takma adlardır ve yönlendirme yapmazlar.
ejain

@ejain - haklısın elbette, bunu buna göre düzelttim (o zaman bildirimi kaçırmış olmalıyım); bu potansiyel olarak yanıltıcı ifadeye dikkat çektiğiniz için teşekkür ederiz!
Steffen Opel

0

Basit bir yaklaşımla hala sorun yaşıyorsanız, boş bir kova oluşturmak ve daha sonra Redirect all requests to another host nameStatik web altında mülkleri konsol aracılığıyla barındırmak. Route53 içinde, biri için final-destination.comve biri için 2 A kaydı ayarladığınızdan emin olun redirect-to.final-destination.com. Bunların her biri için ayarlar aynı olacaktır, ancak ad, gruplarınız / URL'leriniz için belirlediğiniz adlarla eşleşecek şekilde farklı olacaktır.

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.