⚠️ 記事内に広告を含みます。

Route53で国外アクセスを制限して日本国内のみにする方法

Route53で国外アクセスを制限して日本国内のみにする方法

アクセス元の地域によってアクセスを制限したり、表示するサイトあるいはサーバを変えたい時があります。クライアントがサーバに来るまでのどの段階でルーティングするかによって方法が複数あります。ここでは最も上流のDNS名前解決時に割り振る方法を紹介します。

Route53なら日本だけ名前解決させるというようなルーティングが可能

AWSのDNSサービス・Route53ではアクセス元の地理情報を元にトラフィックをルーティングする位置情報ルーティングをサポートしています。

日本からDNS問い合わせがあった場合のみクエリを返したり、国別でアクセス先のサーバを変えたりできます。

route53 地理的近接性ルーティング: https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/routing-policy-geoproximity.html

クライアントがサーバに至るまでの間で国内のみに制限する方法はいくつかありますが、route53は最上流の部分で高度に分散化しており、オリジンサーバ側でアクセス制限をかけるよりもサービスに与える負荷が少ないと考えられます。

コンテンツを取得するまでの道のりで制限可能な箇所はたくさんある。LBがあればそこでも可能

route53では細かく設定をカスタマイズすることはできませんが簡単に設定ができるので特に細かいサービス影響を考える必要がない場合には有用だと思います。

route53で国内のみに制限する

route53で該当のホストゾーンを選択していつも通りにレコードを登録するところまで行きます。

ルーティングポリシーの部分でシンプルから位置情報に変更し、出てきた「場所」で日本を選択します・レコードIDは識別しやすい一意の文字列を入力します。

これで保存すると設定完了です。

実際にアメリカからアクセスした場合と日本からアクセスした場合を比べてみるとUSでは名前解決できていませんが、日本だとできており、アクセス可能でした。

・US
$ curl -iL http://www.example.com
curl: (6) Could not resolve host: www.example.com; 不明なエラー

・JP
 curl -iL http://www.example.com
HTTP/1.1 200 OK

こんなに簡単に国内に制限できるとなるとうまく利用していきたいですね。

長期的に運用していくサービスであれば拒否リスト方式で問題のあるIP帯を随時継ぎ足して熟成して行くのも手ですがバッサリと日本国内に制限するのであればroute53が圧倒的に楽な印象です。

CNAMEはDNSの制約上複数のレコードが追加できませんが、Aレコードであれば地域によって向き先のサーバを変えるというようなこともできます。

・北米
www.example.com. cname  192.168.0.2

・日本
www.example.com. cname  192.168.0.23

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です