【AWSユーザーガイド非公式解説】[VPC]3-2.仮想プライベートクラウドを設定する(後半)

2024/09/21に公開

この記事はAWSユーザーガイドの以下リンクの解説記事です。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/configure-your-vpc.html

前半はこちら

Amazon VPC の DHCP オプションセット

DHCPオプションセットでは、DNS サーバー、ドメイン名、Network Time Protocol (NTP) サーバー等の設定が可能です。

DHCP とは

IPアドレスを、Dynamic Host Configuration Protocol (DHCP) を使用して DHCP サーバーによって動的に割り当てる仕組みをDHCPと言います。
EC2インスタンスはAmazon DHCPサーバによりIPアドレスが割り当てられます。IPアドレス割り当ての際にDHCPサーバから併せて受け取る情報をDHCPオプションと言います。

DHCP オプションセットの概念

DHCPオプションは標準で50以上の項目がありますが、DHCPオプションセットはその一部の項目設定をグルーピングする機能です。
各リージョンにはデフォルトの DHCPオプションセットがあり、VPC作成時に自動で関連付けられます。
デフォルトのDHCPオプションセットとは別にカスタマイズしたDHCPオプションセットを関連付けることもできます。
VPCに複数のDHCPオプションセットを関連付けることはできません。

デフォルト DHCP オプションセット

デフォルトの DHCP オプションセットには次の設定が含まれます。
alt text

  • ドメイン名:ap-northeast-1.compute.internal 等のドメイン名が設定されています。デフォルトのオプションセットを使用する環境で起動するEC2インスタンスにはxxxxx.ap-northeast-1.compute.internalのホスト名が割り当てられます。us-east-1リージョンの場合、「.ec2.internal」というドメイン名になります。
  • ドメインネームサーバー:AmazonProvidedDNS が設定されています。
  • IPv6 優先リースタイム:デフォルトのリースタイムは 140 秒です。EC2は通常、リースタイムの半分が経過した時点でIPv6アドレスリースの更新を行います。

デフォルトのDHCPオプションセットには NTP サーバー、NetBIOS、NetBIOS ネームサーバー、NetBIOS ノードタイプの設定はありませんが、それぞれEC2のデフォルトが使用されます。

カスタム DHCP オプションセット

DHCPオプションセットをカスタマイズして作成することができます。

alt text

  • ドメイン名:デフォルトのドメイン名以外を設定することができます。
  • ドメインネームサーバー:AmazonProvidedDNS以外のDNSサーバを使用することができます。
  • NTPサーバー:任意のNTPサーバーを設定することができます。
  • NetBIOS ネームサーバー:Windows環境に置いてNetBIOSプロトコルを使用して名前解決を行う際のネームサーバーを設定することができます。
  • NetBIOS ノードタイプ:NetBIOSの名前解決の方法を設定することができます。
  • IPv6 優先リースタイム (オプション):EC2がIPv6アドレスのリース更新を行う間隔を設定できます。140 秒から 4294967295 秒 の間で設定できます。この項目は省略可能です。省略した場合のリースタイムは140秒となります。EC2におけるリースの更新は通常、リースタイムの半分が経過した時点で行われます。

DHCP オプションセットの使用

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/DHCPOptionSet.html

VPC の DNS 属性

ドメインネームシステム (DNS) は、名前(DNSホスト名)に対してIPアドレスを応答する仕組みです。アクセスする際にDNSホスト名を利用する事によって、アクセス元はIPアドレスを知る必要がなくなります。
DNSホスト名は、コンピュータ(EC2のインスタンス等)を一意に識別するための名前で、ホスト(コンピュータ)名+ドメイン名の形式となります。
DNSサーバはDNSホスト名に対してIPアドレスを応答します。この仕組みを一般的に名前解決と言います。

Amazon DNS について理解する

Amazon DNSサーバは、現在では、Route 53 Resolverと呼ばれています。DHCPオプションセットでデフォルトのDNSとして指定されているAmazonProvidedDNSもRoute 53 Resolverを指します。

Amazon DNS サーバー(Route 53 Resolver)

Route 53 Resolverは固定で以下のアドレスを持ちます。

  • 169.254.169.253 (IPv4)
  • fd00:ec2::253 (IPv6)

また、VPCに割り当てたCIDRブロック+2のアドレスでが自動で割り当てられます。VPCのIPv4CIDRブロックが10.0.0.0/16 の場合、 10.0.0.2 のアドレスがRoute 53 Resolverに割り当てられます。

DNS ホスト名

VPC内で起動したEC2インスタンス等には自動でプライベートIPアドレスに対応するDNSホスト名が割り当てられます。
パブリックIPアドレスが割り当てられており、VPCのDNS設定で「DNSホスト名を有効化」されている場合は、パブリックDNSホスト名も割り当てられます。
ホスト名はサブネットの設定で、IPアドレスベースとするかリソース名ベースとするかを選択できます。
但し、IPアドレスベースはIPv4アドレスがホストに割り当てられている場合のみ設定できます。

