Amazon Route53で転送を設定しようとしています。私の最後のDNSサービス(Nettica)により、「aws.example.com」へのリクエストを「https://myaccount.signin.aws.Amazon.com/console/」にルーティングできました。
この機能はRoute53でサポートされていますか?
Netticaはこれをどのように達成しますか?特別なA、CNAME、PTR、またはTXTレコードを挿入しますか?
Sauravが説明したのとまったく同じ問題にぶつかりましたが、Route 53とS3以外を必要としないソリューションを見つける必要がありました。ブログのハウツーガイドを作成して、自分が行ったことを詳しく説明しました。
ここに私が思いついたものがあります。
Amazon S3およびAmazon Route 53で使用可能なツールのみを使用して、 http://url-redirect-example.vivekmchawla.com にエイリアスされたAWSコンソールサインインページに自動的に転送するURLリダイレクトを作成します https://myaccount.signin.aws.Amazon.com/console/ にある「MyAccount」。
このガイドでは、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(永続)リダイレクトを使用しているために発生します。
エンドポイントURLをコピーして別のブラウザーに貼り付ける(または現在のブラウザーのキャッシュをクリアする)と、更新された<Hostname>
エントリーが最終的に正しいものであるかどうかを確認できます。
安全のために、エンドポイントURLとリダイレクトルールをテストする場合は、Chromeの「シークレットモード」などのプライベートブラウジングセッションを開く必要があります。シークレットモードでエンドポイントURLをコピー、貼り付け、テストすると、セッションを閉じるとキャッシュされたものはすべて消えます。
[レコードセットの作成]をクリックすると、Route53管理コンソールの右側に[レコードセットの作成]ウィンドウが開きます。
[名前]フィールドに、S3バケットに名前を付けるときに使用したURLのホスト名部分を入力します。 URLの「ホスト名部分」は、ホストゾーン名の左側のすべてです。 S3バケットに「url-redirect-example.vivekmchawla.com」という名前を付けました。ホストゾーンは「vivekmchawla.com」なので、入力する必要があるホスト名の部分は「url-redirect-example」です。
このレコードセットのタイプに「CNAME-Canonical name」を選択します。
値には、ステップ3で作成したS3バケットのエンドポイントURLを貼り付けます。
[レコードセットの作成]ボタンをクリックします。エラーがなければ、ホストゾーンのレコードセットのリストに新しいCNAMEレコードを表示できるようになります。
新しいブラウザタブを開き、設定したURLを入力します。私にとっては、それは http://url-redirect-example.vivekmchawla.com です。すべてが正常に機能した場合、AWSサインインページに直接送信する必要があります。
myaccount.signin.aws.Amazon.com
エイリアスをリダイレクトのリンク先URLとして使用したため、Amazonはアクセスしようとしているアカウントを正確に認識し、そこに直接移動します。これは、従業員または請負業者に短くてきれいなブランドのAWSログインリンクを提供する場合に非常に便利です。
個人的にはさまざまなAWSサービスが大好きですが、DNS管理をAmazon Route 53に移行することに決めた場合、簡単なURL転送の欠如はイライラする可能性があります。このガイドがホストゾーンのURL転送の設定を少し簡単にするのに役立つことを願っています。
詳細については、AWSドキュメントサイトの以下のページをご覧ください。
乾杯!
AWSサポートは、よりシンプルなソリューションを示しました。基本的に@Vivek M. 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フォルダーに移動します(私の場合は、/etc/nginx/sites-available
で、有効なconfファイルの/etc/nginx/sites-enabled
へのシンボリックリンクを作成します)。
次に、リダイレクトパスを追加します
server {
listen 80;
server_name aws.example.com;
return 301 https://myaccount.signin.aws.Amazon.com/console;
}
Nginxを使用している場合、ほとんどの場合、追加のサーバーブロック(Apache用語では仮想ホスト)を使用して、ゾーンの頂点(example.com)を処理するか、セットアップします。それらのいずれかがデフォルトサーバーに設定されていることを確認してください。
server {
listen 80 default_server;
server_name example.com;
# rest of config ...
}
Route 53で、A record
にaws.example.com
を追加し、ゾーンの頂点に使用されるのと同じIPに値を設定します。
以下の私の元の回答はまだ有効であり、DNSベースのURL転送が Amazon Route 5 で利用できない原因を理解するのに役立つかもしれませんが、Vivek M. Chawlaの- まったくスマートな間接ソリューション 導入された間 ウェブサイトリダイレクトのAmazon S3サポート そして、自己完結型サーバーを少なくして、AWS内でのみ無料ソリューションを実現します。
Netticaはこのためにカスタムリダイレクトソリューションを実行している必要があります。問題は次のとおりです。
aws.example.com
のmyaccount.signin.aws.Amazon.com
のようなCNAMEエイリアスを作成できますが、この例では、DNSはconsole
のようなサブディレクトリのエイリアスの公式サポートを提供しません。
https://myaccount.signin.aws.Amazon.com/
をヒットしたときに、AWSがデフォルトでこれを単純に実行していないように見えるのは残念です(私が試したところです)。これは、問題をすぐに解決し、そもそも多くの意味をなすからです。それに、彼らの側で設定するのはかなり簡単なはずです。そのため、いくつかのDNSプロバイダーは、サブディレクトリへのリダイレクトを許可するカスタムソリューションを実装しているようです。私は、彼らが基本的に自分のドメインのCNAMEエイリアスを促進し、そこから最終的な宛先に即時の HTTP 3xx Redirection を介して再びリダイレクトしているという推測に挑戦します。
したがって、同じ結果を得るには、これらのリダイレクトを実行するHTTPサービスを実行する必要がありますが、これはもちろん期待される単純なソリューションではありません。しかし、おそらく/誰かがもっと賢いアプローチを考え出すことができます。
単純なアプローチでまだ問題がある場合は、空のバケットを作成してから、コンソールを介したプロパティの静的WebホスティングでRedirect all requests to another Host name
を作成します。 route53に2つのAレコードを設定したことを確認します。1つはfinal-destination.com
用で、もう1つはredirect-to.final-destination.com
用です。これらのそれぞれの設定は同じですが、名前は異なるため、バケット/ URLに設定した名前と一致します。