17
20

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 3 years have passed since last update.

Speedtest.netの速度測定サーバを構築してみた

Last updated at Posted at 2017-09-10

#はじめに
こんにちは、 @CloudRemix です。

alt
https://account.idcfcloud.com/auth/loginより引用

本日9月10日はクラウドの日です。
記念日ということで、クラウドを使った速度測定サーバの作り方をご紹介します。

#Speedtest.netの速度測定サーバ???
Speedtest.net自体はご存知と思うので省略。

alt

早速ですが、Speedtest.netの速度測定サーバを構築とは?

自分だけの測定サーバを作ること?

残念!少し違います。

あまり知られていませんがSpeedtest.netは、Speedtest.netが用意したサーバではなく、有志が設置したサーバを使って速度測定を行っています。

そのため同じSpeedtest.netでも測定サーバによって結果が大きく異なります。

今回はこの速度測定サーバの作り方+有志サーバへの登録方法となります。

**注意!1TB/Dayのネットワーク転送が発生します。**設置は自己責任で・・

##目次

  • サーバを選ぶ
  • OS・ミドルウェアのセットアップ
  • アプリケーションのセットアップ
  • サーバの申請

#サーバの選び方
まずは、使用するサーバを選択しましょう。
選択肢としては自宅サーバ、VPS、クラウドが挙げられます。

公式サイトによると、最低でも1Gbpsの回線帯域が必要なため、ネットワークで選ぶと良いでしょう。
また、毎日500GB超1TB超の通信が発生するため、従量課金or速度規制にも注意が必要です。

CPU RAM Network Disk
最低 4コア 4GB 1Gbps 1GB
推奨 4コア 8GB 2Gbps 1GB

参考:Speedtest Server Requirements ? Ookla
(1コア0.5GBでも普通に動きます。ネット帯域だけが重要です)

今回は3,240GBまで従量課金なし、2Gbps接続のIDCFクラウドを選択しました。
3日で無料枠を使い切ったので、今はCloudGarageを使っています。
→怒られたので、やめました。

個人的には、従量課金一切なしの Cloudn と CloudGarage が気になりましたが、

  • Cloudn - 回線帯域が不明 非公開だそうです
  • CloudGarage - BANの危険性あり(構築自体は問題はないが、他の利用者に影響がある場合は停止・制限措置とのこと)

ということで今回は見送ります。
基本的には、ネットワークに定評のあるWebARENAのVPSクラウド(6GB)か、SuitePRO V4(2G)がオススメです。

  • VPSクラウド(6GB):1Gbps、3,600円
  • SuitePRO V4(2G):2Gbps、8,400円~

転送量からWebARENAも無理です。

なお、自宅サーバ(家庭用回線)はプロパイダーによる総量規制(30GB/日?)があるため避けたほうが良いでしょう
VPSはそもそも1Gbpsも帯域がないため、論外です。(↓参照)
参考:VPS・クラウドのネットワーク仕様一覧 - Qiita

#サーバのセットアップ
使用するサーバを選択したら、OS・ミドルウェアをセットアップしましょう。
ウェブサーバとアプリケーションが動作すれば、ソフトウェアに制限はありません。(Windows ServerもOK)
参考:Speedtest Server Requirements ? Ookla

言語はPHP, ASP, ASP.NET,JSPのいずれかとなります。
今回はCentOS7 / nginx / PHPの組み合わせとしました。

##OSのセットアップ
実際にセットアップをしていきます。
各ソフトウェアの設定は各自におまかせですが、ポート開放は必須です。(あとドメインの割り当て)

###ポート開放とドメイン
最低2つのポート開放が必要となります。ポート番号は80+8080です。
IDCFクラウドでは、標準で無料FW、ルータが用意されていますので、管理画面から80ポートと8080ポートを開放するだけとなります。

また、IP直打ちはダメらしいので、ドメインを割り当てます。
ドメイン設定は省略

以下ソフトウェアのセットアップ。参考程度に
###nginx

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx

mkdir -p /var/www
mkdir -p /var/lib/nginx/fastcgi

cd /etc/nginx/
mv nginx.conf nginx.conf.backup
vi nginx.conf

config

nginx.conf
user              nginx;
worker_processes auto;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
events {
	worker_connections  2048;
	multi_accept on;
	use epoll;
}
http {
	include       /etc/nginx/mime.types;
	default_type  application/octet-stream;
	access_log  /var/log/nginx/access.log;
	keepalive_timeout 5;
	client_max_body_size    10m;
	server_tokens     off;
	server_name_in_redirect off;
	server {
		listen 80;
		root        /var/www;
		charset     utf-8;
		location ~ [^/]\.php(/|$) {
			fastcgi_split_path_info ^(.+\.php)(/.*)$;
			include fastcgi_params;
			fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
			fastcgi_param PATH_INFO $fastcgi_path_info;
			fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
		}
	}
}