プライベート IP DNS 名 (IPv4 専用)

DNS名はプライベートIPアドレス識別子+ドメイン名の形式になります。
例)ip-10-0-0-14.ec2.internal(us-east-1リージョンの場合)
  ip-10-0-0-14.us-west-2.compute.internal(それ以外のリージョンの場合)

プライベートIP DSNホスト名はVPC内のインスタンス間の名前解決で利用可能です。
また、VPC外であっても、同じリージョンで、そのホストのIPアドレスが RFC 1918 によって定義されたプライベートアドレス空間内であれば名前解決が可能です。

プライベートリソース DNS 名

DNS名はインスタンス ID +ドメイン名の形式になります。
例)i-0123456789abcdef.ec2.internal(us-east-1リージョンの場合)
  i-0123456789abcdef.us-west-2.compute.internal(それ以外のリージョンの場合)

パブリック IPv4 DNS

DNS名はパブリックIPアドレス識別子+ドメイン名の形式になります。ドメイン名がプライベートプライベート IP DNS 名とは異なります。
例)ec2-155.0.0.14.compute-1.amazonaws.com(us-east-1リージョンの場合)
  ec2-155.0.0.14.region.compute.amazonaws.com(それ以外のリージョンの場合)

VPC 内の DNS 属性

VPCにはDNS属性(オプション)の設定があります。以下はVPC作成時におけるDNSオプションの設定画面です。

alt text

インスタンスがパブリックIP4アドレスを利用し、 Route 53 Resolverを利用した名前解決を行いたい場合は両方の属性が有効になっている必要があります。
EC2インスタンス作成後に有効化を行うことも可能です。その場合、VPC内のすべてのパブリックIPアドレスを保持するEC2インスタンスにパブリックDNSホスト名が割り当てられます。

属性 説明
DNSホスト名を有効化
(enableDnsHostnames)
パブリックIPアドレスを持つインスタンスにパブリックDNSホスト名を割り当てるかどうかを決定します。
この属性が無効の場合、パブリック IPv4 DNSホスト名は割り当てられません。
DNS解決を有効化
(enableDnsSupport)
Route 53 Resolverによる名前解決を利用するかを決定します。
この属性が無効の場合、プライベート、パブリックに関わらずRoute 53 Resolverによる名前解決は利用できません。
ルールと考慮事項
  • パブリックIPアドレスを持つインスタンスは、両方の属性が有効化されている場合、パブリックDNSホスト名での名前解決が可能です。
  • プライベートIPアドレスを持つインスタンスは、「DNS解決を有効化」されていなければDNSホスト名による名前解決ができません。
  • 「DNS解決を有効化」していないVPCでも、DHCPオプション設定のドメインネームサーバーを設定することにより、Route 53 Resolver以外のDNSサーバを利用して名前解決を行うことが可能です。

DNS クォータ

各 EC2 インスタンスは、Route 53 Resolver (具体的には 10.0.0.2、169.254.169.253などの .2 アドレス) にネットワークインターフェイスあたり 1024 パケット/秒でパケットを送信できます。このクォータを増やすことはできません。

プライベートホストゾーン

プライベート IP DNS 名またはプライベートリソース DNS 名のような形式のDNSホスト名を利用したくない(完全にカスタムのDNSホスト名を利用したい)場合、Route 53 のプライベートホストゾーン機能を使用します。
プライベートホストゾーンに登録されたドメインはインターネットへは公開されません。
プライベートホストゾーンにAレコードとしてドメイン名とIPアドレスを登録することにより、VPC内での名前解決が可能です。

Amazon Route 53 のプライベートホストゾーンに定義されているカスタム DNS ドメイン名を使用している場合は、enableDnsHostnames 属性と enableDnsSupport 属性の両方を true に設定する必要があります。

### EC2 インスタンスの DNS ホスト名を表示する
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-dns-viewing.html

VPC の DNS 属性の表示と更新

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-dns-updating.html

VPC サブネットを他のアカウントと共有する

VPC共有を利用すると、あるアカウントが所有するVPCのサブネットに別のアカウントで、EC2インスタンス、RDSインスタンス等を作成できます。

VPCサブネットを共有できるのは同じAWS Organization内にある他のアカウント(またはOU)のみです。
VPCサブネットを共有されたアカウント(参加者)は、サブネット内にEC2インスタンス等の作成、変更及び削除ができます。参加者は、VPC所有者及び他の参加者のリソースは参照できず、変更、削除もできません。

VPC共有を利用することによって、AWS PrivateLink、Transit Gateway、VPC ピアリングなどのネットワーク接続を所有者のVPCで管理する事によって、複数のVPCを管理する場合と比べて負荷を下げることができます。

共有サブネットの前提条件

サブネットの共有は、AWS Resource Access Manager(RAM)の機能です。AWS RAM コンソールでリソース共有を有効にする必要があります。

以下はRAMのリソース共有画面です。リソース共有を作成する際に、共有するサブネットを指定することができます。リソース共有作成時ではなく、あとから追加することもできます。

alt text

Discussion