web-dev-qa-db-ja.com

AWS VPCにDHCP、DNS、ホスト名を実装する方法

これが私が考えていることであり、私が望んでいることです。

AmazonでVPCを作成し、パブリックサブネットをその中に配置し、パペットサーバーインスタンスとフルスタックWebサーバーインスタンスをVPCに配置します。

ここで、puppetサーバーのホスト名を「puppet」に設定し、Webサーバーのホスト名を「webserver」に設定します。

次に、ドメイン名を「my-company-name.com.local」として設定したDHCPオプションを設定し、Amazonが提供するDNSを使用して、それをVPCに関連付けます。同じドメイン名でRoute53を使用してゾーンレコードを作成します。

次に、2つのインスタンスに新しいDHCPリースとVOILAを取得するように強制します。それらはプライベートIPアドレスを取得し、DNSは順方向および逆方向のDNSルックアップ用に自動的に更新されます。

これで、「puppet.mycompany.com.local」は「webserver.mycompany.com.local」を見つけることができ、その逆も同様に、VPCのネットワークのプライベート側で見つけることができます。

2つの質問は次のとおりです。A)DNSとDHCPはどのように機能しますか(特にそれらの間の自動連携)? DHCPによって割り当てられたIPアドレスをDNSレコードに手動で入力する必要はありませんか? B)これを機能させるにはどうすればよいですか?おそらく、作成する必要のあるDNSレコードやその他の手順は何ですか?

3
Dennis

取られた2つのアプローチがあるようです。ただし、1秒バックアップすると、IS Route 53にダイナミックDNSがありません。つまり、AWSのVPCにDHCPとDNSの間に連携がありません。

アプローチ1: http://www.ducea.com/2009/06/01/howto-update-dns-hostnames-automatically-for-your-Amazon-ec2-instances/ (Bind9が必要ネットワーク内のDNSサーバー)

アプローチ2: http://cantina.co/automated-dns-for-aws-instances-using-route-53/ (一連のスクリプトとダウンロードされたライブラリが必要であり、さらにIAMロールの資格情報を入力しますシステム内のすべてのサーバーでDNS更新を許可します。ハッキングされたボックスが1つあり、ネットワークはトーストです。)

私は何をするつもりですか?とにかくpuppetを実行する必要があり、TheForemanにはBind9とdhcpサーバーが含まれています。だから私はそれにインスタンスを捧げます。

1
Dennis

上記の質問の詳細を使用しました。ここにいくつかの追加事項があります:

内部ホストゾーン(例:ここin)で、ホストのAレコードではなくCNAMEを作成します。

test.in. CNAME ip-10-0-9.56.us-west-2.compute.internal

DHCPオプションセットについては、次のセットがあることを確認してください

domain-name = in
domain-name-servers = AmazonProvidedDNS 
1
Sonia Hamilton

スクリプトを使用してec2インスタンスをデプロイしている場合:DNSレコードを作成すると同時に設定できます。つまり、(テラフォーム)

resource "aws_route53_record" "ec2_alias_record" {
   zone_id = "${var.domain_id}"
   name = "MyComputer"
   type = "CNAME"
   ttl = "300"
   records = ["${aws_instance.ec2_instance.public_ip}"]
}

インスタンスを作成(再作成)するたびに、レコードが更新されます。また、ループ上でcount.index +1変数を使用してN個のインスタンスとN個のレコードを作成するために、パラメーターを設定できます。お役に立てれば。

0
aureli