154

AmazonRoute53で転送を設定しようとしています。私の最後のDNSサービス(Nettica)では、リクエストを「aws.example.com」から「https://myaccount.signin.aws.amazon.com/console/」にルーティングすることができました。

この機能はRoute53でサポートされていますか?

Netticaはこれをどのように達成しますか?特別なA、CNAME、PTR、またはTXTレコードを挿入しますか?

4

5 に答える 5

344

Sauravが説明したのとまったく同じ問題に遭遇しましたが、Route53とS3以外のものを必要としない解決策を見つける必要がありました。私は自分のブログのハウツーガイドを作成し、自分が何をしたかを詳しく説明しました。

これが私が思いついたものです。


目的

AmazonS3およびAmazonRoute53で利用可能なツールのみを使用して、 http: //url-redirect-example.vivekmchawla.comをhttpsにある「MyAccount」というエイリアスのAWSコンソールサインインページに自動的に転送するURLリダイレクトを作成します。 ://myaccount.signin.aws.amazon.com/console/

このガイドでは、AmazonからのURLだけでなく、任意のURLへのURL転送を設定する方法について説明します。特定のフォルダ(私の例では「/ console」など)への転送を設定する方法と、リダイレクトのプロトコルをHTTPからHTTPSに(またはその逆に)変更する方法を学習します。


ステップ1:S3バケットを作成する

S3管理コンソールを開き、[

S3管理コンソールを開き、[バケットの作成]をクリックします。


ステップ2:S3バケットに名前を付ける

S3バケットに名前を付けます

  1. バケット名を選択します。このステップは本当に重要です!バケットには、転送用に設定するURLとまったく同じ名前を付ける必要があります。このガイドでは、「url-redirect-example.vivekmchawla.com」という名前を使用します。

  2. 自分に最適な地域を選択してください。わからない場合は、デフォルトのままにしてください。

  3. ロギングの設定について心配する必要はありません。準備ができたら、[作成]ボタンをクリックするだけです。


ステップ3:静的ウェブサイトホスティングを有効にし、ルーティングルールを指定する

静的ウェブサイトホスティングを有効にし、ルーティングルールを指定する

  1. プロパティウィンドウで、「静的Webサイトホスティング」の設定を開きます。
  2. 「ウェブサイトホスティングを有効にする」オプションを選択します。
  3. 「インデックスドキュメント」の値を入力します。このオブジェクト(ドキュメント)はS3によって提供されることはなく、アップロードする必要もありません。任意の名前を使用してください。
  4. 「リダイレクトルールの編集」の設定を開きます。
  5. 次のXMLスニペット全体を貼り付けます。

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

上記のXMLが何をしているのか知りたい場合は、「ルーティングルールを指定するための構文」のAWMドキュメントにアクセスしてください。ボーナステクニック(ここでは説明しません)は、たとえば、宛先ホストの特定のページに転送することですhttp://redirect-destination.com/console/special-page.html<ReplaceKeyWith>この機能が必要な場合は、要素についてお読みください。


ステップ4:リダイレクトバケットの「エンドポイント」をメモします

リダイレクトバケットのエンドポイントをメモします

Amazonがこのバケット用に自動的に作成した静的ウェブサイトホスティングの「エンドポイント」に注意してください。これは後で必要になるので、URL全体を強調表示してから、コピーしてメモ帳に貼り付けます。

注意!この時点で、実際にこのリンクをクリックして、リダイレクトルールが正しく入力されているかどうかを確認できますが、注意してください。これが理由です...

<Hostname>リダイレクトルールのタグ内に間違った値を入力したとしましょう。myaccount.amazon.comの代わりに、誤って入力した可能性がありmyaccount.signin.aws.amazon.comます。リンクをクリックしてエンドポイントURLをテストすると、AWSはブラウザを間違ったアドレスにリダイレクトします。

間違いに気付いたら、おそらく<Hostname>リダイレ​​クトルールを編集してエラーを修正します。残念ながら、リンクをもう一度クリックしようとすると、間違ったアドレスにリダイレクトされてしまう可能性があります。エントリを修正しても<Hostname>、ブラウザは前の(正しくない!)エントリをキャッシュしています。これは、ChromeやFirefoxなどのブラウザがデフォルトでキャッシュするHTTP 301(永続的な)リダイレクトを使用しているために発生します。

<Hostname>エンドポイントURLをコピーして別のブラウザに貼り付ける(または現在のブラウザのキャッシュをクリアする)と、更新されたエントリが最終的に正しいものであるかどうかを確認する機会が得られます。

安全のため、エンドポイントURLとリダイレクトルールをテストする場合は、Chromeの「シークレットモード」などのプライベートブラウジングセッションを開く必要があります。シークレットモードでエンドポイントURLをコピー、貼り付け、テストすると、セッションを閉じるとキャッシュされたものはすべて消えます。


ステップ5:Route53管理コンソールを開き、ホストゾーン(ドメイン名)のレコードセットに移動します

Route 53管理コンソールを開いて、ホストゾーンにレコードセットを追加します

  1. バケットの作成時に使用したホストゾーン(ドメイン名)を選択します。バケットに「url-redirect-example.vivekmchawla.com」という名前を付けたので、vivekmchawla.comホストゾーンを選択します。
  2. 「レコードセットに移動」ボタンをクリックします。

ステップ6:[レコードセットの作成]ボタンをクリックします

[レコードセットの作成]ボタンをクリックします

[レコードセットの作成]をクリックすると、Route53管理コンソールの右側に[レコードセットの作成]ウィンドウが開きます。


手順7:CNAMEレコードセットを作成する

CNAMEレコードセットを作成する

  1. [名前]フィールドに、S3バケットに名前を付けるときに使用したURLのホスト名部分を入力します。URLの「ホスト名部分」は、ホストゾーンの名前の左側にあるすべてのものです。S3バケットに「url-redirect-example.vivekmchawla.com」という名前を付けました。ホストゾーンは「vivekmchawla.com」なので、入力する必要のあるホスト名の部分は「url-redirect-example」です。

  2. このレコードセットのタイプとして「CNAME-正規名」を選択します。

  3. [値]に、手順3で作成したS3バケットのエンドポイントURLを貼り付けます。

  4. 「レコードセットの作成」ボタンをクリックします。エラーがないと仮定すると、ホストゾーンのレコードセットのリストに新しいCNAMEレコードが表示されるようになります。


ステップ8:新しいURLリダイレクトをテストする

新しいブラウザタブを開き、設定したURLを入力します。私にとって、それはhttp://url-redirect-example.vivekmchawla.comです。すべてが正常に機能した場合は、AWSサインインページに直接送信する必要があります。

リダイレクトのリンク先URLとしてエイリアスを使用したためmyaccount.signin.aws.amazon.com、Amazonはアクセスしようとしているアカウントを正確に認識し、そこに直接移動します。これは、従業員や請負業者に短くてクリーンなブランドのAWSログインリンクを提供する場合に非常に便利です。

全部終わった! URL転送により、AWSサインインページに移動します。


結論

私は個人的にさまざまなAWSサービスが大好きですが、DNS管理をAmazon Route 53に移行することにした場合、簡単なURL転送の欠如はイライラする可能性があります。このガイドが、ホストゾーンのURL転送の設定を少し簡単にするのに役立つことを願っています。

詳細については、AWSドキュメントサイトの次のページをご覧ください。

乾杯!

于 2013-01-12T00:59:37.800 に答える
165

AWSサポートは、より単純なソリューションを示しました。これは基本的に@VivekM.Chawlaによって提案されたものと同じアイデアですが、より単純な実装です。

AWS S3:

  1. 次のように、フルドメインで名前が付けられたバケットを作成しますaws.example.com
  2. バケットのプロパティで、Redirect all requests to another host nameURLを選択して入力します。 https://myaccount.signin.aws.amazon.com/console/

AWS Route53:

  1. レコードセットタイプAを作成します。エイリアスをに変更しYesます。フィールドをクリックしAlias Targetて、前の手順で作成したS3バケットを選択します。

リファレンス:アマゾンウェブサービスを使用してドメインをリダイレクトする方法

AWS公式ドキュメント:Amazon Route 53を使用してドメインを別のドメインにリダイレクトする方法はありますか?

于 2015-10-07T12:05:44.047 に答える
12

nginxを使用して、awsサインインページへの301リダイレクトを処理することができました。

nginx confフォルダーに移動します(私の場合は、有効なconfファイルの/etc/nginx/sites-availableシンボリックリンクを作成します)。/etc/nginx/sites-enabled

次に、リダイレクトパスを追加します

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

nginxを使用している場合は、ゾーンの頂点(example.com)を処理するために、追加のサーバーブロック(apacheの用語では仮想ホスト)が必要になる可能性があります。それらの1つがデフォルトサーバーに設定されていることを確認してください。

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

Route 53で、A recordforを追加aws.example.comし、ゾーンの頂点に使用されるのと同じIPに値を設定します。

于 2012-06-20T20:35:11.173 に答える
10

アップデート

以下の私の元の回答はまだ有効であり、DNSベースのURL転送がAmazon Route 53経由ですぐに利用できない原因を理解するのに役立つ可能性がありますが、その間に導入されたVivekM.Chawlaの完全にスマートな間接ソリューションを確認することを強くお勧めしますAmazon S3によるWebサイトリダイレクトのサポートと、自己完結型サーバーの実現が少ないため、AWS内での無料ソリューションはそのようになります。

  • このようなリダイレクトを生成するための自動化されたソリューションの実装は、読者の演習として残されていますが、ソリューションを公開して、Vivekの壮大な答えに敬意を表してください;)

