Apt-cacher で apt のキャッシュプロキシを作る
Vagrant 等を使うことでローカルに仮想マシンをポンポン作れるが、回線に WiMAX を使っていることもあり、何かパッケージをインストールしようにも毎回ダウンロードに時間がかかる。同じ構成のマシンを複数作るときは、ローカルにパッケージをキャッシュしたい。そこで Apt-cacher というのを使って、apt のキャッシュプロキシを建ててみる。
前提
プロキシサーバの OS には Ubuntu Server 12.04.3 を用いる。クライアント (プロキシを利用する側のサーバ) は apt を使う OS (Ubuntu や Debian) が対象となる。
インストール
プロキシサーバとなるマシンに、apt で必要なパッケージを入れる。
$ sudo apt-get -y install apt-cacher apache2
途中で Please select the method... と聞かれるので "daemon" を選択する。
設定ファイルの接続許可リストを修正して、リロードする。
$ sudo sed -i \ 's/^#\(allowed_hosts = \*\)/\1/' \ /etc/apt-cacher/apt-cacher.conf $ sudo service apt-cacher restart
ブラウザで以下の URL にアクセスして、入ったかどうか確認する。
- http://(サーバの IP アドレス):3142/
ちゃんと入ってるっぽい。これだけで OK。
クライアントの設定
クライアント側で、apt-get するときにプロキシを経由するように設定する。
$ sudo sh -c "echo 'Acquire::http::Proxy \"http://(サーバの IP アドレス):3142/\";' >> /etc/apt/apt.conf"
プロキシを経由するようになったかどうか確認するには、サーバ側で
$ tail -n 0 -f /var/log/apt-cacher/access.log
としてログを見ながら、クライアント側で apt-get update でもしてみると良い。
検証
キャッシュプロキシを経由するようになったので、どの程度効果が出るのか検証してみる。
まずクライアントの仮想マシンでスナップショットを撮っておく。そして、1回も入れたことのない (キャッシュにない) 状態で gnome をインストールする。
$ time sudo apt-get -y install gnome (中略) real 16m25.289s user 1m8.192s sys 0m38.944s
16分半かかった。
gnome をインストールする前の状態にスナップショットで戻し、再度インストールする。今度は Apt-cacher にキャッシュが残っているので速いはずだ。
real 7m47.131s user 1m9.004s sys 0m43.324s
8分弱でできた。2倍以上速くなった!ということで大成功だ。