[heroku]QuotaGuard Staticを使ってHerokuでのIP固定を試してみる

herokuでのIP固定といえば、Proximoの方が有名っぽいけど、
QuotaGuard Staticというのでも同じく固定できるようなので試してみた。

QuotaGuard Static add-on

QuotaGuard Static

アプリへのセットアップをコマンドラインからする場合は以下。
無料プランがあるので、それで試してみる。

$ heroku addons:add quotaguardstatic

以下のように結果が返ってくる。
その中にIPアドレスも含まれる。

Adding quotaguardstatic on static-ip-test... done, v4 (free)
Your static IPs are [54.88.136.216, 54.84.188.199]
Use `heroku addons:docs quotaguardstatic` to view documentation.

Proximoでも同じ仕組のようだけど、
入れたアドオンによって指定されたURLを介してアクセスすることで
固定IPを実現しているよ。
アドオンがプロキシの役目を果たす。
このプロキシ経由でのアクセス数に制限があり、その数で値段が変わる仕組み。

そのアクセス用のURLは環境変数に格納されている。

$ heroku config
QUOTAGUARDSTATIC_URL: http://username:pass@us-east-1-static-brooks.quotaguard.com:9293

上記、IPsとなっているのは、2つのIPのうちどちらかでアクセスされる、とのこと。
負荷分散のよう。
一応、公式の理由。

We believe all apps should be built for scalability and high availability. Our commitment to this means we only provide load balanced, high availability services. Load balancing our nodes allows one node to fail or be brought down for maintenance with no impact to your application. Each IP you are given represents one proxy node that is running behind a load balancer.

IPアドレスはアドオンのダッシュボードからも確認できる。
以下、ダッシュボードを開くコマンド

$ heroku addons:open quotaguardstatic

公式にPHPでの動作サンプルが載っていたのでそのまま使用して試してみた。
以下、転載。

PHPのサンプル

<?php

function lookup(){
  $quotaguard_env = getenv("QUOTAGUARDSTATIC_URL");
  $quotaguard = parse_url($quotaguard_env);

  $proxyUrl       = $quotaguard['host'].":".$quotaguard['port'];
  $proxyAuth       = $quotaguard['user'].":".$quotaguard['pass'];

  $url = "http://ip.jsontest.com/";

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_PROXY, $proxyUrl);
  curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
  curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyAuth);
  $response = curl_exec($ch);
  return $response;
}

$res = lookup();
print_r($res);

?>

ここでアクセスしているhttp://ip.jsontest.com/のURLは、接続元のIPアドレスをJsonで返してくれるサービスのよう。

アクセスすると、以下のようなJSONが返ってきた。

{"ip": "54.84.188.199"}

リロードすると以下のものとランダムに切り替わっているのが確認できる。

{"ip": "54.88.136.216"}

管理画面を確認すると、アクセス数と残りアクセス数がわかる。
アクセス数は、1月の制限のよう。
無料の場合は250/月。

管理画面

冒頭のProximoと比較すべく、料金表を抜き出してみた。

QuotaGuard Static

プラン 値段(月) アクセス数(月) 帯域幅
Starter 無料 250 100MB
Spike $5 500 250MB
Micro $19 10,000 1GB
Medium $49 50,000 10GB
Large $89 1000,000 50GB
Enterprise $219 1,000,000 1TB
Premium $399 5,000,000 無制限

Proximo

プラン 値段(月) アクセス数(月) 帯域幅
Development $5 1,000 500MB
Starter $25 20,000 2GB
Professional $75 200,000 100GB
Dedicated $250 1,000,000 1TB
Elite $500 5,000,000 5TB
Enterprise $1250 無制限 無制限

QuotaGuardは無料があるのがやはりお手軽。
しかし、安いうちはProximoの方がお得。
増えてくるとQuotaGuardの方がお得かも。
他の機能もあったりするので一概には言えないけれど。

参考

QuotaGuard Static 公式ドキュメント
Proximo 公式ドキュメント

   このエントリーをはてなブックマークに追加