元の回答

Netticaは、このためのカスタムリダイレクトソリューションを実行している必要があります。問題は次のとおりです。

aws.example.comのようにCNAMEエイリアスを作成できますが、DNSは、この例myaccount.signin.aws.amazon.comのようにサブディレクトリのエイリアスを公式にサポートしていません。console

  • AWSが(私が試したばかりの)ヒット時にデフォルトでこれを単純に実行しないように見えるのは残念です。これはhttps://myaccount.signin.aws.amazon.com/、問題をすぐに解決し、そもそも多くの意味をなすからです。その上、彼らの側で設定するのはかなり簡単なはずです。

そのため、いくつかのDNSプロバイダーは、サブディレクトリへのリダイレクトを許可するカスタムソリューションを実装しているようです。私は、彼らが基本的に独自のドメインのCNAMEエイリアスを促進しており、そこから即時のHTTP3xxリダイレクトを介して最終的な宛先に再度リダイレクトしていると推測します。

したがって、同じ結果を得るには、これらのリダイレクトを実行するHTTPサービスを実行する必要があります。これは、もちろん期待する単純なソリューションではありません。たぶん/うまくいけば、誰かがまだもっと賢いアプローチを思い付くことができます。

于 2012-04-12T09:57:58.783 に答える
1

単純なアプローチでまだ問題が解決しない場合は、空のバケットを作成しRedirect all requests to another host nameてから、コンソールを介してプロパティの静的Webホスティングを実行します。route53に2つのAレコードを設定していることを確認します。1つはにfinal-destination.com、もう1つはに設定しますredirect-to.final-destination.com。これらのそれぞれの設定は同じですが、名前が異なるため、バケット/URLに設定した名前と一致します。

于 2016-10-01T08:44:40.030 に答える