AmazonRoute53で転送を設定しようとしています。私の最後のDNSサービス(Nettica)では、リクエストを「aws.example.com」から「https://myaccount.signin.aws.amazon.com/console/」にルーティングすることができました。
この機能はRoute53でサポートされていますか?
Netticaはこれをどのように達成しますか?特別なA、CNAME、PTR、またはTXTレコードを挿入しますか?
AmazonRoute53で転送を設定しようとしています。私の最後のDNSサービス(Nettica)では、リクエストを「aws.example.com」から「https://myaccount.signin.aws.amazon.com/console/」にルーティングすることができました。
この機能はRoute53でサポートされていますか?
Netticaはこれをどのように達成しますか?特別なA、CNAME、PTR、またはTXTレコードを挿入しますか?
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に(またはその逆に)変更する方法を学習します。
S3管理コンソールを開き、[バケットの作成]をクリックします。
バケット名を選択します。このステップは本当に重要です!バケットには、転送用に設定するURLとまったく同じ名前を付ける必要があります。このガイドでは、「url-redirect-example.vivekmchawla.com」という名前を使用します。
自分に最適な地域を選択してください。わからない場合は、デフォルトのままにしてください。
ロギングの設定について心配する必要はありません。準備ができたら、[作成]ボタンをクリックするだけです。
次の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>
この機能が必要な場合は、要素についてお読みください。
Amazonがこのバケット用に自動的に作成した静的ウェブサイトホスティングの「エンドポイント」に注意してください。これは後で必要になるので、URL全体を強調表示してから、コピーしてメモ帳に貼り付けます。
注意!この時点で、実際にこのリンクをクリックして、リダイレクトルールが正しく入力されているかどうかを確認できますが、注意してください。これが理由です...
<Hostname>
リダイレクトルールのタグ内に間違った値を入力したとしましょう。myaccount.amazon.com
の代わりに、誤って入力した可能性がありmyaccount.signin.aws.amazon.com
ます。リンクをクリックしてエンドポイントURLをテストすると、AWSはブラウザを間違ったアドレスにリダイレクトします。
間違いに気付いたら、おそらく<Hostname>
リダイレクトルールを編集してエラーを修正します。残念ながら、リンクをもう一度クリックしようとすると、間違ったアドレスにリダイレクトされてしまう可能性があります。エントリを修正しても<Hostname>
、ブラウザは前の(正しくない!)エントリをキャッシュしています。これは、ChromeやFirefoxなどのブラウザがデフォルトでキャッシュするHTTP 301(永続的な)リダイレクトを使用しているために発生します。
<Hostname>
エンドポイントURLをコピーして別のブラウザに貼り付ける(または現在のブラウザのキャッシュをクリアする)と、更新されたエントリが最終的に正しいものであるかどうかを確認する機会が得られます。
安全のため、エンドポイントURLとリダイレクトルールをテストする場合は、Chromeの「シークレットモード」などのプライベートブラウジングセッションを開く必要があります。シークレットモードでエンドポイントURLをコピー、貼り付け、テストすると、セッションを閉じるとキャッシュされたものはすべて消えます。
[レコードセットの作成]をクリックすると、Route53管理コンソールの右側に[レコードセットの作成]ウィンドウが開きます。
[名前]フィールドに、S3バケットに名前を付けるときに使用したURLのホスト名部分を入力します。URLの「ホスト名部分」は、ホストゾーンの名前の左側にあるすべてのものです。S3バケットに「url-redirect-example.vivekmchawla.com」という名前を付けました。ホストゾーンは「vivekmchawla.com」なので、入力する必要のあるホスト名の部分は「url-redirect-example」です。
このレコードセットのタイプとして「CNAME-正規名」を選択します。
[値]に、手順3で作成したS3バケットのエンドポイントURLを貼り付けます。
「レコードセットの作成」ボタンをクリックします。エラーがないと仮定すると、ホストゾーンのレコードセットのリストに新しいCNAMEレコードが表示されるようになります。
新しいブラウザタブを開き、設定したURLを入力します。私にとって、それはhttp://url-redirect-example.vivekmchawla.comです。すべてが正常に機能した場合は、AWSサインインページに直接送信する必要があります。
リダイレクトのリンク先URLとしてエイリアスを使用したためmyaccount.signin.aws.amazon.com
、Amazonはアクセスしようとしているアカウントを正確に認識し、そこに直接移動します。これは、従業員や請負業者に短くてクリーンなブランドのAWSログインリンクを提供する場合に非常に便利です。
私は個人的にさまざまなAWSサービスが大好きですが、DNS管理をAmazon Route 53に移行することにした場合、簡単なURL転送の欠如はイライラする可能性があります。このガイドが、ホストゾーンのURL転送の設定を少し簡単にするのに役立つことを願っています。
詳細については、AWSドキュメントサイトの次のページをご覧ください。
乾杯!
AWSサポートは、より単純なソリューションを示しました。これは基本的に@VivekM.Chawlaによって提案されたものと同じアイデアですが、より単純な実装です。
AWS S3:
aws.example.com
Redirect all requests to another host name
URLを選択して入力します。
https://myaccount.signin.aws.amazon.com/console/
AWS Route53:
Yes
ます。フィールドをクリックしAlias
Target
て、前の手順で作成したS3バケットを選択します。リファレンス:アマゾンウェブサービスを使用してドメインをリダイレクトする方法
AWS公式ドキュメント:Amazon Route 53を使用してドメインを別のドメインにリダイレクトする方法はありますか?
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 record
forを追加aws.example.com
し、ゾーンの頂点に使用されるのと同じIPに値を設定します。
以下の私の元の回答はまだ有効であり、DNSベースのURL転送がAmazon Route 53経由ですぐに利用できない原因を理解するのに役立つ可能性がありますが、その間に導入されたVivekM.Chawlaの完全にスマートな間接ソリューションを確認することを強くお勧めしますAmazon S3によるWebサイトリダイレクトのサポートと、自己完結型サーバーの実現が少ないため、AWS内での無料ソリューションはそのようになります。
Netticaは、このためのカスタムリダイレクトソリューションを実行している必要があります。問題は次のとおりです。
aws.example.com
のようにCNAMEエイリアスを作成できますが、DNSは、この例myaccount.signin.aws.amazon.com
のようにサブディレクトリのエイリアスを公式にサポートしていません。console
https://myaccount.signin.aws.amazon.com/
、問題をすぐに解決し、そもそも多くの意味をなすからです。その上、彼らの側で設定するのはかなり簡単なはずです。そのため、いくつかのDNSプロバイダーは、サブディレクトリへのリダイレクトを許可するカスタムソリューションを実装しているようです。私は、彼らが基本的に独自のドメインのCNAMEエイリアスを促進しており、そこから即時のHTTP3xxリダイレクトを介して最終的な宛先に再度リダイレクトしていると推測します。
したがって、同じ結果を得るには、これらのリダイレクトを実行するHTTPサービスを実行する必要があります。これは、もちろん期待する単純なソリューションではありません。たぶん/うまくいけば、誰かがまだもっと賢いアプローチを思い付くことができます。
単純なアプローチでまだ問題が解決しない場合は、空のバケットを作成しRedirect all requests to another host name
てから、コンソールを介してプロパティの静的Webホスティングを実行します。route53に2つのAレコードを設定していることを確認します。1つはにfinal-destination.com
、もう1つはに設定しますredirect-to.final-destination.com
。これらのそれぞれの設定は同じですが、名前が異なるため、バケット/URLに設定した名前と一致します。