###PHP
必要なパッケージは各自で確認してください

yum -y install --enablerepo=epel,remi-php71 php php-devel php-fpm php-gd php-mbstring

sed -i 's/apache/nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/listen = 127.0.0.1:9000/listen = \/var\/run\/php-fpm\/php-fpm.sock/g' /etc/php-fpm.d/www.conf
sed -i 's/listen.mode = 0660/listen.mode = 0660\nlisten.owner = nginx\nlisten.group = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/;clear_env = no/clear_env = no/g' /etc/php-fpm.d/www.conf
chown -R nginx:nginx /var/lib/php/

###起動

systemctl start php-fpm.service
systemctl start nginx.service
systemctl enable php-fpm.service
systemctl enable nginx.service

#アプリケーションのセットアップ
OS・ミドルウェアが用意できたら、いよいよ速度測定のアプリをインストールします。
フロントエンドはダウンロードして展開するだけですが、バックエンドは少々複雑です。
参考:Installing HTTP Legacy Fallback ? Ookla

##フロントエンド

cd /var/www/
wget http://install.speedtest.net/httplegacy/http_legacy_fallback.zip
unzip http_legacy_fallback.zip
rm -f http_legacy_fallback.zip
rm -f speedtest/upload.asp
rm -f speedtest/upload.aspx
rm -f speedtest/upload.jsp

##バックエンド
同様にダウンロードして展開しますが、こちらは設定の編集と起動が必要となります。
また、セキュリティ上の理由から専用ユーザが推奨されていますので、新たにユーザを作成します。

useradd ookla
passwd ookla

su ookla
cd
mkdir ooklaserver
cd ooklaserver
wget http://install.speedtest.net/ooklaserver/ooklaserver.sh
chmod a+x ooklaserver.sh

インストール

./ooklaserver.sh install

#64bitOSなら y 押下
This will install the Ookla server for linux64 to the current folder. Please confirm (y/n) >

設定の編集は最低3ヶ所(上側は必須)
参考:OoklaServer Daemon Advanced Configuration ? Ookla

OoklaServer.properties
vi OoklaServer.properties

OoklaServer.allowedDomains = *.ookla.com, *.speedtest.net #コメントを除去

OoklaServer.tcpPorts = 5060,8080
#↓ポートの指定
OoklaServer.tcpPorts = 8080

OoklaServer.udpPorts = 5060,8080
#↓ポートの指定
OoklaServer.udpPorts = 8080

OoklaServer.maxThreads = 512
#↓お好みで(マルチセッションの最大値、負荷軽減)
OoklaServer.maxThreads = 32

自動起動を設定

su -
chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local

#su ookla -c '/home/ookla/ooklaserver/OoklaServer --daemon'

reboot

##動作確認
テスターが公開されているので、必ず動作確認を行いましょう。
alt

###記入例

全項目がPASSEDとなればOK

#サーバの申請
セットアップが終わって、動作確認もできたら早速有志サーバとして申請します。(これで終わりです)

http://www.ookla.com/host

利用条件等に同意して、
alt

項目を埋めていきます。

  • Server Installation
    • Ookla Server:ホスト名(テスターの一番上の項目)
  • Hardware Information
    • Current Processor:CPUのコア数
    • Memory Amount:物理メモリサイズ
  • Connection Information
    • Available Bandwidth:回線帯域
    • Uplink/Ethernet Connectivity:回線帯域
  • Hosted By Credit(この部分は公開されます)
    • Sponsor Name:サーバ名
    • Sponsor URL:サーバ名のリンク先
    • Server City:サーバの区市郡町村
    • Server State or Region:サーバの都道府県
    • Country:Japan。

alt

すべての項目を埋めたら、SUBMITをクリックして、申請完了です!!

すぐに確認の自動送信メール(件名:Ookla.com Account Registration)が届き、審査待ちとなります。

2,3日程で審査結果が届くので、ゆっくり待ちましょう。
合格していれば、管理者用のアカウント情報、そして専用のカスタムドメインがメールに記載されています。

アカウント情報は、専用サイトにログインすることで、自身の測定サーバで測定された結果を見れます。
alt

#一言
ネットの情報から1日300GBほどかな~と思っていたけど、
開始1日で600GB1TBを軽く超えた・・・。

九州地域のサーバが少ないようです。私(福岡)と鹿児島だけです。
誰か従量課金がなくて、1Gbps接続の格安サーバ(西日本)を知っていれば教えてください。(切実)

#参考
Speedtest Servers ? Ookla
Speedtest.net by Ookla ホスト登録 ? がとらぼ
oklaServer(Speedtest.net ホスト)のセットアップのやり方 | ichigo-lab BLOG
peedtest.netの測定サーバ提供はじめました。 ? satoweb-blog

17
20
2

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
17
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?