[アップデート] Amazon Route 53 ヘルスチェック用のIP範囲が、AWSマネージドプレフィックスリストに対応しました
はじめに
Amazon Route 53ヘルスチェック用のIPアドレス範囲は、AWS Managed Prefix List(AWSマネージドプレフィックスリスト)でサポートされました。
マネージドプレフィックスリストとは、1つ以上のCIDRブロックのセットのことです。プレフィクスリストを使用すると、セキュリティグループやルートテーブルなどの設定と管理が容易になります。
マネージドプレフィックスリストには、以下の2つの種類があります。
- カスタマーマネージドプレフィックスリスト
- ユーザーが定義・管理するIPアドレス範囲のセットです。プレフィックスリストを他のAWSアカウントと共有も可能です。
- AWSマネージドプレフィックスリスト
- AWSサービスのIPアドレス範囲のセットです。ユーザー側で、AWSマネージドプレフィックスリストの作成、変更、共有、削除はできません。
今回のアップデートによって、Route 53ヘルスチェック対象のサーバーは、容易にRoute 53ヘルスチェック用のIPアドレスのみに制限できるようになりました。
従来方法で実現させるためには、下記ドキュメントに記載されたRoute 53ヘルスチェック用のIPアドレス範囲を1つ1つ対象サーバーのセキュリティグループに追加する必要があり、骨が折れる作業でした。
また、IPアドレス範囲も変わることがありますので、そのたびにユーザー側でメンテナンスも必要でした。
AWSマネージドプレフィックスリストを利用することで、IPアドレス範囲の変更された際、ユーザー側ではなくAWS側でメンテナンスしてくれるので、管理が楽になります。
試してみた
Route 53ヘルスチェック用のAWSマネージドプレフィックスリストには、以下の2つがありました。
com.amazonaws.ap-northeast-1.ipv6.route53-healthchecks
com.amazonaws.ap-northeast-1.route53-healthchecks
IPv6 用もあるようですね。
IPv4 用は、こちらです。com.amazonaws.ap-northeast-1.route53-healthchecks
今回は、NginxがインストールされたEC2インスタンスに対して、Route 53ヘルスチェックを行います。
そのため、EC2インスタンスのセキュリティグループのインバウンドルールに、com.amazonaws.ap-northeast-1.route53-healthchecks
を許可します。
Route 53 ヘルスチェックを作成します。EC2インスタンスのパブリックIPが52.69.103.243
ですので、そのIPアドレスを指定します。
数分後、ヘルスチェックが正常であることが確認できました。
ヘルスチェッカーのIPは、Route 53ヘルスチェック用のAWSマネージドプレフィックスリスト範囲内であることが分かります。
EC2インスタンス内のNginxのアクセスログも確認してみます。
下記がアクセスログですが、Route 53ヘルスチェックのIPアドレスは、AWSマネージドプレフィックスリストのIPアドレス範囲内であると確認できました。
54.244.52.205 - - [08/Sep/2023:20:53:50 +0000] "GET / HTTP/1.1" 200 615 "-" "Amazon-Route53-Health-Check-Service (ref 961a4dee-6d0d-4111-bd67-ca0c718d5adc; report http://amzn.to/1vsZADi)" "-" 54.241.32.109 - - [08/Sep/2023:20:53:51 +0000] "GET / HTTP/1.1" 200 615 "-" "Amazon-Route53-Health-Check-Service (ref 961a4dee-6d0d-4111-bd67-ca0c718d5adc; report http://amzn.to/1vsZADi)" "-" 54.245.168.45 - - [08/Sep/2023:20:53:51 +0000] "GET / HTTP/1.1" 200 615 "-" "Amazon-Route53-Health-Check-Service (ref 961a4dee-6d0d-4111-bd67-ca0c718d5adc; report http://amzn.to/1vsZADi)" "-" 54.183.255.141 - - [08/Sep/2023:20:53:52 +0000] "GET / HTTP/1.1" 200 615 "-" "Amazon-Route53-Health-Check-Service (ref 961a4dee-6d0d-4111-bd67-ca0c718d5adc; report http://amzn.to/1vsZADi)" "-" 54.251.31.141 - - [08/Sep/2023:20:53:53 +0000] "GET / HTTP/1.1" 200 615 "-" "Amazon-Route53-Health-Check-Service (ref 961a4dee-6d0d-4111-bd67-ca0c718d5adc; report http://amzn.to/1vsZADi)" "-" 54.255.254.237 - - [08/Sep/2023:20:53:53 +0000] "GET / HTTP/1.1" 200 615 "-" "Amazon-Route53-Health-Check-Service (ref 961a4dee-6d0d-4111-bd67-ca0c718d5adc; report http://amzn.to/1vsZADi)" "-" 54.252.254.205 - - [08/Sep/2023:20:53:54 +0000] "GET / HTTP/1.1" 200 615 "-" "Amazon-Route53-Health-Check-Service (ref 961a4dee-6d0d-4111-bd67-ca0c718d5adc; report http://amzn.to/1vsZADi)" "-" 107.23.255.13 - - [08/Sep/2023:20:53:57 +0000] "GET / HTTP/1.1" 200 615 "-" "Amazon-Route53-Health-Check-Service (ref 961a4dee-6d0d-4111-bd67-ca0c718d5adc; report http://amzn.to/1vsZADi)" "-" 54.243.31.237 - - [08/Sep/2023:20:53:58 +0000] "GET / HTTP/1.1" 200 615 "-" "Amazon-Route53-Health-Check-Service (ref 961a4dee-6d0d-4111-bd67-ca0c718d5adc; report http://amzn.to/1vsZADi)" "-" 15.177.62.223 - - [08/Sep/2023:20:53:58 +0000] "GET / HTTP/1.1" 200 615 "-" "Amazon-Route53-Health-Check-Service (ref 961a4dee-6d0d-4111-bd67-ca0c718d5adc; report http://amzn.to/1vsZADi)" "-"
もちろん、私のPCからのアクセスは、EC2インスタンスのセキュリティグループのインバウンドルールで許可していないのでアクセスできません。
AWSマネージドプレフィックスリストの重み
AWSマネージドプレフィックスリストでは、重みを考慮する必要があります。
Route 53ヘルスチェック用のAWSマネージドプレフィックスリストは、両者とも重みが25あります。
com.amazonaws.region.ipv6.route53-healthchecks
com.amazonaws.region.route53-healthchecks
つまり、Route 53ヘルスチェック用のAWSマネージドプレフィックスリストをセキュリティグループで利用すると、利用可能なルール数のうち25個を消費されます。
利用可能なルール数は、デフォルトでは、セキュリティグループは60個で、ルートテーブルは50個ですので、利用する際は注意しましょう。
最後に
今回のアップデートでは、Route 53ヘルスチェック用のAWSマネージドプレフィックスリストがサポートされました。
ユーザーは Route 53ヘルスチェック用のIPアドレス範囲を手動で許可したり、IPアドレス範囲の変更時、ユーザー側で変更する必要がなくなり管理が楽になります。
現在、EC2インスタンスなどのサーバーのセキュリティグループに対して、Route 53ヘルスチェックのIPアドレス範囲を手動で追加されている場合、AWSマネージドプレフィックスリストのご検討をされるとよいと思います。