質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

3回答

16507閲覧

/etc/hostsの記述について

Kimsehwa

総合スコア312

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

1グッド

2クリップ

投稿2015/12/22 08:13

編集2015/12/22 08:22
/etc/hosts 192.168.0.5 a.com

は可能な設定かと思いますが、

/etc/hosts b.com a.com

のような設定は不可能ですか?(やってみたらうまくいきませんでした。)

a.com b.comは管理配下です。

他特定ドメインにアクセスしようとすると別のドメインに飛ばす方法は何がありますか?(httpリダイレクト以外)

やりたいのは

program -> ELB -> HAPROXY -> RDS Slave{1,2}

の構成から

program -> Route53(dnsラウンドロビン) -> RDS Slave{1,2}

のように変えたいですが、
プログラムを修正せずにELBへ行くアクセスをRoute53のドメインに飛ばしたいです。

ikuwow👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanat

2015/12/22 08:17

a.com及びb.comは管理下にあるドメインでしょうか?
Kimsehwa

2015/12/22 08:22

a.com b.comは管理配下です!
tanat

2015/12/22 08:23

現在の構成でELBへのアクセスをしている様ですが、ELBへのアクセスはELBのエンドポイント名でのアクセスでしょうか?それともa.comでのアクセスでしょうか?
guest

回答3

0

/etc/hostsは名前解決をするための機構なのでエイリアス的な記述は出来ません。

通常、複数のドメインに対して同じ名前解決をさせたい場合はCNAMEレコードを使用します。

投稿2015/12/22 08:26

tanat

総合スコア18709

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanat

2015/12/22 09:09

今回のケースだと (おそらく)ELBのエンドポイントに対してa.comという名前でアクセスしていると思われるので(AliasもしくはCNAME)、 まず b.comについてDNSラウンドロビンでRDSにアクセスするようにし、 a.comの既存のレコード全てを削除し、CNAMEでb.comを参照するように指定することで、 アプリケーションからは a.comで名前解決しようとすると、b.comを参照し、b.comの名前解決の結果を取得することになります。 CNAMEがある場合は他のレコードが存在していてはいけないので、a.comのDNSを完全に自由に出来ない限りは使えません。
guest

0

ベストアンサー

hostsでクライアントの設定によりアクセスを変える事は可能です。
サービス目的というよりは、自身の動作検証目的になりますが。

sudo vi /etc/hosts --- 192.168.1.108 a.com b.com --- $ ping a.com PING a.com (192.168.1.108) 56(84) bytes of data. 64 bytes from a.com (192.168.1.108): icmp_seq=1 ttl=64 time=0.126 ms ^C $ ping b.com PING a.com (192.168.1.108) 56(84) bytes of data. 64 bytes from a.com (192.168.1.108): icmp_seq=1 ttl=64 time=0.124 ms

DNSラウンドロビンの場合

a.com. IN A 192.168.0.5 b.com. IN A 192.168.0.5

のように書けば、名前解決の都度、a.comと b.comの送出順が前後ひっくり返って応答されます。
これをDNSラウンドロビンと呼んでいると思います。

ただ、DNSラウンドロビンでは、サーバのダウンを検知して、負荷をそちらへ振らないようにするには、一工夫しないといけなく、また、クライアント側にDNSキャッシュが残るため、シビアなフェールセーフな構成を期待できなくなってしまいます。
サーバのダウンを検知して負荷を片寄せする、または、メンテナンスの為、片寄せする運用をされるのであれば、ELB(ロードバランサ)機能はあると、いざというとき本当に良かったと思うことになると思います。

投稿2015/12/22 08:26

Ken.sakanakana

総合スコア1768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2015/12/22 09:52

Route53のDNSフェールオーバーと組み合わせればHAPROXYサーバ置かなくて済むのではないかと思い検討中です。ご意見ありがとうございます!
Ken.sakanakana

2015/12/22 15:06

一工夫の方は大丈夫そうですね:-) 後は、DNSでの負荷分散や冗長は、クライアント側のキャッシュに依存する事だけ注意すれば=シビアな(秒単位の切り替えなど)サービスでなければ十分かもしれません。
tanat

2015/12/22 15:40

横からすみません&認識がずれてたらごめんなさい。 今回の場合、アプリケーションから呼ぶ名前はa.comのままにしたいということで、 **** sudo vi /etc/hosts --- 192.168.1.108 a.com b.com --- a.com. IN A 192.168.0.5 b.com. IN A 192.168.0.5 ***** となっている状態でも アプリケーションからはa.comを名前解決することになるため、 常に192.168.0.5が取得されてしまい、ロードバランシングはされないように思います。 *認識が違っていたらご指摘下さい。 また、DNSラウンドロビンとは一般的には 同じ名前について名前解決をした場合に順番にIPが送出される状態を指す物だと思います、DNSレコードとしては hoge IN A 127.0.1.1 hoge IN A 127.0.1.2 hoge IN A 127.0.1.3 という様な状態かと思います。 仮に最終的に接続するDBが192.168.0.6と192.168.0.7の場合は [b.comの設定] b.com. IN A 192.168.0.6 b.com. IN A 192.168.0.7 [a.comの設定] a.com. IN CNAME b.com とすることで、アプリケーションからa.comを名前解決すると192.168.0.6と192.168.0.7が順番に送出されます。 ただ、今回のケースでは最終的なエンドポイントがRDSなので(slaveとありますが、おそらくリードレプリカでしょうか・・・)直接IPを指定する事は出来ないため、この方法は使えませんね・・・
Ken.sakanakana

2015/12/24 12:06

ご指摘ありがとうございます!失礼いたしました。 Kimsehwa様の期待する動作は、tanat様のおっしゃる方法となります。 RDSですが、Publicly Accessibleをyes (+セキュリティグループの設定)にてグローバルIPアドレスからのアクセスも可能かとは思いますが、そのような運用はした事がありません・・・ 今後ここを参照される方の事を考えて、ベストアンサーをtanatさまに付け替えて頂けると幸いです。
guest

0

はい、/etc/hostsは、「IP アドレスとホスト名を関連づけている」ファイルです(man)。ホスト名の読み替え目的には使えません。

投稿2015/12/22 08:19

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問