180
187

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Webアクセスを日本国内に制限する4つの方法

Last updated at Posted at 2014-09-30

はじめに

AWS上で構築しているサイトへのアクセスを国内のみに制限したいという要望があります。どのような方法があるか調べてみたのでまとめてみました。まだ調べはじめたばかりなので、実績等は今後できたら追加したいとおもいます。

Route53の Geolocation Routingを使う

Route53にはGeolocation Routingという機能があります。これを使うことで国単位(もっと細かい単位も可能)で振り分けができます。具体的な手順はこちらによくまとまっています。

こちらをつかって、日本であれば正しいサイト、日本以外はソーリーページを表示するということが出来ます。

CloudFrontのGeo Restrictionを使う

AWSのドキュメントにそのものずばりの「コンテンツの地理的ディストリビューションの制限」というページがあります。

CloudFront は、サードパーティーの GeoIP データベースを使用して、ユーザーがいる場所を判別します。IP アドレスと国とのマッピングの正確さは、リージョンによって異なります。最近のテストによれば、AWS での全体的な正確性は 99.8% です

とのことです。Route53と同じデータベースを利用しているかは、不明です。

APNIC、JPNICより日本に割り当てられているIPを取得し、.htaccessに設定する。

Webサーバー側で対処する方法ですね。
こちらに方法がまとまっていました。
IPアドレスのリストは以下から取得できます。
http://ftp.apnic.net/stats/apnic/
https://www.nic.ad.jp/ja/ip/list.html

GeoIPデータベースを検索するモジュールを追加する

こちらもWebサーバー側になります。

GeoIPで検索すると一番に出てくるmaxmind社からApacheモジュールが提供されています。

PHPのGEO IPモジュールもあります。

まとめ

国内にアクセス制限をかけるための4つの方法を紹介しました。
最初の二つ(特にCloudFrontのGeo Restriction)は簡単に実現でき、地理IPデータベースの管理もいらず、費用もかからないので、第一選択肢になるかとおもいます。

Webサーバー側で行なう場合は、精度が必要な場合です。CFのGeo Restrictionで99.8%という数字がありましたが、過去に制限をおこなった人の話ですと、国内なのに見えない、海外なのに見えるということはどうしても発生するようです。チューニングをしたい場合は自分のWebサーバー内で実施する方法になります。

他にも方法があるようでしたら教えてください。

ではでは。

180
187
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
180
187

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?